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

CFlowControlStreamSocketConnectionFilter Class Reference
[Filtering]

Inheritance diagram for CFlowControlStreamSocketConnectionFilter:
Collaboration diagram for CFlowControlStreamSocketConnectionFilter:

List of all members.


Detailed Description

A connection filter that will manage the flow of data on a connection so as to prevent uncontrolled resource usage if there is more data to send than the connection can manage. The filter monitors the rate at which writes that are issues on the connection are completing. If the rate is slower than the rate at which new writes are being issued on the connection then the filter begins to buffer the data in a list and will send it when the connection has capacity. If the list exceeds a predefined maximum amount of buffered data then the filter will either begin to discard data either in a FIFO or LIFO order or it will call a callback method that you supply and give you the list to deal with.


Public Types

typedef long PendingWriteCount
typedef unsigned short BufferCount
typedef unsigned short Percentage

Public Member Functions

 CFlowControlStreamSocketConnectionFilter (IAcceptStreamSocketConnectionFilters &filterManager, IAllocateSequencedStreamSockets &socketAllocator, JetByteTools::IO::IAllocateBuffers &bufferAllocator, BufferCount maxBuffers, IProcessBufferList &listProcessor, PendingWriteCount maxPendingWrites, bool consolidateQueuedWrites=false, Percentage notificationPercentageStepSize=25)
 Installs the connection filter on all connections made by the supplied connection manager.
 CFlowControlStreamSocketConnectionFilter (IMonitorStreamSocketFlowControl &monitor, IAcceptStreamSocketConnectionFilters &filterManager, IAllocateSequencedStreamSockets &socketAllocator, JetByteTools::IO::IAllocateBuffers &bufferAllocator, BufferCount maxBuffers, IProcessBufferList &listProcessor, PendingWriteCount maxPendingWrites, bool consolidateQueuedWrites=false, Percentage notificationPercentageStepSize=25)
 CFlowControlStreamSocketConnectionFilter (const CFlowControlStreamSocketConnectionFilter &rhs)
CFlowControlStreamSocketConnectionFilteroperator= (const CFlowControlStreamSocketConnectionFilter &rhs)

Classes

class  IProcessBufferList


Member Typedef Documentation

typedef long PendingWriteCount

typedef unsigned short BufferCount

typedef unsigned short Percentage


Constructor & Destructor Documentation

CFlowControlStreamSocketConnectionFilter ( IAcceptStreamSocketConnectionFilters filterManager,
IAllocateSequencedStreamSockets socketAllocator,
JetByteTools::IO::IAllocateBuffers bufferAllocator,
BufferCount  maxBuffers,
IProcessBufferList listProcessor,
PendingWriteCount  maxPendingWrites,
bool  consolidateQueuedWrites = false,
Percentage  notificationPercentageStepSize = 25 
)

Installs the connection filter on all connections made by the supplied connection manager.

CFlowControlStreamSocketConnectionFilter ( IMonitorStreamSocketFlowControl monitor,
IAcceptStreamSocketConnectionFilters filterManager,
IAllocateSequencedStreamSockets socketAllocator,
JetByteTools::IO::IAllocateBuffers bufferAllocator,
BufferCount  maxBuffers,
IProcessBufferList listProcessor,
PendingWriteCount  maxPendingWrites,
bool  consolidateQueuedWrites = false,
Percentage  notificationPercentageStepSize = 25 
)


Member Function Documentation


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