PSingleMonitoredSocket Class Reference

#include <psockbun.h>

Inheritance diagram for PSingleMonitoredSocket:

PMonitoredSockets PInterfaceMonitorClient PSafeObject PObject List of all members.

Public Member Functions

 PSingleMonitoredSocket (const PString &theInterface, bool reuseAddr=false, PNatMethod *natMethod=NULL)
 ~PSingleMonitoredSocket ()
virtual PStringArray GetInterfaces (PBoolean includeLoopBack=false, const PIPSocket::Address &destination=PIPSocket::GetDefaultIpAny())
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 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.
bool IsInterface (const PString &iface) const

Protected Attributes

PString theInterface
InterfaceEntry theEntry
SocketInfo theInfo

Detailed Description

This concrete class monitors a single scoket bound to a specific interface or address. The interface name may be a partial descriptor such as "%eth0".


Constructor & Destructor Documentation

PSingleMonitoredSocket::PSingleMonitoredSocket ( const PString theInterface,
bool  reuseAddr = false,
PNatMethod natMethod = NULL 
)

PSingleMonitoredSocket::~PSingleMonitoredSocket (  ) 


Member Function Documentation

virtual PStringArray PSingleMonitoredSocket::GetInterfaces ( PBoolean  includeLoopBack = false,
const PIPSocket::Address destination = PIPSocket::GetDefaultIpAny() 
) [virtual]

Get an array of all current interface descriptors, possibly including the loopback (127.0.0.1) interface. Note the names are of the form ipname, eg "10.0.1.11%3Com 3C90x Ethernet Adapter" or "192.168.0.10%eth0"

Parameters:
destination  Flag for if loopback is to included in list

virtual PBoolean PSingleMonitoredSocket::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 PSingleMonitoredSocket::Close (  )  [virtual]

Close all socket(s).

Implements PMonitoredSockets.

virtual PBoolean PSingleMonitoredSocket::GetAddress ( const PString iface,
PIPSocket::Address address,
WORD &  port,
PBoolean  usingNAT 
) const [virtual]

Get the local address for the given interface.

Parameters:
address  Interface to get address for
port  Address of interface
usingNAT  Port listening on Require NAT address/port

Implements PMonitoredSockets.

virtual PChannel::Errors PSingleMonitoredSocket::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 PSingleMonitoredSocket::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 PSingleMonitoredSocket::OnAddInterface ( const InterfaceEntry entry  )  [protected, virtual]

Call back function for when an interface has been added to the system.

virtual void PSingleMonitoredSocket::OnRemoveInterface ( const InterfaceEntry entry  )  [protected, virtual]

Call back function for when an interface has been removed from the system.

bool PSingleMonitoredSocket::IsInterface ( const PString iface  )  const [protected]


Member Data Documentation

PString PSingleMonitoredSocket::theInterface [protected]

InterfaceEntry PSingleMonitoredSocket::theEntry [protected]

SocketInfo PSingleMonitoredSocket::theInfo [protected]


The documentation for this class was generated from the following file:
Generated on Mon Sep 15 01:21:38 2008 for PTLib by  doxygen 1.5.1