#include <psockbun.h>
Inheritance diagram for PMonitoredSocketBundle:
Public Member Functions | |
PMonitoredSocketBundle (bool reuseAddr=false, PNatMethod *natMethod=NULL) | |
~PMonitoredSocketBundle () | |
virtual PBoolean | Open (WORD port) |
virtual PBoolean | Close () |
Close all socket(s). | |
virtual PBoolean | GetAddress (const PString &iface, PIPSocket::Address &address, WORD &port, PBoolean usingNAT) const |
Get the local address for the given interface. | |
virtual PChannel::Errors | WriteToBundle (const void *buf, PINDEX len, const PIPSocket::Address &addr, WORD port, const PString &iface, PINDEX &lastWriteCount) |
virtual PChannel::Errors | ReadFromBundle (void *buf, PINDEX len, PIPSocket::Address &addr, WORD &port, PString &iface, PINDEX &lastReadCount, const PTimeInterval &timeout) |
Protected Types | |
typedef std::map< std::string, SocketInfo > | SocketInfoMap_T |
Protected Member Functions | |
virtual void | OnAddInterface (const InterfaceEntry &entry) |
Call back function for when an interface has been added to the system. | |
virtual void | OnRemoveInterface (const InterfaceEntry &entry) |
Call back function for when an interface has been removed from the system. | |
void | OpenSocket (const PString &iface) |
void | CloseSocket (SocketInfoMap_T::iterator iterSocket) |
Protected Attributes | |
SocketInfoMap_T | socketInfoMap |
typedef std::map<std::string, SocketInfo> PMonitoredSocketBundle::SocketInfoMap_T [protected] |
PMonitoredSocketBundle::PMonitoredSocketBundle | ( | bool | reuseAddr = false , |
|
PNatMethod * | natMethod = NULL | |||
) |
PMonitoredSocketBundle::~PMonitoredSocketBundle | ( | ) |
virtual PBoolean PMonitoredSocketBundle::Open | ( | WORD | port | ) | [virtual] |
Open the socket(s) using the specified port. If port is zero then a system allocated port is used. In this case and when multiple interfaces are supported, all sockets use the same dynamic port value.
Returns true if all sockets are opened.
Implements PMonitoredSockets.
virtual PBoolean PMonitoredSocketBundle::Close | ( | ) | [virtual] |
virtual PBoolean PMonitoredSocketBundle::GetAddress | ( | const PString & | iface, | |
PIPSocket::Address & | address, | |||
WORD & | port, | |||
PBoolean | usingNAT | |||
) | const [virtual] |
Get the local address for the given interface.
address | Interface to get address for |
port | Address of interface |
usingNAT | Port listening on Require NAT address/port |
Implements PMonitoredSockets.
virtual PChannel::Errors PMonitoredSocketBundle::WriteToBundle | ( | const void * | buf, | |
PINDEX | len, | |||
const PIPSocket::Address & | addr, | |||
WORD | port, | |||
const PString & | iface, | |||
PINDEX & | lastWriteCount | |||
) | [virtual] |
Write to the remote address/port using the socket(s) available. If the iface parameter is empty, then the data is written to all socket(s). Otherwise the iface parameter indicates the specific interface socket to write the data to.
Implements PMonitoredSockets.
virtual PChannel::Errors PMonitoredSocketBundle::ReadFromBundle | ( | void * | buf, | |
PINDEX | len, | |||
PIPSocket::Address & | addr, | |||
WORD & | port, | |||
PString & | iface, | |||
PINDEX & | lastReadCount, | |||
const PTimeInterval & | timeout | |||
) | [virtual] |
Read fram a remote address/port using the socket(s) available. If the iface parameter is empty, then the first data received on any socket(s) is used, and the iface parameter is set to the name of that interface. Otherwise the iface parameter indicates the specific interface socket to read the data from.
Implements PMonitoredSockets.
virtual void PMonitoredSocketBundle::OnAddInterface | ( | const InterfaceEntry & | entry | ) | [protected, virtual] |
Call back function for when an interface has been added to the system.
Implements PInterfaceMonitorClient.
virtual void PMonitoredSocketBundle::OnRemoveInterface | ( | const InterfaceEntry & | entry | ) | [protected, virtual] |
Call back function for when an interface has been removed from the system.
Implements PInterfaceMonitorClient.
void PMonitoredSocketBundle::OpenSocket | ( | const PString & | iface | ) | [protected] |
void PMonitoredSocketBundle::CloseSocket | ( | SocketInfoMap_T::iterator | iterSocket | ) | [protected] |
SocketInfoMap_T PMonitoredSocketBundle::socketInfoMap [protected] |