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

CDatagramSocket Class Reference
[Datagram SocketsSocketsOpaque user data]

Inheritance diagram for CDatagramSocket:
Collaboration diagram for CDatagramSocket:

List of all members.


Detailed Description

A datagram socket that allows you to RecvFrom() and SendTo() any host.

Public Types

typedef TAsyncSocket
< TMulticastDatagramHelper
< IPoolableDatagramSocket >,
IDatagramSocketConnectionManager,
IDatagramSocketCallback
Base

Public Member Functions

 CDatagramSocket (JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex numberOfUserDataSlots, PerSocketBufferPoolingLimit maxPooledBuffers, ConsecutiveSocketOperations maxConsecutiveOperations)
 CDatagramSocket (const CDatagramSocket &rhs)
CDatagramSocketoperator= (const CDatagramSocket &rhs)
void Shutdown (ShutdownHow how) override
void RecvFrom () override
void RecvFrom (JetByteTools::IO::IBuffer *pBuffer) override
void RecvFrom (JetByteTools::IO::CSmartBuffer &buffer) override
bool TryRecvFrom () override
bool TryRecvFrom (JetByteTools::IO::IBuffer *pBuffer) override
bool TryRecvFrom (JetByteTools::IO::CSmartBuffer &buffer) override
void SendTo (const IAddress &address, const char *pData, DataLength dataLength) override
void SendTo (const IAddress &address, const BYTE *pData, DataLength dataLength) override
void SendTo (const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer) override
bool TrySendTo (const IAddress &address, const char *pData, DataLength dataLength) override
bool TrySendTo (const IAddress &address, const BYTE *pData, DataLength dataLength) override
bool TrySendTo (const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer) override
void Connect (const IAddress &address) override
bool Close () override

Protected Member Functions

virtual const
std::string & 
GetIdentifierA () const
virtual
JetByteTools::Core::_tstring 
GetIdentifier () const
bool IsLockedByThisThread () const override
JetByteTools::IO::IBuffer::SequenceNumber GetNextOperationSequenceNumber () override
JetByteTools::IO::CSmartBuffer Allocate () override
JetByteTools::IO::CSmartBuffer Allocate (JetByteTools::IO::IAllocateBuffer &allocator) override
JetByteTools::IO::CSmartBuffer AllocateCustomSizedBuffer (JetByteTools::IO::IBuffer::BufferSize bufferSize) override
JetByteTools::IO::CSmartBuffer AllocateCustomSizedBuffer (JetByteTools::IO::IAllocateBuffer &allocator, JetByteTools::IO::IBuffer::BufferSize bufferSize) override
void AddBufferToPool (JetByteTools::IO::IBuffer &buffer) override
virtual bool CloseSocket ()
virtual void Read ()
virtual void Read (JetByteTools::IO::CSmartBuffer &buffer)
virtual void Read (JetByteTools::IO::IBuffer *pBuffer)
virtual void Write (const char *pData, JetByteTools::IO::IStream::DataLength dataLength)
virtual void Write (const BYTE *pData, JetByteTools::IO::IStream::DataLength dataLength)
virtual void Write (JetByteTools::IO::CSmartBuffer &buffer)
virtual void Write (JetByteTools::IO::IIterateableBufferChain &buffers)
virtual bool TryRead ()
virtual bool TryRead (JetByteTools::IO::CSmartBuffer &buffer)
virtual bool TryRead (JetByteTools::IO::IBuffer *pBuffer)
virtual bool TryWrite (const char *pData, JetByteTools::IO::IStream::DataLength dataLength)
virtual bool TryWrite (const BYTE *pData, JetByteTools::IO::IStream::DataLength dataLength)
virtual bool TryWrite (JetByteTools::IO::CSmartBuffer &buffer)
virtual bool TryWrite (JetByteTools::IO::IIterateableBufferChain &buffers)
virtual void Shutdown ()
virtual bool AbortConnection ()
virtual CAddress GetLocalAddress () const
virtual CAddress GetRemoteAddress () const
virtual void AddRef ()
virtual void Release ()
virtual bool WeOwnOnlyReference () const
virtual void Attach (IPoolableSocketManager &manager, ISocketCallback &callback, SOCKET socket)
virtual bool AbortConnectionIfManagedBy (const IPoolableSocketManager &manager, ConnectionClosureReason reason)
virtual void DumpIfManagedBy (const IPoolableSocketManager &manager) const
virtual bool AddRefIfPossible ()
virtual DWORD GetError (const OVERLAPPED &overlapped)
 Implement IHandler.
virtual void HandleOperation (JetByteTools::IO::IBuffer *pBuffer, DWORD ioSize, DWORD lastError)
virtual void * GetUserPointer (JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex index) const
virtual void SetUserPointer (JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex index, void *pData)
virtual ULONG_PTR GetUserData (JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex index) const
virtual void SetUserData (JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex index, ULONG_PTR data)
virtual void WriteCompleted ()
virtual
JetByteTools::Core::IReentrantLockableObject
GetLock () const
virtual void Accepted ()
virtual void AboutToConnect ()
virtual void Connected ()
virtual
ConnectionDirection 
GetConnectionDirection () const
virtual bool CanWrite (size_t numBuffers=1)
virtual bool CanIssueFilteredWrite ()
virtual bool WritePending ()
virtual void ForceWritePending ()
virtual
JetByteTools::IO::CSmartBuffer 
GetNextOperation (JetByteTools::IO::CSmartBuffer &buffer)
virtual bool ProcessAndGetNextOperation (JetByteTools::IO::CSmartBuffer &buffer)
virtual void AllowOperationProcessingTransfer ()
virtual void OnAttach ()
virtual void CancelIOIfNecessary ()
virtual void OnDetach ()
void IncrementReferenceCountFromZero ()
virtual bool OnFinalRelease ()
bool IsValid () const

Protected Attributes

Manager * m_pManager
Callback * m_pCallback
SOCKET m_socket
JetByteTools::Core::CAtomicLong m_outstandingWrites
JetByteTools::Core::CAtomicBool m_writeShutdown
JetByteTools::Core::CAtomicBool m_readShutdown
ConnectionDirection m_direction
JetByteTools::Core::CReentrantLockableObjectTracksLockingThread m_lock

Member Typedef Documentation


Constructor & Destructor Documentation

CDatagramSocket ( const CDatagramSocket rhs  ) 


Member Function Documentation

CDatagramSocket& operator= ( const CDatagramSocket rhs  ) 

void Shutdown ( ShutdownHow  how  )  [override, virtual]

Reimplemented from TAsyncSocket.

void RecvFrom (  )  [override]

void RecvFrom ( JetByteTools::IO::IBuffer *  pBuffer  )  [override]

void RecvFrom ( JetByteTools::IO::CSmartBuffer buffer  )  [override]

bool TryRecvFrom (  )  [override]

bool TryRecvFrom ( JetByteTools::IO::IBuffer *  pBuffer  )  [override]

bool TryRecvFrom ( JetByteTools::IO::CSmartBuffer buffer  )  [override]

void SendTo ( const IAddress address,
const char *  pData,
DataLength  dataLength 
) [override]

void SendTo ( const IAddress address,
const BYTE pData,
DataLength  dataLength 
) [override]

void SendTo ( const IAddress address,
JetByteTools::IO::CSmartBuffer buffer 
) [override]

bool TrySendTo ( const IAddress address,
const char *  pData,
DataLength  dataLength 
) [override]

bool TrySendTo ( const IAddress address,
const BYTE pData,
DataLength  dataLength 
) [override]

bool TrySendTo ( const IAddress address,
JetByteTools::IO::CSmartBuffer buffer 
) [override]

void Connect ( const IAddress address  )  [override]

bool Close (  )  [override]

const std::string & GetIdentifierA (  )  const [inline, protected, virtual, inherited]

JetByteTools::Core::_tstring GetIdentifier (  )  const [inline, protected, virtual, inherited]

bool IsLockedByThisThread (  )  const [inline, override, protected, inherited]

JetByteTools::IO::IBuffer::SequenceNumber GetNextOperationSequenceNumber (  )  [inline, override, protected, inherited]

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

JetByteTools::IO::CSmartBuffer Allocate ( JetByteTools::IO::IAllocateBuffer allocator  )  [inline, override, protected, inherited]

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

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

void AddBufferToPool ( JetByteTools::IO::IBuffer &  buffer  )  [inline, override, protected, inherited]

bool CloseSocket (  )  [inline, protected, virtual, inherited]

void Read (  )  [inline, protected, virtual, inherited]

void Read ( JetByteTools::IO::CSmartBuffer buffer  )  [inline, protected, virtual, inherited]

void Read ( JetByteTools::IO::IBuffer *  pBuffer  )  [inline, protected, virtual, inherited]

void Write ( const char *  pData,
JetByteTools::IO::IStream::DataLength  dataLength 
) [inline, protected, virtual, inherited]

void Write ( const BYTE pData,
JetByteTools::IO::IStream::DataLength  dataLength 
) [inline, protected, virtual, inherited]

void Write ( JetByteTools::IO::CSmartBuffer buffer  )  [inline, protected, virtual, inherited]

void Write ( JetByteTools::IO::IIterateableBufferChain buffers  )  [inline, protected, virtual, inherited]

bool TryRead (  )  [inline, protected, virtual, inherited]

bool TryRead ( JetByteTools::IO::CSmartBuffer buffer  )  [inline, protected, virtual, inherited]

bool TryRead ( JetByteTools::IO::IBuffer *  pBuffer  )  [inline, protected, virtual, inherited]

bool TryWrite ( const char *  pData,
JetByteTools::IO::IStream::DataLength  dataLength 
) [inline, protected, virtual, inherited]

bool TryWrite ( const BYTE pData,
JetByteTools::IO::IStream::DataLength  dataLength 
) [inline, protected, virtual, inherited]

bool TryWrite ( JetByteTools::IO::CSmartBuffer buffer  )  [inline, protected, virtual, inherited]

bool TryWrite ( JetByteTools::IO::IIterateableBufferChain buffers  )  [inline, protected, virtual, inherited]

void Shutdown (  )  [inline, protected, virtual, inherited]

bool AbortConnection (  )  [inline, protected, virtual, inherited]

CAddress GetLocalAddress (  )  const [inline, protected, virtual, inherited]

CAddress GetRemoteAddress (  )  const [inline, protected, virtual, inherited]

Reimplemented in CDatagramServerSocket.

void AddRef (  )  [inline, protected, virtual, inherited]

void Release (  )  [inline, protected, virtual, inherited]

bool WeOwnOnlyReference (  )  const [inline, protected, virtual, inherited]

void Attach ( IPoolableSocketManager manager,
ISocketCallback callback,
SOCKET  socket 
) [inline, protected, virtual, inherited]

bool AbortConnectionIfManagedBy ( const IPoolableSocketManager manager,
ConnectionClosureReason  reason 
) [inline, protected, virtual, inherited]

void DumpIfManagedBy ( const IPoolableSocketManager manager  )  const [inline, protected, virtual, inherited]

bool AddRefIfPossible (  )  [inline, protected, virtual, inherited]

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

Implement IHandler.

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

void * GetUserPointer ( JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex  index  )  const [inline, protected, virtual, inherited]

void SetUserPointer ( JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex  index,
void *  pData 
) [inline, protected, virtual, inherited]

ULONG_PTR GetUserData ( JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex  index  )  const [inline, protected, virtual, inherited]

void SetUserData ( JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex  index,
ULONG_PTR  data 
) [inline, protected, virtual, inherited]

void WriteCompleted (  )  [inline, protected, virtual, inherited]

JetByteTools::Core::IReentrantLockableObject & GetLock (  )  const [inline, protected, virtual, inherited]

void Accepted (  )  [inline, protected, virtual, inherited]

void AboutToConnect (  )  [inline, protected, virtual, inherited]

void Connected (  )  [inline, protected, virtual, inherited]

ConnectionDirection GetConnectionDirection (  )  const [inline, protected, virtual, inherited]

bool CanWrite ( size_t  numBuffers = 1  )  [inline, protected, virtual, inherited]

bool CanIssueFilteredWrite (  )  [inline, protected, virtual, inherited]

bool WritePending (  )  [inline, protected, virtual, inherited]

void ForceWritePending (  )  [inline, protected, virtual, inherited]

JetByteTools::IO::CSmartBuffer GetNextOperation ( JetByteTools::IO::CSmartBuffer buffer  )  [inline, protected, virtual, inherited]

bool ProcessAndGetNextOperation ( JetByteTools::IO::CSmartBuffer buffer  )  [inline, protected, virtual, inherited]

void AllowOperationProcessingTransfer (  )  [inline, protected, virtual, inherited]

virtual void OnAttach (  )  [inline, protected, virtual, inherited]

Reimplemented in CSequencedStreamSocket, and CStreamSocket.

virtual void CancelIOIfNecessary (  )  [inline, protected, virtual, inherited]

Reimplemented in CStreamSocket.

virtual void OnDetach (  )  [inline, protected, virtual, inherited]

Reimplemented in CSequencedStreamSocket.

void IncrementReferenceCountFromZero (  )  [inline, protected, inherited]

bool OnFinalRelease (  )  [inline, protected, virtual, inherited]

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


Member Data Documentation

Manager* m_pManager [protected, inherited]

Callback* m_pCallback [protected, inherited]

SOCKET m_socket [protected, inherited]

ConnectionDirection m_direction [protected, inherited]

JetByteTools::Core::CReentrantLockableObjectTracksLockingThread m_lock [mutable, protected, inherited]


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