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

IAllocateSequencedStreamSockets Class Reference
[Socket allocatorsInterfacesProtected destructors on abstract base classesFiltering]

Inheritance diagram for IAllocateSequencedStreamSockets:
Collaboration diagram for IAllocateSequencedStreamSockets:

List of all members.


Detailed Description

An interface for allocating instances of IPoolableStreamSocket that support sequencing of reads and writes. Before you allocate the first socket you can request that the socket manage buffer sequencing counters for you by requesting a "sequnce id". This id can then be passed to IManageStreamSocketConnectionFilters::ReadCompleted() and IManageStreamSocketConnectionFilters::RequestWrite() calls to have the buffer sequenced using the specified sequnce id. Sockets allocated with this interface automatically support sequencing of the 'primary' byte stream.

Public Member Functions

virtual SequenceId RequestSequenceId (const JetByteTools::Core::_tstring &sequenceName)=0
 Can only be called before the first socket is allocated. Allocates a named sequence id that the socket will manage on your behalf.
virtual
IPoolableStreamSocket
AllocateSocket (IPoolableSocketManager &manager, ISocketCallback &callback, SOCKET theSocket)=0
virtual void ReleaseSocket (IPoolableSocket &socket)=0
 Returns the socket to the manager, the manager can pool sockets for later reuse.
virtual DWORD AbortMyConnections (const IPoolableSocketManager &manager, ConnectionClosureReason reason)=0
 Aborts all active sockets that are managed by the supplied manager and returns the number of active sockets that were aborted.
virtual void DumpMyConnections (const IPoolableSocketManager &manager) const =0
virtual bool ReleaseSockets ()=0
virtual
IIndexedOpaqueUserData::UserDataIndex 
RequestUserDataSlot (const _tstring &name)=0
 Request a named user data slot and get an index to use in calls to methods on IIndexedOpaqueUserData.
virtual
IIndexedOpaqueUserData::UserDataIndex 
LockUserDataSlots ()=0
 Prevent more user data slots from being allocated. Returns the number of user data slots that have been allocated.

Protected Member Functions

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

Constructor & Destructor Documentation

virtual ~IAllocateSequencedStreamSockets (  )  [protected, virtual]

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


Member Function Documentation

virtual SequenceId RequestSequenceId ( const JetByteTools::Core::_tstring sequenceName  )  [pure virtual]

Can only be called before the first socket is allocated. Allocates a named sequence id that the socket will manage on your behalf.

virtual IPoolableStreamSocket& AllocateSocket ( IPoolableSocketManager manager,
ISocketCallback callback,
SOCKET  theSocket 
) [pure virtual, inherited]

virtual DWORD AbortMyConnections ( const IPoolableSocketManager manager,
ConnectionClosureReason  reason 
) [pure virtual, inherited]


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