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

IAsyncSocket Class Reference
[SocketsInterfacesProtected destructors on abstract base classes]

Inheritance diagram for IAsyncSocket:
Collaboration diagram for IAsyncSocket:

List of all members.


Detailed Description

An interface to the functionality common to all asynchronous sockets. The "Try" functions add to the functions from JetByteTools::IO::IAsyncIOStream by adding versions that return false on failure rather than by throwing an exception.

Public Types

typedef unsigned long DataLength
typedef unsigned short UserDataIndex

Public Member Functions

virtual const
std::string & 
GetIdentifierA () const =0
virtual
JetByteTools::Core::_tstring 
GetIdentifier () const =0
virtual bool TryRead ()=0
 Attempts to read from the connection. Returns false if the connection is closed.
virtual bool TryRead (JetByteTools::IO::CSmartBuffer &buffer)=0
 Attempts to read from the connection. Returns false if the connection is closed. Note that this CAN throw an exception if the supplied buffer doesn't have any space left in it.
virtual bool TryRead (JetByteTools::IO::IBuffer *pBuffer)=0
 Attempts to read from the connection. Returns false if the connection is closed. Note that this CAN throw an exception if the supplied buffer doesn't have any space left in it.
virtual bool TryWrite (const char *pData, DataLength dataLength)=0
 Attempts to write to the connection. Returns false if the connection is closed.
virtual bool TryWrite (const BYTE *pData, DataLength dataLength)=0
 Attempts to write to the connection. Returns false if the connection is closed.
virtual bool TryWrite (JetByteTools::IO::CSmartBuffer &buffer)=0
 Attempts to write to the connection. Returns false if the connection is closed.
virtual bool TryWrite (JetByteTools::IO::IIterateableBufferChain &buffers)=0
 Attempts to write to the connection. Returns false if the connection is closed.
virtual void Shutdown ()=0
virtual void Shutdown (ShutdownHow how)=0
virtual bool AbortConnection ()=0
virtual bool AbortConnection (ConnectionClosureReason reason)=0
virtual CAddress GetLocalAddress () const =0
virtual CAddress GetRemoteAddress () const =0
virtual void AddRef ()=0
virtual void Release ()=0
virtual
ConnectionDirection 
GetConnectionDirection () const =0
virtual void Read ()=0
virtual void Read (CSmartBuffer &buffer)=0
virtual void Read (IBuffer *pBuffer)=0
virtual void Write (const char *pData, DataLength dataLength)=0
virtual void Write (const BYTE *pData, DataLength dataLength)=0
virtual void Write (CSmartBuffer &buffer)=0
virtual void Write (IIterateableBufferChain &buffers)=0
virtual void * GetUserPointer (UserDataIndex index) const =0
 Access the data stored at the specified index as a void pointer.
virtual void SetUserPointer (UserDataIndex index, void *pData)=0
 Update the data stored at the specified index as a void pointer.
virtual ULONG_PTR GetUserData (UserDataIndex index) const =0
 Access the data stored at the specified index as an unsigned long.
virtual void SetUserData (UserDataIndex index, ULONG_PTR data)=0
 Update the data stored at the specified index as an unsigned long.
CSmartBuffer Allocate () override=0
 Allocate an instance of IBuffer, remember to call Release() on it when you're done with it.
virtual CSmartBuffer Allocate (IAllocateBuffer &allocator)=0
CSmartBuffer AllocateCustomSizedBuffer (IBuffer::BufferSize bufferSize) override=0
virtual CSmartBuffer AllocateCustomSizedBuffer (IAllocateBuffer &allocator, IBuffer::BufferSize bufferSize)=0
virtual void AddBufferToPool (IBuffer &buffer)=0

Static Public Attributes

static
JETBYTE_CONSTEXPR
UserDataIndex 
InvalidUserDataIndex = 0xFFFF

Protected Member Functions

virtual ~IAsyncSocket ()
 We never delete instances of this interface; you must manage the lifetime of the class that implements it.

Member Typedef Documentation

typedef unsigned long DataLength [inherited]


Constructor & Destructor Documentation

virtual ~IAsyncSocket (  )  [protected, virtual]

We never delete instances of this interface; you must manage the lifetime of the class that implements it.


Member Function Documentation

virtual bool TryRead ( JetByteTools::IO::IBuffer *  pBuffer  )  [pure virtual]

virtual bool TryWrite ( const char *  pData,
DataLength  dataLength 
) [pure virtual]

Attempts to write to the connection. Returns false if the connection is closed.

virtual bool TryWrite ( const BYTE pData,
DataLength  dataLength 
) [pure virtual]

Attempts to write to the connection. Returns false if the connection is closed.

virtual bool AbortConnection ( ConnectionClosureReason  reason  )  [pure virtual]

virtual void Read ( IBuffer *  pBuffer  )  [pure virtual, inherited]

virtual void Write ( const char *  pData,
DataLength  dataLength 
) [pure virtual, inherited]

virtual void Write ( const BYTE pData,
DataLength  dataLength 
) [pure virtual, inherited]

CSmartBuffer AllocateCustomSizedBuffer ( IBuffer::BufferSize  bufferSize  )  [override, pure virtual, inherited]

Implements IAllocateBuffer.

Implemented in CNullBufferPool.

virtual CSmartBuffer AllocateCustomSizedBuffer ( IAllocateBuffer allocator,
IBuffer::BufferSize  bufferSize 
) [pure virtual, inherited]

Implemented in CNullBufferPool.

virtual void AddBufferToPool ( IBuffer &  buffer  )  [pure virtual, inherited]

Implemented in CNullBufferPool.


Member Data Documentation

JETBYTE_CONSTEXPR UserDataIndex InvalidUserDataIndex = 0xFFFF [static, inherited]


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