Constructor.
Array map mapping from an expiry registration ( a node in the tree of expiry times) to an ISelectClient.
Enables IExpiryRegistration to access TimeoutManager internals.
Checks for timed out clients. For any timed out client its timeout() method is called, then it is unregistered, finally dg() is called with it as argument.
Tells the wall clock time time when the next client will expire.
Returns the current wall clock time according to gettimeofday().
Prints the current wall clock time.
Registers registration and sets the timeout for its client.
Called when the overall timeout needs to be set or changed.
Called when the last client has been unregistered so that the timer may be disabled.
Unregisters the IExpiryRegistration instance corresponding to expiry.
Tells the time left until the next client will expire.
Prints t.
TODO: Remove debugging output.
Tells the wall clock time time when the next client will expire.
Tells the time until the next client will expire.
Checks for timed out clients. For any timed out client its timeout() method is called, then it is unregistered, finally dg() is called with it as argument.
Registers client with the timeout manager and returns the expiry registration object which the registered client is associated to.
Timeout manager base class. Required for derivation because inside a TimeoutManager subclass a nested ExpiryRegistration subclass is impossible.