Public Member Functions
|void ||add_reader (Connection *connection, PStatReader *reader)|
| ||Adds the newly-created PStatReader to the list of currently active readers. |
|int ||add_user_guide_bar (float height)|
| ||Creates a new user guide bar and returns its index number. |
|int ||find_user_guide_bar (float from_height, float to_height) const |
| ||Returns the index number of the first user guide bar found whose height is within the indicated range, or -1 if no user guide bars fall within the range. |
|int ||get_num_user_guide_bars () const |
| ||Returns the current number of user-defined guide bars. |
|int ||get_udp_port ()|
| ||Returns a new port number that will probably be free to use as a UDP port. |
|float ||get_user_guide_bar_height (int n) const |
| ||Returns the height of the nth user-defined guide bar. |
|virtual bool ||is_thread_safe ()|
| ||This should be redefined to return true in derived classes that want to deal with multithreaded readers and such. |
|bool ||listen (int port=-1)|
| ||Establishes a port number that the manager will listen on for TCP connections. |
|void ||main_loop (bool *interrupt_flag=NULL)|
| ||An alternative to repeatedly calling poll(), this function yields control of the program to the PStatServer. |
virtual PStatMonitor * ||make_monitor ()=0|
|void ||move_user_guide_bar (int n, float height)|
| ||Adjusts the height of the nth user-defined guide bar. |
|void ||poll ()|
| ||Checks for any network activity and handles it, if appropriate, and then returns. |
|void ||release_udp_port (int port)|
| ||Indicates that the given UDP port is once again free for use. |
|void ||remove_reader (Connection *connection, PStatReader *reader)|
| ||Removes the indicated reader. |
|void ||remove_user_guide_bar (int n)|
| ||Removes the user guide bar with the indicated index number. |
Protected Member Functions
|virtual void ||connection_reset (const PT(Connection)&connection, bool okflag)|
| ||Called when a lost connection is detected by the net code, this should pass the word on to the interested parties and clean up gracefully. |
The overall manager of the network connections.
This class gets the ball rolling; to use this package, you need to derive from this and define make_monitor() to allocate and return a PStatMonitor of the suitable type.
Then create just one PStatServer object and call listen() with the port(s) you would like to listen on. It will automatically create PStatMonitors as connections are established and mark the connections closed as they are lost.
Definition at line 41 of file pStatServer.h.
This should be redefined to return true in derived classes that want to deal with multithreaded readers and such.
If this returns true, the manager will create the listener in its own thread, and thus the PStatReader constructors at least will run in a different thread.
This is not related to the question of whether the reader can handle multiple different PStatThreadDatas; it's strictly a question of whether the readers themselves can run in a separate thread.
Definition at line 320 of file pStatServer.cxx.
||port = |
Establishes a port number that the manager will listen on for TCP connections.
This may be called more than once to listen simulataneously on multiple connections, as if that were at all useful.
The default parameter, -1, indicates the use of whatever port number has been indicated in the Config file.
This function returns true if the port was successfully opened, or false if it could not open the port.
Definition at line 59 of file pStatServer.cxx.
||interrupt_flag = |
An alternative to repeatedly calling poll(), this function yields control of the program to the PStatServer.
It does not return until the program is done.
If interrupt_flag is non-NULL, it is the address of a bool variable that is initially false, and may be asynchronously set true to indicate the loop should terminate.
Definition at line 142 of file pStatServer.cxx.
References poll(), and Thread::sleep().