The primary interface to the low-level networking layer in this package.
A ConnectionManager is used to establish and destroy TCP and UDP connections. Communication on these connections, once established, is handled via ConnectionReader, ConnectionWriter, and ConnectionListener.
You may use this class directly if you don't care about tracking which connections have been unexpectedly closed; otherwise, you should use QueuedConnectionManager to get reports about these events (or derive your own class to handle these events properly).
Definition at line 46 of file connectionManager.h.
| bool ConnectionManager::close_connection |
( |
const PT(Connection)& |
connection | ) |
|
| bool ConnectionManager::wait_for_readers |
( |
double |
timeout | ) |
|
Blocks the process for timeout number of seconds, or until any data is available on any of the non-threaded ConnectionReaders or ConnectionListeners, whichever comes first.
The return value is true if there is data available (but you have to iterate through all readers to find it), or false if the timeout occurred without any data.
If the timeout value is negative, this will block forever or until data is available.
This only works if all ConnectionReaders and ConnectionListeners are non-threaded. If any threaded ConnectionReaders are part of the ConnectionManager, the timeout value is implicitly treated as 0.
Definition at line 365 of file connectionManager.cxx.
References Socket_fdset::clear(), Thread::force_yield(), TrueClock::get_global_ptr(), and ConnectionReader::is_polling().