OPAL  Version 3.14.3
OpalListenerUDP Class Reference

#include <transports.h>

Inheritance diagram for OpalListenerUDP:
Collaboration diagram for OpalListenerUDP:

Public Member Functions

Construction
 OpalListenerUDP (OpalEndPoint &endpoint, PIPSocket::Address binding=PIPSocket::GetDefaultIpAny(), WORD port=0, PBoolean exclusive=true)
 
 OpalListenerUDP (OpalEndPoint &endpoint, const OpalTransportAddress &binding, OpalTransportAddress::BindOptions option)
 
 ~OpalListenerUDP ()
 
Overrides from OpalListener
virtual bool Open (const AcceptHandler &acceptHandler, ThreadMode mode=SpawnNewThreadMode)
 
virtual bool IsOpen () const
 
virtual void Close ()
 
virtual OpalTransportAccept (const PTimeInterval &timeout)
 
virtual OpalTransportCreateTransport (const OpalTransportAddress &localAddress, const OpalTransportAddress &remoteAddress) const
 
virtual OpalTransportAddress GetLocalAddress (const OpalTransportAddress &remoteAddress=OpalTransportAddress()) const
 
Member access
void SetBufferSize (PINDEX size)
 
- Public Member Functions inherited from OpalListenerIP
 OpalListenerIP (OpalEndPoint &endpoint, PIPSocket::Address binding=PIPSocket::GetDefaultIpAny(), WORD port=0, PBoolean exclusive=true)
 
 OpalListenerIP (OpalEndPoint &endpoint, const OpalTransportAddress &binding, OpalTransportAddress::BindOptions option)
 
WORD GetListenerPort () const
 
- Public Member Functions inherited from OpalListener
 OpalListener (OpalEndPoint &endpoint)
 
void PrintOn (ostream &strm) const
 
void CloseWait ()
 
void CleanUpOnTermination ()
 

Protected Member Functions

virtual const PCaselessString & GetProtoPrefix () const
 
- Protected Member Functions inherited from OpalListenerIP
bool CanCreateTransport (const OpalTransportAddress &localAddress, const OpalTransportAddress &remoteAddress) const
 
- Protected Member Functions inherited from OpalListener
void ListenForConnections ()
 
void TransportThreadMain (OpalTransportPtr transport)
 

Protected Attributes

PMonitoredSocketsPtr m_listenerBundle
 
PINDEX m_bufferSize
 
- Protected Attributes inherited from OpalListenerIP
PIPSocketAddressAndPort m_binding
 
bool m_exclusiveListener
 
- Protected Attributes inherited from OpalListener
OpalEndPointm_endpoint
 
PThread * m_thread
 
AcceptHandler m_acceptHandler
 
ThreadMode m_threadMode
 

Additional Inherited Members

- Public Types inherited from OpalListener
enum  ThreadMode { SpawnNewThreadMode, HandOffThreadMode, SingleThreadMode }
 
typedef PNotifierTemplate
< const OpalTransportPtr & > 
AcceptHandler
 

Constructor & Destructor Documentation

OpalListenerUDP::OpalListenerUDP ( OpalEndPoint endpoint,
PIPSocket::Address  binding = PIPSocket::GetDefaultIpAny(),
WORD  port = 0,
PBoolean  exclusive = true 
)

Create a new listener.

Parameters
endpointEndpoint listener is used for
bindingLocal interface to listen on
portTCP port to listen for connections
exclusiveExclusive listening mode, no other process can accept on the port
OpalListenerUDP::OpalListenerUDP ( OpalEndPoint endpoint,
const OpalTransportAddress binding,
OpalTransportAddress::BindOptions  option 
)
Parameters
endpointEndpoint listener is used for
bindingLocal interface to listen on
optionOPtions for binding
OpalListenerUDP::~OpalListenerUDP ( )

Destroy the listener thread.

Member Function Documentation

virtual OpalTransport* OpalListenerUDP::Accept ( const PTimeInterval &  timeout)
virtual

Accept a new incoming transport.

Parameters
timeoutTime to wait for incoming connection

Implements OpalListener.

virtual void OpalListenerUDP::Close ( )
virtual

Stop the listener thread and no longer accept incoming connections.

Implements OpalListener.

virtual OpalTransport* OpalListenerUDP::CreateTransport ( const OpalTransportAddress localAddress,
const OpalTransportAddress remoteAddress 
) const
virtual

Create a transport compatible with this listener.

Implements OpalListener.

virtual OpalTransportAddress OpalListenerUDP::GetLocalAddress ( const OpalTransportAddress remoteAddress = OpalTransportAddress()) const
virtual

Get the local transport address on which this listener may be accessed. If remoteAddress is present and is an address that requires NAT for connectivity, then the returned address is adjusted to return the external address and port.

Reimplemented from OpalListenerIP.

virtual const PCaselessString& OpalListenerUDP::GetProtoPrefix ( ) const
protectedvirtual

Implements OpalListenerIP.

virtual bool OpalListenerUDP::IsOpen ( ) const
virtual

Indicate if the listener is open.

Implements OpalListener.

virtual bool OpalListenerUDP::Open ( const AcceptHandler acceptHandler,
ThreadMode  mode = SpawnNewThreadMode 
)
virtual

Open the listener. Listen for an incoming connection and create a OpalTransport of the appropriate subclass.

If notifier function acceptHandler is non-NULL a thread is spawned to listen for incoming connections. The acceptHandler is called when a new connection is created. The INT parameter to the acceptHandler is a pointer to the new OpalTransport instance created by the listener.

If singleThread is false the acceptHandler function is called in the context of a new thread and the continues to listen for more connections. If true, then the acceptHandler function is called from within the listener threads context and no more connections are created. That is only a single connection is ever created by this listener.

If acceptHandler is NULL, then no thread is started and it is assumed that the caller is responsible for calling Accept() and waiting for the new connection.

Parameters
acceptHandlerHandler function for new connections
modeHow handler function is called thread wise

Reimplemented from OpalListener.

void OpalListenerUDP::SetBufferSize ( PINDEX  size)
inline

Set the size of UDP packet reads.

References m_bufferSize.

Field Documentation

PINDEX OpalListenerUDP::m_bufferSize
protected

Referenced by SetBufferSize().

PMonitoredSocketsPtr OpalListenerUDP::m_listenerBundle
protected

The documentation for this class was generated from the following file: