enumDispatcherMask{ReadMask,WriteMask,ExceptMask}virtualIOHandler*handler(intfd,DispatcherMask)virtualvoidlink(intfd,DispatcherMask,IOHandler*)virtualvoidunlink(intfd)
Return a file descriptor's iohandler, link a file descriptor to an iohandler, or unlink a file
descriptor from its iohandlers. The DispatcherMask describes the I/O condition that the iohandler
is interested in, such as whether the file descriptor has new data available for reading. If the
I/O condition occurs, the iohandler will be expected to read data from the file descriptor, write
data to the file descriptor, or handle the exception depending on the I/O condition.
virtualvoidstartTimer(longsec,longusec,IOHandler*)virtualvoidstopTimer(IOHandler*)
Attach an iohandler to a timer or remove a timer before it expires. A timer expires after the
given number of seconds and microseconds have elapsed. If a timer expires, the dispatcher will
notify the attached iohandler. Timers will not expire until the program calls either variant of
Dispatcher::dispatch.
virtualvoiddispatch()virtualbooleandispatch(long&sec,long&usec)
With no arguments, block indefinitely until an I/O condition occurs or a timer expires and then
notify the attached iohandler. With two arguments, block no longer than the given number of
seconds and microseconds. If both numbers are zero, the function will return immediately after
checking all file descriptors and timers. The return value will be true if an I/O condition
caused the function to return and false if the function returned because a timer expired or it
exceeded the given poll time. The function will decrease the given poll time by the amount of
time it spent blocking.
staticDispatcher&instance()staticvoidinstance(Dispatcher*)
With no arguments, create an instance of Dispatcher if it doesn't already exist and return it.
With an argument, set the instance of Dispatcher that will be used throughout the program.