abstract class PollingSystem extends AnyRef
Represents a stateful system for managing and interacting with a polling system. Polling systems are typically used in scenarios such as handling multiplexed blocking I/O or other event-driven systems, where one needs to repeatedly check (or "poll") some condition or state, blocking up to some timeout until it is ready.
This class abstracts the general components and actions of a polling system, such as:
- The user-facing interface (API) which interacts with the outside world
- The thread-local data structure used for polling, which keeps track of the internal state of the system and its events
- The lifecycle management methods, such as creating and closing the polling system and its components
- The runtime interaction methods, such as polling events and interrupting the process
- Source
- PollingSystem.scala
- Alphabetic
- By Inheritance
- PollingSystem
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new PollingSystem()
Type Members
Abstract Value Members
-
abstract
def
close(): Unit
Closes the polling system.
-
abstract
def
closePoller(poller: Poller): Unit
Closes a specific poller.
Closes a specific poller.
- poller
the poller to be closed.
-
abstract
def
interrupt(targetThread: Thread, targetPoller: Poller): Unit
Interrupts a specific target poller running on a specific target thread.
Interrupts a specific target poller running on a specific target thread.
- targetThread
is the thread where the target poller is running.
- targetPoller
is the poller to be interrupted.
-
abstract
def
makeApi(access: ((Poller) ⇒ Unit) ⇒ Unit): Api
Creates a new instance of the user-facing interface.
Creates a new instance of the user-facing interface.
- access
callback to obtain a thread-local
Poller
.- returns
an instance of the user-facing interface
Api
.
-
abstract
def
makePoller(): Poller
Creates a new instance of the thread-local data structure used for polling.
Creates a new instance of the thread-local data structure used for polling.
- returns
an instance of the poller
Poller
.
-
abstract
def
needsPoll(poller: Poller): Boolean
- returns
whether poll should be called again (i.e., there are more events to be polled)
-
abstract
def
poll(poller: Poller, nanos: Long, reportFailure: (Throwable) ⇒ Unit): Boolean
- poller
the thread-local Poller used to poll events.
- nanos
the maximum duration for which to block, where
nanos == -1
indicates to block indefinitely.- reportFailure
callback that handles any failures that occur during polling.
- returns
whether any events were polled. e.g. if the method returned due to timeout, this should be
false
.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()