Panda3D
Public Member Functions | List of all members
QueuedConnectionManager Class Reference

This flavor of ConnectionManager will queue up all of the reset-connection messages from the ConnectionReaders and ConnectionWriters and report them to the client on demand. More...

Inheritance diagram for QueuedConnectionManager:
ConnectionManager QueuedReturnPointerToConnection

Public Member Functions

 __init__ ()
 
bool getResetConnection (PointerToConnection connection)
 If a previous call to reset_connection_available() returned true, this function will return information about the newly reset connection. More...
 
bool resetConnectionAvailable ()
 Returns true if one of the readers/writers/listeners reported a connection reset recently. More...
 
- Public Member Functions inherited from ConnectionManager
 __init__ ()
 
bool closeConnection (Connection connection)
 Terminates a UDP or TCP socket previously opened. More...
 
const ConnectionManager::Interface getInterface (int n)
 Returns the nth usable network interface detected on this machine. More...
 
list getInterfaces ()
 
int getNumInterfaces ()
 This returns the number of usable network interfaces detected on this machine. More...
 
Connection openTCPClientConnection (const NetAddress address, int timeout_ms)
 Attempts to establish a TCP client connection to a server at the indicated address. More...
 
Connection openTCPClientConnection (str hostname, uint16_t port, int timeout_ms)
 This is a shorthand version of the function to directly establish communications to a named host and port. More...
 
Connection openTCPServerRendezvous (const NetAddress address, int backlog)
 Creates a socket to be used as a rendezvous socket for a server to listen for TCP connections. More...
 
Connection openTCPServerRendezvous (str hostname, uint16_t port, int backlog)
 Creates a socket to be used as a rendezvous socket for a server to listen for TCP connections. More...
 
Connection openTCPServerRendezvous (uint16_t port, int backlog)
 Creates a socket to be used as a rendezvous socket for a server to listen for TCP connections. More...
 
Connection openUDPConnection (str hostname, uint16_t port, bool for_broadcast)
 Opens a socket for sending and/or receiving UDP packets. More...
 
Connection openUDPConnection (uint16_t port)
 Opens a socket for sending and/or receiving UDP packets. More...
 
 scanInterfaces ()
 Repopulates the list reported by get_num_interface()/get_interface(). More...
 
bool waitForReaders (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. More...
 
- Public Member Functions inherited from QueuedReturnPointerToConnection
int getCurrentQueueSize ()
 
int getMaxQueueSize ()
 
bool getOverflowFlag ()
 
 resetOverflowFlag ()
 
 setMaxQueueSize (int max_size)
 

Additional Inherited Members

- Static Public Member Functions inherited from ConnectionManager
static str getHostName ()
 Returns the name of this particular machine on the network, if available, or the empty string if the hostname cannot be determined. More...
 
- Public Attributes inherited from ConnectionManager
String host_name
 Returns the name of this particular machine on the network, if available, or the empty string if the hostname cannot be determined. More...
 
const ConnectionManager::Interface interfaces []
 

Detailed Description

This flavor of ConnectionManager will queue up all of the reset-connection messages from the ConnectionReaders and ConnectionWriters 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.

Member Function Documentation

◆ __init__()

__init__ ( )

◆ getResetConnection()

bool getResetConnection ( PointerToConnection  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 call close_connection() with any connection reported reset by this call. (There is no harm in calling close_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).

◆ resetConnectionAvailable()

bool resetConnectionAvailable ( )

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 call close_connection() with any connection reported reset by this call. (There is no harm in calling close_connection() more than once on a given socket.)