QueuedConnectionManager
-
class QueuedConnectionManager
Bases:
ConnectionManager
,QueuedReturn< PointerTo< Connection > >
This flavor of
ConnectionManager
will queue up all of the reset-connection messages from theConnectionReaders
andConnectionWriters
and report them to the client on demand.When a reset connection has been discovered via reset_connection_available()/get_reset_connection(), it is still the responsibility of the client to call
close_connection()
on that connection to free up its resources.Inheritance diagram
-
QueuedConnectionManager(void)
-
bool get_reset_connection(PointerTo<Connection> &connection)
If a previous call to
reset_connection_available()
returned true, this function will return information about the newly reset connection.Only connections which were externally reset are certain to appear in this list. Those which were explicitly closed via a call to
close_connection()
may or may not be reported. Furthermore, it is the responsibility of the caller to subsequently callclose_connection()
with any connection reported reset by this call. (There is no harm in callingclose_connection()
more than once on a given socket.)The return value is true if a connection was successfully returned, or false if there was, in fact, no reset connection. (This may happen if there are multiple threads accessing the
QueuedConnectionManager
).
-
bool reset_connection_available(void) const
Returns true if one of the readers/writers/listeners reported a connection reset recently. If so, the particular connection that has been reset can be extracted via
get_reset_connection()
.Only connections which were externally reset are certain to appear in this list. Those which were explicitly closed via a call to
close_connection()
may or may not be reported. Furthermore, it is the responsibility of the caller to subsequently callclose_connection()
with any connection reported reset by this call. (There is no harm in callingclose_connection()
more than once on a given socket.)
-
QueuedConnectionManager(void)