Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cNetServerGroup Class Reference

#include <cNetServer.h>

Inheritance diagram for GrayLib::cNetServerGroup:
Gray::cStreamStats GrayLib::cNetServer GrayLib::cNetServerThread GrayLib::cNetServerUnitTest

Public Member Functions

 cNetServerGroup (cNetServer &server)
 
virtual ~cNetServerGroup ()
 
const char * get_ServerName () const
 
ITERATE_t get_ClientQty () const
 
bool RemoveClient (cNetServerConnection *pClient)
 
void MoveClientToGroup (cNetServerConnection *pClient)
 
void MoveClientToClose (cNetServerConnection *pClient)
 
- Public Member Functions inherited from Gray::cStreamStats
void Add (const cStreamStats &n)
 

Public Attributes

cNetServerm_server
 My top level cNetServer owner/parent. More...
 
cValueStatsRate< float > m_TickLatency
 How long did the last OnTickSelect and OnTickClients take ? TIMESYS_t. More...
 
- Public Attributes inherited from Gray::cStreamStats
cStreamStat m_StatOut
 
cStreamStat m_StatInp
 

Protected Member Functions

HRESULT OnClientWrite (cNetServerConnection *pClient)
 
virtual HRESULT OnClientRead (cNetServerConnection *pClient)
 
HRESULT OnTickSelect (TIMESYSD_t tWaitMax, cNetSocketSet &readfds, cNetSocketSet &writefds)
 
virtual void OnTickClients ()
 

Protected Attributes

cThreadLockArrayHash< cNetServerConnectionm_aConnections
 Collection of active clients. sorted by socket id. More...
 

Detailed Description

A collection of client connections to the server. We can assign clients to one of multiple groups/threads for processing of the client stream. Distribute server loading on multiple threads to best take advantage of multi core servers.

Constructor & Destructor Documentation

◆ cNetServerGroup()

GrayLib::cNetServerGroup::cNetServerGroup ( cNetServer server)

◆ ~cNetServerGroup()

GrayLib::cNetServerGroup::~cNetServerGroup ( )
virtual

Member Function Documentation

◆ get_ClientQty()

ITERATE_t GrayLib::cNetServerGroup::get_ClientQty ( ) const
inline

how many connected clients do i have? includes unresolved new connections.

◆ get_ServerName()

const char * GrayLib::cNetServerGroup::get_ServerName ( ) const

◆ MoveClientToClose()

void GrayLib::cNetServerGroup::MoveClientToClose ( cNetServerConnection pClient)

Move this client to the close group.

◆ MoveClientToGroup()

void GrayLib::cNetServerGroup::MoveClientToGroup ( cNetServerConnection pClient)

Move pServerConnection to this cNetServerGroup (or thread).

◆ OnClientRead()

HRESULT GrayLib::cNetServerGroup::OnClientRead ( cNetServerConnection pClient)
protectedvirtual

Data is ready for read on a client connection. FD_READ

Returns
<0 = HRESULT Number of bytes received.

Reimplemented in GrayLib::cNetServer.

◆ OnClientWrite()

HRESULT GrayLib::cNetServerGroup::OnClientWrite ( cNetServerConnection pClient)
protected

Data is ready for writing on a client connection. FD_WRITE

Returns
<0 = HRESULT Number of bytes written.

◆ OnTickClients()

void GrayLib::cNetServerGroup::OnTickClients ( )
protectedvirtual

Give the clients a periodic tick. Call this manually if using Async notifications.

Reimplemented in GrayLib::cNetServer.

◆ OnTickSelect()

HRESULT GrayLib::cNetServerGroup::OnTickSelect ( TIMESYSD_t  tWaitMax,
cNetSocketSet readfds,
cNetSocketSet writefds 
)
protected
Note
Don't call OnTickStream() or OnTickSelect() if using OnEvent() async callbacks.
be aware of FD_SETSIZE limits on use of this.

◆ RemoveClient()

bool GrayLib::cNetServerGroup::RemoveClient ( cNetServerConnection pClient)

Member Data Documentation

◆ m_aConnections

cThreadLockArrayHash<cNetServerConnection> GrayLib::cNetServerGroup::m_aConnections
protected

Collection of active clients. sorted by socket id.

◆ m_server

cNetServer& GrayLib::cNetServerGroup::m_server

My top level cNetServer owner/parent.

◆ m_TickLatency

cValueStatsRate<float> GrayLib::cNetServerGroup::m_TickLatency

How long did the last OnTickSelect and OnTickClients take ? TIMESYS_t.


The documentation for this class was generated from the following files: