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 () |
TDatagramSocketServer & | operator= (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::IIOPool & | m_pool |
SocketAllocator & | m_socketAllocator |
ILimitConnections & | m_connectionLimiter |
JetByteTools::Core::CManualResetEvent | m_noActiveConnectionsEvent |
JetByteTools::Core::CAtomicCounter | m_activeConnections |
const bool | m_canEnableSkipCompletionPortOnSuccess |
typedef ISupportMulticast::TimeToLive TimeToLive [inherited] |
enum IO_Operation [protected] |
enum Status [inherited] |
TDatagramSocketServer | ( | 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.
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 | ( | const TDatagramSocketServer< Base > & | rhs | ) |
~TDatagramSocketServer | ( | ) | [inline, virtual] |
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] |
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] |
bool AcceptingConnections | ( | ) | const [inline, protected] |
void OnError | ( | DWORD | lastError | ) | [inline, override, protected, virtual] |
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.
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.
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.
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.
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.
Attempts to load TransmitFile() via a call to WSAIoctl(). Returns true if successful.
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.
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.
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] |
const JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex m_socketIndex [protected] |
const JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex m_addressIndex [protected] |
JetByteTools::IO::IIOPool& m_pool [protected, inherited] |
SocketAllocator& m_socketAllocator [protected, inherited] |
ILimitConnections& m_connectionLimiter [protected, inherited] |
JetByteTools::Core::CManualResetEvent m_noActiveConnectionsEvent [protected, inherited] |
JetByteTools::Core::CAtomicCounter m_activeConnections [protected, inherited] |
const bool m_canEnableSkipCompletionPortOnSuccess [protected, inherited] |