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

CFilteringDatagramSocketConnectionManagerBase Class Reference

Inheritance diagram for CFilteringDatagramSocketConnectionManagerBase:
Collaboration diagram for CFilteringDatagramSocketConnectionManagerBase:

List of all members.

Public Types

typedef std::list
< IFilterDatagramSocketConnections * > 
Filters

Public Member Functions

 CFilteringDatagramSocketConnectionManagerBase (IDatagramSocketConnectionManagerCallback &callback, IDatagramSocketConnectionManagerIO &manager, JetByteTools::Core::IProvideUserData &dataProvider)
bool OnRequestRecvFrom (IDatagramSocketEx &socket, JetByteTools::IO::CSmartBuffer &buffer)
void OnRecvFromCompleted (IDatagramSocketEx &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer)
void OnRecvFromCompletionError (IDatagramSocketEx &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer, DWORD lastError)
void AddConnectionFilter (IFilterDatagramSocketConnections &filter, bool canGenerateOurOwnWrites) override
 Adds a connection filter to the connection manager. Connection filters are called in order to process calls with requests being called from "top to bottom" and completions being called from "bottom to top". For example, if filter A is added and then filter B is added and then we make a write request the data would be processed first by filter B and then by filter A (user -> B -> A -> wire). When a read completes.
JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex RequestUserDataSlot (const JetByteTools::Core::_tstring &name) override
 Request a named user data slot and get an index to use in calls to methods on IIndexedOpaqueUserData.
JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex LockUserDataSlots () override
 Prevent more user data slots from being allocated. Returns the number of user data slots that have been allocated.
void OnSocketAttached (JetByteTools::Core::IIndexedOpaqueUserData &userData)
void OnPreOutgoingConnect (Socket &socket, const IFullAddress &address, const void *pUserData, const void *pFilterData)
void OnConnectionEstablished (Socket &socket, const IAddress &address)
void OnOutgoingConnectionFailed (Socket &socket, const IAddress &address, DWORD lastError)
bool OnRequestRead (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer)
void OnReadCompleted (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer)
void OnReadCompletionError (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer, DWORD lastError)
void OnRequestWrite (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer)
void OnWriteCompleted (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer)
void OnWriteCompletionError (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer, DWORD lastError)
void OnRequestSendTo (Socket &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer)
void OnSendToCompleted (Socket &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer)
void OnSendToCompletionError (Socket &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer, DWORD lastError)
void OnConnectionReset (Socket &socket, DWORD lastError)
void OnConnectionClosed (Socket &socket, ConnectionClosureReason reason)
void OnSocketReleased (JetByteTools::Core::IIndexedOpaqueUserData &userData)
bool FilterReadRequest (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer, const IFilterDatagramSocketConnections *pStartAfter)
void FilterReadCompleted (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer, const IFilterDatagramSocketConnections *pStartAfter)
void FilterWriteRequest (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer, const IFilterDatagramSocketConnections *pStartAfter)
void FilterWriteCompleted (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer, const IFilterDatagramSocketConnections *pStartAfter)
void FilterWriteCompletionError (Socket &socket, JetByteTools::IO::CSmartBuffer &buffer, DWORD lastError, const IFilterDatagramSocketConnections *pStartAfter)
void FilterSendToRequest (Socket &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer, const IFilterDatagramSocketConnections *pStartAfter)
void FilterSendToCompleted (Socket &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer, const IFilterDatagramSocketConnections *pStartAfter)
void FilterSendToCompletionError (Socket &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer, DWORD lastError, const IFilterDatagramSocketConnections *pStartAfter)
void ReadCompleted (IFilterableDatagramSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, IFilterDatagramSocketConnections &requestingFilter) override
 Generate a read completion and pass it to the next filter in the chain.
void RequestWrite (IFilterableDatagramSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, IFilterDatagramSocketConnections &requestingFilter) override
 Generate a write request and pass it to the next filter in the chain.
void WriteCompleted (IFilterableDatagramSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, IFilterDatagramSocketConnections &requestingFilter) override
 Generate a Write completion and pass it to the next filter in the chain.
void WriteCompletionError (IFilterableDatagramSocket &socket, JetByteTools::IO::CSmartBuffer &buffer, DWORD lastError, IFilterDatagramSocketConnections &requestingFilter) override
 Generate a Write completion error and pass it to the next filter in the chain.
void RequestSendTo (IFilterableDatagramSocket &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer, IFilterDatagramSocketConnections &requestingFilter) override
 Generate a SendTo request and pass it to the next filter in the chain.
void SendToCompleted (IFilterableDatagramSocket &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer, IFilterDatagramSocketConnections &requestingFilter) override
 Generate a SendTo completion and pass it to the next filter in the chain.
void SendToCompletionError (IFilterableDatagramSocket &socket, const IAddress &address, JetByteTools::IO::CSmartBuffer &buffer, DWORD lastError, IFilterDatagramSocketConnections &requestingFilter) override
 Generate a SendTo completion error and pass it to the next filter in the chain.

Public Attributes

Filters m_filters
Callback & m_callback
IOManager & m_manager
JetByteTools::Core::IProvideUserDatam_dataProvider
bool m_hasFilterThatCanGenerateOwnWrites


Member Typedef Documentation

typedef std::list<IFilterDatagramSocketConnections *> Filters [inherited]


Constructor & Destructor Documentation


Member Function Documentation

bool OnRequestRecvFrom ( IDatagramSocketEx socket,
JetByteTools::IO::CSmartBuffer buffer 
)

void OnRecvFromCompleted ( IDatagramSocketEx socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer 
)

void OnRecvFromCompletionError ( IDatagramSocketEx socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  lastError 
)

void AddConnectionFilter ( IFilterDatagramSocketConnections filter,
bool  canGenerateOurOwnWrites 
) [inline, override, virtual, inherited]

Adds a connection filter to the connection manager. Connection filters are called in order to process calls with requests being called from "top to bottom" and completions being called from "bottom to top". For example, if filter A is added and then filter B is added and then we make a write request the data would be processed first by filter B and then by filter A (user -> B -> A -> wire). When a read completes.

(wire -> A -> B -> user).

Implements IAcceptDatagramSocketConnectionFilters.

JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex RequestUserDataSlot ( const JetByteTools::Core::_tstring name  )  [inline, override, virtual, inherited]

Request a named user data slot and get an index to use in calls to methods on IIndexedOpaqueUserData.

Implements IProvideUserData.

JetByteTools::Core::IIndexedOpaqueUserData::UserDataIndex LockUserDataSlots (  )  [inline, override, virtual, inherited]

Prevent more user data slots from being allocated. Returns the number of user data slots that have been allocated.

Implements IProvideUserData.

void OnSocketAttached ( JetByteTools::Core::IIndexedOpaqueUserData userData  )  [inline, inherited]

void OnPreOutgoingConnect ( Socket &  socket,
const IFullAddress address,
const void *  pUserData,
const void *  pFilterData 
) [inline, inherited]

void OnConnectionEstablished ( Socket &  socket,
const IAddress address 
) [inline, inherited]

void OnOutgoingConnectionFailed ( Socket &  socket,
const IAddress address,
DWORD  lastError 
) [inline, inherited]

bool OnRequestRead ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, inherited]

void OnReadCompleted ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, inherited]

void OnReadCompletionError ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  lastError 
) [inline, inherited]

void OnRequestWrite ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, inherited]

void OnWriteCompleted ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, inherited]

void OnWriteCompletionError ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  lastError 
) [inline, inherited]

void OnRequestSendTo ( Socket &  socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, inherited]

void OnSendToCompleted ( Socket &  socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer 
) [inline, inherited]

void OnSendToCompletionError ( Socket &  socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  lastError 
) [inline, inherited]

void OnConnectionReset ( Socket &  socket,
DWORD  lastError 
) [inline, inherited]

void OnConnectionClosed ( Socket &  socket,
ConnectionClosureReason  reason 
) [inline, inherited]

void OnSocketReleased ( JetByteTools::Core::IIndexedOpaqueUserData userData  )  [inline, inherited]

bool FilterReadRequest ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer,
const IFilterDatagramSocketConnections pStartAfter 
) [inline, inherited]

void FilterReadCompleted ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer,
const IFilterDatagramSocketConnections pStartAfter 
) [inline, inherited]

void FilterWriteRequest ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer,
const IFilterDatagramSocketConnections pStartAfter 
) [inline, inherited]

void FilterWriteCompleted ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer,
const IFilterDatagramSocketConnections pStartAfter 
) [inline, inherited]

void FilterWriteCompletionError ( Socket &  socket,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  lastError,
const IFilterDatagramSocketConnections pStartAfter 
) [inline, inherited]

void FilterSendToRequest ( Socket &  socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer,
const IFilterDatagramSocketConnections pStartAfter 
) [inline, inherited]

void FilterSendToCompleted ( Socket &  socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer,
const IFilterDatagramSocketConnections pStartAfter 
) [inline, inherited]

void FilterSendToCompletionError ( Socket &  socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  lastError,
const IFilterDatagramSocketConnections pStartAfter 
) [inline, inherited]

void ReadCompleted ( IFilterableDatagramSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
IFilterDatagramSocketConnections requestingFilter 
) [inline, override, virtual, inherited]

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

Implements IManageDatagramSocketConnectionFilters.

void RequestWrite ( IFilterableDatagramSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
IFilterDatagramSocketConnections requestingFilter 
) [inline, override, virtual, inherited]

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

Implements IManageDatagramSocketConnectionFilters.

void WriteCompleted ( IFilterableDatagramSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
IFilterDatagramSocketConnections requestingFilter 
) [inline, override, virtual, inherited]

Generate a Write completion and pass it to the next filter in the chain.

Implements IManageDatagramSocketConnectionFilters.

void WriteCompletionError ( IFilterableDatagramSocket socket,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  lastError,
IFilterDatagramSocketConnections requestingFilter 
) [inline, override, virtual, inherited]

Generate a Write completion error and pass it to the next filter in the chain.

Implements IManageDatagramSocketConnectionFilters.

void RequestSendTo ( IFilterableDatagramSocket socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer,
IFilterDatagramSocketConnections requestingFilter 
) [inline, override, virtual, inherited]

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

Implements IManageDatagramSocketConnectionFilters.

void SendToCompleted ( IFilterableDatagramSocket socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer,
IFilterDatagramSocketConnections requestingFilter 
) [inline, override, virtual, inherited]

Generate a SendTo completion and pass it to the next filter in the chain.

Implements IManageDatagramSocketConnectionFilters.

void SendToCompletionError ( IFilterableDatagramSocket socket,
const IAddress address,
JetByteTools::IO::CSmartBuffer buffer,
DWORD  lastError,
IFilterDatagramSocketConnections requestingFilter 
) [inline, override, virtual, inherited]

Generate a SendTo completion error and pass it to the next filter in the chain.

Implements IManageDatagramSocketConnectionFilters.


Member Data Documentation

Filters m_filters [inherited]

Callback& m_callback [inherited]

IOManager& m_manager [inherited]


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