The C++ framework for developing highly scalable, high performance servers on Windows platforms.

TDatagramSocketServer Class Template Reference
[Datagram SocketsSocket servers]

Inheritance diagram for TDatagramSocketServer:
Collaboration diagram for TDatagramSocketServer:

List of all members.


Detailed Description

template<class Base>
class JetByteTools::Socket::TDatagramSocketServer< Base >

A socket server for datagram sockets.

Public Types

enum  Status {
  NotStarted, AcceptingConnections, Paused, ShuttingDown,
  Stopped, Indeterminate
}
typedef
ISupportMulticast::TimeToLive 
TimeToLive

Public Member Functions

 TDatagramSocketServer (IDatagramSocketServerCallback &callback, JetByteTools::IO::IIOPool &pool, IAllocateDatagramServerSockets &socketAllocator, JetByteTools::IO::IAllocateBuffers &bufferAllocator, ILimitConnections &connectionLimiter=CConnectionLimiter::NoLimitLimiter)
 Construct a socket server with the supplied callback interface, I/O pool, allocators and connection limiter.
 TDatagramSocketServer (const IFullAddress &address, ListenBacklog listenBacklog, IDatagramSocketServerCallback &callback, JetByteTools::IO::IIOPool &pool, IAllocateDatagramServerSockets &socketAllocator, JetByteTools::IO::IAllocateBuffers &bufferAllocator, ILimitConnections &connectionLimiter=CConnectionLimiter::NoLimitLimiter)
 Construct a socket server with the supplied callback interface, I/O pool, allocators and connection limiter. Listen on the supplied address for connections with the specified listen backlog.
 TDatagramSocketServer (IDatagramSocketServerCallback &callback, JetByteTools::IO::IIOPool &pool, IAllocateDatagramServerSockets &socketAllocator, JetByteTools::IO::IAllocateBuffers &bufferAllocator, SocketBufferSize recvBufferSize, SocketBufferSize sendBufferSize=DefaultSocketBufferSize, ILimitConnections &connectionLimiter=CConnectionLimiter::NoLimitLimiter)
 Construct a socket server with the supplied callback interface, I/O pool, allocators, buffer sizes and connection limiter.
 TDatagramSocketServer (const IFullAddress &address, ListenBacklog listenBacklog, IDatagramSocketServerCallback &callback, JetByteTools::IO::IIOPool &pool, IAllocateDatagramServerSockets &socketAllocator, JetByteTools::IO::IAllocateBuffers &bufferAllocator, SocketBufferSize recvBufferSize, SocketBufferSize sendBufferSize=DefaultSocketBufferSize, ILimitConnections &connectionLimiter=CConnectionLimiter::NoLimitLimiter)
 Construct a socket server with the supplied callback interface, I/O pool, allocators, buffer sizes and connection limiter. Listen on the supplied address for connections with the specified listen backlog.
 TDatagramSocketServer (const TDatagramSocketServer &rhs)
virtual ~TDatagramSocketServer ()
TDatagramSocketServeroperator= (const TDatagramSocketServer &rhs)
void SetAddressDetails (const IFullAddress &address, ListenBacklog listenBacklog)
 Set the address to listen for connections on and the size of the listen backlog queue.
void Start () override
void StartAcceptingConnections () override
void StopAcceptingConnections () override
void BeginShutdown () override
 Starts the shutdown process and returns immediately.
void WaitForShutdownToComplete () override
 Initiates a shutdown (if one isn't already in progresss) and then waits for it to complete. Does not return until the shutdown has completed.
bool WaitForShutdownToComplete (Milliseconds timeout) override
 Initiates a shutdown (if one isn't already in progresss) and then waits for the supplied number of milliseconds for it to complete. Returns true if the shutdown completed successfully before the timeout expired and false if it didn't.
void ForceShutdown () override
 Force a shutdown to occur, this is DANGEROUS to use as it can result in a shutdown of this object, and its potential destruction, whilst there are sockets alive that may call back into this object. Use with care!
Status GetStatus () const override
 Returns the status of the server.
DWORD AbortAllConnections ()
 Aborts all active sockets that are managed by the supplied manager and returns the number of active sockets that were aborted.
void JoinMulticastGroup (const IAddress &groupAddress, const IAddress &interfaceAddress) override
void BlockMulticastGroupSource (const IAddress &groupAddress, const IAddress &interfaceAddress, const IAddress &sourceAddress) override
void UnblockMulticastGroupSource (const IAddress &groupAddress, const IAddress &interfaceAddress, const IAddress &sourceAddress) override
void LeaveMulticastGroup (const IAddress &groupAddress, const IAddress &interfaceAddress) override
void IncludeMulticastSource (const IAddress &groupAddress, const IAddress &interfaceAddress, const IAddress &sourceAddress) override
void ExcludeMulticastSource (const IAddress &groupAddress, const IAddress &interfaceAddress, const IAddress &sourceAddress) override
void SetMulticastSendInterface (const IAddress &interfaceAddress, TimeToLive multicastTTL=1, bool enableLoopback=false) override

Static Public Member Functions

static
JetByteTools::Core::_tstring 
GetStatusAsString (Status status)

Protected Types

enum  IO_Operation {
  IO_Read_Completed, IO_Write_Completed, IO_SendTo_Completed, IO_On_Connection_Reset,
  IO_On_Closed, IO_Process_Later = 0xFF00
}

Protected Member Functions

bool AcceptingConnections () const
void OnError (DWORD lastError) override
 Called when an error has occurred before the operation can be handled.
DWORD GetError (const OVERLAPPED &overlapped) override
void HandleOperation (JetByteTools::IO::IBuffer *pBuffer, DWORD ioSize, DWORD lastError) override
void HandleOperation (IDatagramServerSocketEx &socket, JetByteTools::IO::CSmartBuffer &buffer, DWORD ioSize, DWORD lastError) override
void RequestRead (IDatagramServerSocketEx &socket, JetByteTools::IO::CSmartBuffer &buffer) override
void RequestWrite (IDatagramServerSocketEx &socket, JetByteTools::IO::CSmartBuffer &buffer) override
void RequestSendTo (IDatagramServerSocketEx &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer) override
void Read (IDatagramServerSocketEx &socket, JetByteTools::IO::CSmartBuffer &buffer)
void Write (IDatagramServerSocketEx &socket, JetByteTools::IO::CSmartBuffer &buffer)
void SendTo (IDatagramServerSocketEx &socket, JetByteTools::IO::CSmartBuffer &buffer)
void OnConnectionReset (IDatagramServerSocketEx &socket, DWORD lastError)
void OnConnectionClosed (IDatagramServerSocketEx &socket, ConnectionClosureReason reason)
virtual SOCKET CreateSocket (const IAddressType &addressType, SocketBufferSize recvBufferSize, SocketBufferSize sendBufferSize) const
virtual SOCKET CreateListeningSocket (SOCKET socket, const IAddress &address)
virtual
CSmartDatagramServerSocketEx 
AllocateSocket (SOCKET theSocket)
void ReleaseSocket (IPoolableSocket &socket, bool wasUserSocket) override
void PostIoOperation (IDatagramServerSocketEx &socket, JetByteTools::IO::CSmartBuffer &buffer, DWORD operation, bool forceDispatchToPool=false)
void PostReadRequest ()
void PostReadRequest (IDatagramServerSocketEx &socket, JetByteTools::IO::CSmartBuffer &buffer)
void IncrementPendingReceives ()
void DecrementPendingReceives ()
DWORD AbortAllConnections (ConnectionClosureReason reason)
bool ShutdownIsInProgress () const
void EnsureCanConnectNow ()
bool CheckCanConnectNow ()
void AssociateDevice (SOCKET s, JetByteTools::IO::IHandler &handler) const
JetByteTools::IO::CSmartBuffer AllocateBuffer () override
JetByteTools::IO::CSmartBuffer AllocateBuffer (JetByteTools::IO::IPoolBuffers &pool) override
JetByteTools::IO::CSmartBuffer AllocateCustomSizedBuffer (JetByteTools::IO::IBuffer::BufferSize bufferSize) override
void IncrementActiveConnections ()
void DecrementActiveConnections ()
void SetBufferSize (SOCKET s, SocketBufferSize bufferSize, int optionName) const
bool ConnectEx (SOCKET s, const struct sockaddr FAR *name, int namelen, PVOID lpSendBuffer, DWORD dwSendDataLength, LPDWORD lpdwBytesSent, LPOVERLAPPED lpOverlapped) const
 Loads, if necessary and available, and then calls ConnectEx(). If the function isn't available then an exception is thrown.
bool LoadConnectEx (SOCKET s) const
 Attempts to load ConnectEx() via a call to WSAIoctl(). Returns true if successful.
bool AcceptEx (SOCKET listenSocket, SOCKET acceptSocket, PVOID pOutputBuffer, DWORD receiveDataLength, DWORD localAddressLength, DWORD remoteAddressLength, LPDWORD bytesReceived, LPOVERLAPPED pOverlapped) const
 Loads, if necessary and available, and then calls AcceptEx(). If the function isn't available then an exception is thrown.
bool LoadAcceptEx (SOCKET s) const
 Attempts to load AcceptEx() via a call to WSAIoctl(). Returns true if successful.
void GetAcceptExSockaddrs (PVOID pOutputBuffer, DWORD receiveDataLength, DWORD localAddressLength, DWORD remoteAddressLength, LPSOCKADDR *pLocalSockaddr, LPINT pLocalSockaddrLength, LPSOCKADDR *pRemoteSockaddr, LPINT pRemoteSockaddrLength) const
 Loads, if necessary and available, and then calls GetAcceptExSockaddrs(). If the function isn't available then an exception is thrown.
bool LoadGetAcceptExSockaddrs (SOCKET s) const
 Attempts to load GetAcceptExSockaddrs() via a call to WSAIoctl(). Returns true if successful.
bool DisconnectEx (SOCKET s, LPOVERLAPPED pOverlapped, DWORD flags) const
 Loads, if necessary and available, and then calls DisconnectEx(). If the function isn't available then an exception is thrown.
bool LoadDisconnectEx (SOCKET s) const
 Attempts to load DisconnectEx() via a call to WSAIoctl(). Returns true if successful.
bool TransmitFile (SOCKET s, HANDLE fileToTransmit, DWORD numberOfBytesToWrite, DWORD numberOfBytesPerSend, LPOVERLAPPED lOverlapped, LPTRANSMIT_FILE_BUFFERS lTransmitBuffers, DWORD flags) const
 Loads, if necessary and available, and then calls TransmitFile(). If the function isn't available then an exception is thrown.
bool LoadTransmitFile (SOCKET s) const
 Attempts to load TransmitFile() via a call to WSAIoctl(). Returns true if successful.
bool DisconnectSocketForReuse (SOCKET s) const
 Attempts to disconnect a socket for reuse first by attempting to call DisconnectEx() and then by attempting to call TransmitFile() in 'disconnect for reuse mode' see http://msdn2.microsoft.com/en-us/library/ms740565.aspx for details. If neither option is available then an exception is thrown.
bool CanDisconnectSocketForReuse (SOCKET s) const
 Returns true if either DisconnectEx() or TransmitFile() can be a call to WSAIoctl().
int WSARecvMsg (SOCKET s, LPWSAMSG lpMsg, LPDWORD lpdwNumberOfBytesRecvd, LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine) const
 Loads, if necessary and available, and then calls WSARecvMsg(). If the function isn't available then an exception is thrown.
bool LoadWSARecvMsg (SOCKET s) const
 Attempts to load WSARecvMsg() via a call to WSAIoctl(). Returns true if successful.
void EnableDispatchOnThisThread (bool enable)

Static Protected Member Functions

static bool ShouldDispatchOnThisThread ()
static bool ShouldDispatchForThisSocket (const void *pSocket)
static const void * EnableDispatchForThisSocket (const void *pSocket)
static void DisableDispatchForThisSocket (const void *pSocket)

Protected Attributes

const
JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex 
m_socketIndex
const
JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex 
m_addressIndex
JetByteTools::Core::CAtomicBool m_acceptingConnections
JetByteTools::IO::IIOPoolm_pool
SocketAllocator & m_socketAllocator
ILimitConnectionsm_connectionLimiter
JetByteTools::Core::CManualResetEvent m_noActiveConnectionsEvent
JetByteTools::Core::CAtomicCounter m_activeConnections
const bool m_canEnableSkipCompletionPortOnSuccess

Member Typedef Documentation


Member Enumeration Documentation

enum IO_Operation [protected]

Enumerator:
IO_Read_Completed 
IO_Write_Completed 
IO_SendTo_Completed 
IO_On_Connection_Reset 
IO_On_Closed 
IO_Process_Later 

enum Status [inherited]

Enumerator:
NotStarted 
AcceptingConnections 
Paused 
ShuttingDown 
Stopped 
Indeterminate 


Constructor & Destructor Documentation

Construct a socket server with the supplied callback interface, I/O pool, allocators and connection limiter.

TDatagramSocketServer ( const IFullAddress address,
ListenBacklog  listenBacklog,
IDatagramSocketServerCallback callback,
JetByteTools::IO::IIOPool pool,
IAllocateDatagramServerSockets socketAllocator,
JetByteTools::IO::IAllocateBuffers bufferAllocator,
ILimitConnections connectionLimiter = CConnectionLimiter::NoLimitLimiter 
) [inline]

Construct a socket server with the supplied callback interface, I/O pool, allocators and connection limiter. Listen on the supplied address for connections with the specified listen backlog.

TDatagramSocketServer ( IDatagramSocketServerCallback callback,
JetByteTools::IO::IIOPool pool,
IAllocateDatagramServerSockets socketAllocator,
JetByteTools::IO::IAllocateBuffers bufferAllocator,
SocketBufferSize  recvBufferSize,
SocketBufferSize  sendBufferSize = DefaultSocketBufferSize,
ILimitConnections connectionLimiter = CConnectionLimiter::NoLimitLimiter 
) [inline]

Construct a socket server with the supplied callback interface, I/O pool, allocators, buffer sizes and connection limiter.

TDatagramSocketServer ( const IFullAddress address,
ListenBacklog  listenBacklog,
IDatagramSocketServerCallback callback,
JetByteTools::IO::IIOPool pool,
IAllocateDatagramServerSockets socketAllocator,
JetByteTools::IO::IAllocateBuffers bufferAllocator,
SocketBufferSize  recvBufferSize,
SocketBufferSize  sendBufferSize = DefaultSocketBufferSize,
ILimitConnections connectionLimiter = CConnectionLimiter::NoLimitLimiter 
) [inline]

Construct a socket server with the supplied callback interface, I/O pool, allocators, buffer sizes and connection limiter. Listen on the supplied address for connections with the specified listen backlog.

~TDatagramSocketServer (  )  [inline, virtual]


Member Function Documentation

TDatagramSocketServer& operator= ( const TDatagramSocketServer< Base > &  rhs  ) 

void SetAddressDetails ( const IFullAddress address,
ListenBacklog  listenBacklog 
) [inline]

Set the address to listen for connections on and the size of the listen backlog queue.

void Start (  )  [inline, override, virtual]

Reimplemented from TConnectionManagerBase.

void StartAcceptingConnections (  )  [inline, override, virtual]

Implements IServerControl.

void StopAcceptingConnections (  )  [inline, override, virtual]

Implements IServerControl.

void BeginShutdown (  )  [inline, override, virtual]

Starts the shutdown process and returns immediately.

Reimplemented from TConnectionManagerBase.

void WaitForShutdownToComplete (  )  [inline, override, virtual]

Initiates a shutdown (if one isn't already in progresss) and then waits for it to complete. Does not return until the shutdown has completed.

Reimplemented from TConnectionManagerBase.

bool WaitForShutdownToComplete ( Milliseconds  timeout  )  [inline, override, virtual]

Initiates a shutdown (if one isn't already in progresss) and then waits for the supplied number of milliseconds for it to complete. Returns true if the shutdown completed successfully before the timeout expired and false if it didn't.

Reimplemented from TConnectionManagerBase.

void ForceShutdown (  )  [inline, override, virtual]

Force a shutdown to occur, this is DANGEROUS to use as it can result in a shutdown of this object, and its potential destruction, whilst there are sockets alive that may call back into this object. Use with care!

Reimplemented from TConnectionManagerBase.

IServerControl::Status GetStatus (  )  const [inline, override, virtual]

Returns the status of the server.

Implements IServerControl.

bool AcceptingConnections (  )  const [inline, protected]

void OnError ( DWORD  lastError  )  [inline, override, protected, virtual]

Called when an error has occurred before the operation can be handled.

Implements IHandler.

DWORD GetError ( const OVERLAPPED overlapped  )  [inline, override, protected, virtual]

Implements IHandler.

void HandleOperation ( JetByteTools::IO::IBuffer *  pBuffer,
DWORD  ioSize,
DWORD  lastError 
) [inline, override, protected]

void HandleOperation ( IDatagramServerSocketEx socket,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  ioSize,
DWORD  lastError 
) [inline, override, protected]

void RequestRead ( IDatagramServerSocketEx socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, override, protected]

void RequestWrite ( IDatagramServerSocketEx socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, override, protected]

void RequestSendTo ( IDatagramServerSocketEx socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, override, protected]

void Read ( IDatagramServerSocketEx socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, protected]

void Write ( IDatagramServerSocketEx socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, protected]

void SendTo ( IDatagramServerSocketEx socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, protected]

void OnConnectionReset ( IDatagramServerSocketEx socket,
DWORD  lastError 
) [inline, protected]

void OnConnectionClosed ( IDatagramServerSocketEx socket,
ConnectionClosureReason  reason 
) [inline, protected]

SOCKET CreateSocket ( const IAddressType addressType,
SocketBufferSize  recvBufferSize,
SocketBufferSize  sendBufferSize 
) const [inline, protected, virtual]

SOCKET CreateListeningSocket ( SOCKET  socket,
const IAddress address 
) [inline, protected, virtual]

CSmartDatagramServerSocketEx AllocateSocket ( SOCKET  theSocket  )  [inline, protected, virtual]

void ReleaseSocket ( IPoolableSocket socket,
bool  wasUserSocket 
) [inline, override, protected, virtual]

Reimplemented from TConnectionManagerBase.

void PostIoOperation ( IDatagramServerSocketEx socket,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  operation,
bool  forceDispatchToPool = false 
) [inline, protected]

void PostReadRequest (  )  [inline, protected]

void PostReadRequest ( IDatagramServerSocketEx socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, protected]

void IncrementPendingReceives (  )  [inline, protected]

void DecrementPendingReceives (  )  [inline, protected]

DWORD AbortAllConnections (  )  [inline, inherited]

Aborts all active sockets that are managed by the supplied manager and returns the number of active sockets that were aborted.

DWORD AbortAllConnections ( ConnectionClosureReason  reason  )  [inline, protected, inherited]

bool ShutdownIsInProgress (  )  const [inline, protected, inherited]

void EnsureCanConnectNow (  )  [inline, protected, inherited]

bool CheckCanConnectNow (  )  [inline, protected, inherited]

void AssociateDevice ( SOCKET  s,
JetByteTools::IO::IHandler handler 
) const [inline, protected, inherited]

JetByteTools::IO::CSmartBuffer AllocateBuffer (  )  [inline, override, protected, inherited]

JetByteTools::IO::CSmartBuffer AllocateBuffer ( JetByteTools::IO::IPoolBuffers pool  )  [inline, override, protected, inherited]

JetByteTools::IO::CSmartBuffer AllocateCustomSizedBuffer ( JetByteTools::IO::IBuffer::BufferSize  bufferSize  )  [inline, override, protected, inherited]

void IncrementActiveConnections (  )  [inline, protected, inherited]

void DecrementActiveConnections (  )  [inline, protected, inherited]

void SetBufferSize ( SOCKET  s,
SocketBufferSize  bufferSize,
int  optionName 
) const [inline, protected, inherited]

bool ConnectEx ( SOCKET  s,
const struct sockaddr FAR *  name,
int  namelen,
PVOID  lpSendBuffer,
DWORD  dwSendDataLength,
LPDWORD  lpdwBytesSent,
LPOVERLAPPED  lpOverlapped 
) const [inherited]

Loads, if necessary and available, and then calls ConnectEx(). If the function isn't available then an exception is thrown.

bool LoadConnectEx ( SOCKET  s  )  const [inherited]

Attempts to load ConnectEx() via a call to WSAIoctl(). Returns true if successful.

bool AcceptEx ( SOCKET  listenSocket,
SOCKET  acceptSocket,
PVOID  pOutputBuffer,
DWORD  receiveDataLength,
DWORD  localAddressLength,
DWORD  remoteAddressLength,
LPDWORD  bytesReceived,
LPOVERLAPPED  pOverlapped 
) const [inherited]

Loads, if necessary and available, and then calls AcceptEx(). If the function isn't available then an exception is thrown.

bool LoadAcceptEx ( SOCKET  s  )  const [inherited]

Attempts to load AcceptEx() via a call to WSAIoctl(). Returns true if successful.

void GetAcceptExSockaddrs ( PVOID  pOutputBuffer,
DWORD  receiveDataLength,
DWORD  localAddressLength,
DWORD  remoteAddressLength,
LPSOCKADDR *  pLocalSockaddr,
LPINT  pLocalSockaddrLength,
LPSOCKADDR *  pRemoteSockaddr,
LPINT  pRemoteSockaddrLength 
) const [inherited]

Loads, if necessary and available, and then calls GetAcceptExSockaddrs(). If the function isn't available then an exception is thrown.

bool LoadGetAcceptExSockaddrs ( SOCKET  s  )  const [inherited]

Attempts to load GetAcceptExSockaddrs() via a call to WSAIoctl(). Returns true if successful.

bool DisconnectEx ( SOCKET  s,
LPOVERLAPPED  pOverlapped,
DWORD  flags 
) const [inherited]

Loads, if necessary and available, and then calls DisconnectEx(). If the function isn't available then an exception is thrown.

bool LoadDisconnectEx ( SOCKET  s  )  const [inherited]

Attempts to load DisconnectEx() via a call to WSAIoctl(). Returns true if successful.

bool TransmitFile ( SOCKET  s,
HANDLE  fileToTransmit,
DWORD  numberOfBytesToWrite,
DWORD  numberOfBytesPerSend,
LPOVERLAPPED  lOverlapped,
LPTRANSMIT_FILE_BUFFERS  lTransmitBuffers,
DWORD  flags 
) const [inherited]

Loads, if necessary and available, and then calls TransmitFile(). If the function isn't available then an exception is thrown.

bool LoadTransmitFile ( SOCKET  s  )  const [inherited]

Attempts to load TransmitFile() via a call to WSAIoctl(). Returns true if successful.

bool DisconnectSocketForReuse ( SOCKET  s  )  const [inherited]

Attempts to disconnect a socket for reuse first by attempting to call DisconnectEx() and then by attempting to call TransmitFile() in 'disconnect for reuse mode' see http://msdn2.microsoft.com/en-us/library/ms740565.aspx for details. If neither option is available then an exception is thrown.

bool CanDisconnectSocketForReuse ( SOCKET  s  )  const [inherited]

Returns true if either DisconnectEx() or TransmitFile() can be a call to WSAIoctl().

int WSARecvMsg ( SOCKET  s,
LPWSAMSG  lpMsg,
LPDWORD  lpdwNumberOfBytesRecvd,
LPWSAOVERLAPPED  lpOverlapped,
LPWSAOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine 
) const [inherited]

Loads, if necessary and available, and then calls WSARecvMsg(). If the function isn't available then an exception is thrown.

bool LoadWSARecvMsg ( SOCKET  s  )  const [inherited]

Attempts to load WSARecvMsg() via a call to WSAIoctl(). Returns true if successful.

bool ShouldDispatchOnThisThread (  )  [static, inherited]

bool ShouldDispatchForThisSocket ( const void *  pSocket  )  [static, inherited]

void EnableDispatchOnThisThread ( bool  enable  )  [inherited]

const void * EnableDispatchForThisSocket ( const void *  pSocket  )  [static, inherited]

void DisableDispatchForThisSocket ( const void *  pSocket  )  [static, inherited]

_tstring GetStatusAsString ( Status  status  )  [static, inherited]

void JoinMulticastGroup ( const IAddress groupAddress,
const IAddress interfaceAddress 
) [inline, override, inherited]

void BlockMulticastGroupSource ( const IAddress groupAddress,
const IAddress interfaceAddress,
const IAddress sourceAddress 
) [inline, override, inherited]

void UnblockMulticastGroupSource ( const IAddress groupAddress,
const IAddress interfaceAddress,
const IAddress sourceAddress 
) [inline, override, inherited]

void LeaveMulticastGroup ( const IAddress groupAddress,
const IAddress interfaceAddress 
) [inline, override, inherited]

void IncludeMulticastSource ( const IAddress groupAddress,
const IAddress interfaceAddress,
const IAddress sourceAddress 
) [inline, override, inherited]

void ExcludeMulticastSource ( const IAddress groupAddress,
const IAddress interfaceAddress,
const IAddress sourceAddress 
) [inline, override, inherited]

void SetMulticastSendInterface ( const IAddress interfaceAddress,
TimeToLive  multicastTTL = 1,
bool  enableLoopback = false 
) [inline, override, inherited]


Member Data Documentation

JetByteTools::IO::IIOPool& m_pool [protected, inherited]

SocketAllocator& m_socketAllocator [protected, inherited]

ILimitConnections& m_connectionLimiter [protected, inherited]

const bool m_canEnableSkipCompletionPortOnSuccess [protected, inherited]


Generated on Sun Sep 12 19:10:08 2021 for The Server Framework - v7.4 by doxygen 1.5.3