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

IManageStreamSocketConnectionFilters Class Reference
[Stream SocketsInterfacesFilteringProtected destructors on abstract base classes]

Inheritance diagram for IManageStreamSocketConnectionFilters:

List of all members.


Detailed Description

This interface works in conjunction with IFilterStreamSocketConnections to allow stream filters to issue new read and write events. Any filter that either can swallow data buffers (by not passing on calls to the next filter in the chain) or that generates data buffers (passing data to the next filter in the chain when that data wasn't generated by a previous layer in the chain) should always use this interface to pass data buffers to the next layer in the chain. Failure to do so will affect any buffer sequencing that may (or may not) be occurring. A filter can specify that its own sequence counter is used by requesting one from the socket allocator and then by passing the sequence id to the relevant calls. If a filter only ever injects new data into a stream then it can use the socket's own sequence counter and calls to the methods that don't take an explicit sequence id.

Public Member Functions

virtual void RequestRead (IFilterableStreamSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, IFilterStreamSocketConnections &requestingFilter)=0
 Generate a read request and pass it to the next filter in the chain.
virtual void ReadCompleted (IFilterableStreamSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, IFilterStreamSocketConnections &requestingFilter)=0
 Generate a read completion that uses the socket's sequence counter and pass it to the next filter in the chain.
virtual void ReadCompleted (SequenceId sequenceId, IFilterableStreamSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, IFilterStreamSocketConnections &requestingFilter)=0
 Generate a read completion that uses the specified sequence counter and pass it to the next filter in the chain.
virtual void RequestWrite (IFilterableStreamSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, IFilterStreamSocketConnections &requestingFilter)=0
 Generate a write request that uses the socket's sequence counter and pass it to the next filter in the chain.
virtual bool TryRequestWrite (IFilterableStreamSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, IFilterStreamSocketConnections &requestingFilter)=0
virtual void WriteCompleted (IFilterableStreamSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, IFilterStreamSocketConnections &requestingFilter)=0
 Generate a write completion.
virtual void WriteCompletionError (IFilterableStreamSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, DWORD lastError, IFilterStreamSocketConnections &requestingFilter)=0

Protected Member Functions

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

Constructor & Destructor Documentation

virtual ~IManageStreamSocketConnectionFilters (  )  [protected, virtual]

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


Member Function Documentation

virtual void RequestRead ( IFilterableStreamSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
IFilterStreamSocketConnections requestingFilter 
) [pure virtual]

Generate a read request and pass it to the next filter in the chain.

virtual void ReadCompleted ( IFilterableStreamSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
IFilterStreamSocketConnections requestingFilter 
) [pure virtual]

Generate a read completion that uses the socket's sequence counter and pass it to the next filter in the chain.

virtual void ReadCompleted ( SequenceId  sequenceId,
IFilterableStreamSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
IFilterStreamSocketConnections requestingFilter 
) [pure virtual]

Generate a read completion that uses the specified sequence counter and pass it to the next filter in the chain.

virtual void RequestWrite ( IFilterableStreamSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
IFilterStreamSocketConnections requestingFilter 
) [pure virtual]

Generate a write request that uses the socket's sequence counter and pass it to the next filter in the chain.

virtual bool TryRequestWrite ( IFilterableStreamSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
IFilterStreamSocketConnections requestingFilter 
) [pure virtual]

virtual void WriteCompleted ( IFilterableStreamSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
IFilterStreamSocketConnections requestingFilter 
) [pure virtual]

Generate a write completion.

virtual void WriteCompletionError ( IFilterableStreamSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  lastError,
IFilterStreamSocketConnections requestingFilter 
) [pure virtual]


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