OpenClonk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
C4Network2ClientList Class Reference

#include <C4Network2Client.h>

Collaboration diagram for C4Network2ClientList:
[legend]

Public Member Functions

 C4Network2ClientList (C4Network2IO *pIO)
 
 ~C4Network2ClientList ()
 
C4Network2ClientGetClientByID (int32_t iID) const
 
C4Network2ClientGetNextClientAfterID (int32_t iSmallerClientID) const
 
C4Network2ClientGetClient (const char *szName) const
 
C4Network2ClientGetClient (const C4ClientCore &CCore, int32_t iMaxDiffLevel=C4ClientCoreDL_IDMatch)
 
C4Network2ClientGetClient (C4Network2IOConnection *pConn) const
 
C4Network2ClientGetLocal () const
 
C4Network2ClientGetHost ()
 
C4Network2ClientGetNextClient (C4Network2Client *pClient)
 
unsigned int Count ()
 
void Init (C4ClientList *pClientList, bool fHost)
 
C4Network2ClientRegClient (C4Client *pClient)
 
void DeleteClient (C4Network2Client *pClient)
 
void Clear ()
 
bool BroadcastMsgToConnClients (const C4NetIOPacket &rPkt)
 
bool BroadcastMsgToClients (const C4NetIOPacket &rPkt)
 
bool SendMsgToHost (C4NetIOPacket rPkt)
 
bool SendMsgToClient (int32_t iClient, C4NetIOPacket &&rPkt)
 
void HandlePacket (char cStatus, const C4PacketBase *pBasePkt, C4Network2IOConnection *pConn)
 
void SendAddresses (C4Network2IOConnection *pConn)
 
void DoConnectAttempts ()
 
void ResetReady ()
 
bool AllClientsReady () const
 
void UpdateClientActivity ()
 

Protected Attributes

C4Network2IOpIO
 
C4Network2ClientpFirst
 
C4Network2ClientpLocal
 
C4ClientListpClientList
 
bool fHost
 

Detailed Description

Definition at line 139 of file C4Network2Client.h.

Constructor & Destructor Documentation

C4Network2ClientList::C4Network2ClientList ( C4Network2IO pIO)

Definition at line 259 of file C4Network2Client.cpp.

260  : pIO(pIO), pFirst(nullptr), pLocal(nullptr)
261 {
262 
263 }
C4Network2Client * pFirst
C4Network2Client * pLocal
C4Network2ClientList::~C4Network2ClientList ( )

Definition at line 265 of file C4Network2Client.cpp.

References Clear().

266 {
267  Clear();
268 }

Here is the call graph for this function:

Member Function Documentation

bool C4Network2ClientList::AllClientsReady ( ) const

Definition at line 540 of file C4Network2Client.cpp.

References C4Network2Client::getNext(), and pFirst.

Referenced by C4Network2::CheckStatusAck().

541 {
542  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
543  if (!pClient->isLocal() && pClient->isWaitedFor() && !pClient->isReady())
544  return false;
545  return true;
546 }
C4Network2Client * pFirst
C4Network2Client * getNext() const

Here is the call graph for this function:

Here is the caller graph for this function:

bool C4Network2ClientList::BroadcastMsgToClients ( const C4NetIOPacket rPkt)

Definition at line 423 of file C4Network2Client.cpp.

References C4PacketFwd::AddClient(), C4Network2IO::BeginBroadcast(), C4Network2IO::Broadcast(), C4Network2IO::EndBroadcast(), fHost, C4Network2Client::getNext(), MkC4NetIOPacket(), pFirst, PID_FwdReq, pIO, SendMsgToHost(), C4PacketFwd::SetData(), and C4PacketFwd::SetListType().

Referenced by C4GameLobby::Countdown::Abort(), C4Network2::ChangeGameStatus(), C4Network2::CheckStatusAck(), C4GameLobby::Countdown::Countdown(), C4GameControlNetwork::DoInput(), C4GameControlNetwork::ExecSyncControl(), C4Network2::LeagueEnd(), C4GameLobby::Countdown::OnSec1Timer(), and C4GameControlNetwork::SetCtrlMode().

424 {
425  // Send a msg to all clients, including clients that are not connected to
426  // this computer (will get forwarded by host).
427 
428  C4PacketFwd Fwd; Fwd.SetListType(true);
429  // lock
430  pIO->BeginBroadcast(false);
431  // select connections for broadcast
432  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
433  if (!pClient->isHost())
434  if (pClient->isConnected())
435  {
436  pClient->getMsgConn()->SetBroadcastTarget(true);
437  Fwd.AddClient(pClient->getID());
438  }
439  // broadcast
440  bool fSuccess = pIO->Broadcast(rPkt);
441  // unlock
442  pIO->EndBroadcast();
443  // clients: send forward request to host
444  if (!fHost)
445  {
446  Fwd.SetData(rPkt);
447  fSuccess &= SendMsgToHost(MkC4NetIOPacket(PID_FwdReq, Fwd));
448  }
449  return fSuccess;
450 }
bool SendMsgToHost(C4NetIOPacket rPkt)
C4Network2Client * pFirst
void AddClient(int32_t iClient)
Definition: C4Packet2.cpp:484
C4NetIOPacket MkC4NetIOPacket(char cStatus, const class C4PacketBase &Pkt, const C4NetIO::addr_t &addr=C4NetIO::addr_t())
Definition: C4PacketBase.h:40
void SetListType(bool fnNegativeList)
Definition: C4Packet2.cpp:479
bool Broadcast(const C4NetIOPacket &rPkt)
void BeginBroadcast(bool fSelectAll=false)
void EndBroadcast()
C4Network2Client * getNext() const
void SetData(const StdBuf &Pkt)
Definition: C4Packet2.cpp:474

Here is the call graph for this function:

Here is the caller graph for this function:

bool C4Network2ClientList::BroadcastMsgToConnClients ( const C4NetIOPacket rPkt)

Definition at line 405 of file C4Network2Client.cpp.

References C4Network2IO::BeginBroadcast(), C4Network2IO::Broadcast(), C4Network2IO::EndBroadcast(), C4Network2Client::getNext(), pFirst, and pIO.

Referenced by C4Network2Client::AddAddr(), C4GameControlNetwork::CheckCompleteCtrl(), C4GameControlNetwork::Init(), C4GameControlNetwork::PackCompleteCtrl(), and C4Network2Client::SendAddresses().

406 {
407  // Send a msg to all clients that are currently directly reachable.
408 
409  // lock
410  pIO->BeginBroadcast(false);
411  // select connections for broadcast
412  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
413  if (pClient->isConnected())
414  pClient->getMsgConn()->SetBroadcastTarget(true);
415  // broadcast
416  bool fSuccess = pIO->Broadcast(rPkt);
417  // unlock
418  pIO->EndBroadcast();
419  // finished
420  return fSuccess;
421 }
C4Network2Client * pFirst
bool Broadcast(const C4NetIOPacket &rPkt)
void BeginBroadcast(bool fSelectAll=false)
void EndBroadcast()
C4Network2Client * getNext() const

Here is the call graph for this function:

Here is the caller graph for this function:

void C4Network2ClientList::Clear ( )

Definition at line 388 of file C4Network2Client.cpp.

References C4ClientList::ClearNetwork(), DeleteClient(), pClientList, pFirst, and pLocal.

Referenced by C4Network2::Clear(), C4ClientList::ClearNetwork(), C4ClientList::InitNetwork(), and ~C4Network2ClientList().

389 {
390  // remove link to main client list
391  if (pClientList)
392  {
393  C4ClientList *poClientList = pClientList;
394  pClientList = nullptr;
395  poClientList->ClearNetwork();
396  }
397  // delete clients
398  while (pFirst)
399  {
401  }
402  pLocal = nullptr;
403 }
void DeleteClient(C4Network2Client *pClient)
C4Network2Client * pFirst
void ClearNetwork()
Definition: C4Client.cpp:279
C4Network2Client * pLocal
C4ClientList * pClientList

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int C4Network2ClientList::Count ( )

Definition at line 313 of file C4Network2Client.cpp.

References pFirst, and C4Network2Client::pNext.

Referenced by C4Network2::OnClientDisconnect(), and C4GameLobby::Countdown::OnSec1Timer().

314 {
315  unsigned int ret(0);
316  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext) ret++;
317  return ret;
318 }
C4Network2Client * pFirst
C4Network2Client * pNext

Here is the caller graph for this function:

void C4Network2ClientList::DeleteClient ( C4Network2Client pClient)

Definition at line 366 of file C4Network2Client.cpp.

References C4Network2Client::CloseConns(), C4Network2Client::getCore(), C4Network2Client::getNext(), pFirst, pIO, C4Network2Client::pNext, and C4Network2IO::RemoveAutoAccept().

Referenced by Clear(), and C4ClientList::Remove().

367 {
368  // close connections
369  pClient->CloseConns("removing client");
370  // remove from list
371  if (pClient == pFirst)
372  pFirst = pClient->getNext();
373  else
374  {
375  C4Network2Client *pPrev;
376  for (pPrev = pFirst; pPrev && pPrev->getNext(); pPrev = pPrev->getNext())
377  if (pPrev->getNext() == pClient)
378  break;
379  if (pPrev && pPrev->getNext() == pClient)
380  pPrev->pNext = pClient->getNext();
381  }
382  // remove auto-accept
383  pIO->RemoveAutoAccept(pClient->getCore());
384  // delete
385  delete pClient;
386 }
C4Network2Client * pFirst
const C4ClientCore & getCore() const
C4Network2Client * getNext() const
void RemoveAutoAccept(const C4ClientCore &CCore)
C4Network2Client * pNext
void CloseConns(const char *szMsg)

Here is the call graph for this function:

Here is the caller graph for this function:

void C4Network2ClientList::DoConnectAttempts ( )

Definition at line 523 of file C4Network2Client.cpp.

References C4Network2Client::getNext(), pFirst, and pIO.

Referenced by C4Network2::Execute().

524 {
525  // check interval
526  time_t t; time(&t);
527  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
528  if (!pClient->isLocal() && !pClient->isRemoved() && pClient->getNextConnAttempt() && pClient->getNextConnAttempt() <= t)
529  // attempt connect
530  pClient->DoConnectAttempt(pIO);
531 }
C4Network2Client * pFirst
C4Network2Client * getNext() const

Here is the call graph for this function:

Here is the caller graph for this function:

C4Network2Client * C4Network2ClientList::GetClient ( const char *  szName) const

Definition at line 289 of file C4Network2Client.cpp.

References pFirst, C4Network2Client::pNext, and SEqual().

Referenced by C4Network2::HandleConn(), C4Network2::HandleLobbyPacket(), C4Network2Players::HandlePacket(), HandlePacket(), C4Network2::HandlePacket(), C4Network2::Join(), and C4Network2::OnDisconn().

290 {
291  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext)
292  if (SEqual(pClient->getName(), szName))
293  return pClient;
294  return nullptr;
295 }
C4Network2Client * pFirst
bool SEqual(const char *szStr1, const char *szStr2)
Definition: Standard.h:97
C4Network2Client * pNext

Here is the call graph for this function:

Here is the caller graph for this function:

C4Network2Client * C4Network2ClientList::GetClient ( const C4ClientCore CCore,
int32_t  iMaxDiffLevel = C4ClientCoreDL_IDMatch 
)

Definition at line 305 of file C4Network2Client.cpp.

References pFirst, and C4Network2Client::pNext.

306 {
307  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext)
308  if (pClient->getCore().getDiffLevel(CCore) <= iMaxDiffLevel)
309  return pClient;
310  return nullptr;
311 }
C4Network2Client * pFirst
C4Network2Client * pNext
C4Network2Client * C4Network2ClientList::GetClient ( C4Network2IOConnection pConn) const

Definition at line 297 of file C4Network2Client.cpp.

References pFirst, and C4Network2Client::pNext.

298 {
299  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext)
300  if (pClient->hasConn(pConn))
301  return pClient;
302  return nullptr;
303 }
C4Network2Client * pFirst
C4Network2Client * pNext
C4Network2Client * C4Network2ClientList::GetClientByID ( int32_t  iID) const

Definition at line 270 of file C4Network2Client.cpp.

References pFirst, and C4Network2Client::pNext.

Referenced by C4GameControlNetwork::CalcPerformance(), GetHost(), C4Network2::HandleLobbyPacket(), C4Network2Players::HandlePacket(), HandlePacket(), C4Network2::HandlePacket(), C4Network2::OnConnectFail(), C4Network2::OnDisconn(), and SendMsgToClient().

271 {
272  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext)
273  if (pClient->getID() == iID)
274  return pClient;
275  return nullptr;
276 }
C4Network2Client * pFirst
C4Network2Client * pNext

Here is the caller graph for this function:

C4Network2Client * C4Network2ClientList::GetHost ( )

Definition at line 320 of file C4Network2Client.cpp.

References C4ClientIDHost, and GetClientByID().

Referenced by C4Network2::HandleConn(), C4Network2::OnDisconn(), and SendMsgToHost().

321 {
323 }
C4Network2Client * GetClientByID(int32_t iID) const
const int32_t C4ClientIDHost
Definition: C4Client.h:25

Here is the call graph for this function:

Here is the caller graph for this function:

C4Network2Client* C4Network2ClientList::GetLocal ( ) const
inline

Definition at line 158 of file C4Network2Client.h.

References pLocal.

Referenced by C4Network2Client::DoConnectAttempt(), C4Network2::DrawStatus(), C4Viewport::Execute(), C4Network2::InitNetIO(), C4Network2::LeagueNotifyDisconnect(), C4Network2::OnPuncherConnect(), and C4MessageInput::ProcessCommand().

158 { return pLocal; }
C4Network2Client * pLocal

Here is the caller graph for this function:

C4Network2Client * C4Network2ClientList::GetNextClient ( C4Network2Client pClient)

Definition at line 325 of file C4Network2Client.cpp.

References pFirst, and C4Network2Client::pNext.

Referenced by C4MainMenu::ActivateHost(), C4Network2Stats::C4Network2Stats(), C4Network2::DeactivateInactiveClients(), C4Network2::DrawStatus(), C4Network2Stats::ExecuteSecond(), C4Network2::OnGameSynchronized(), C4Network2::UpdateChaseTarget(), C4Console::UpdateNetMenu(), C4GameSave::WriteDescNetworkClients(), and C4Network2Stats::~C4Network2Stats().

326 {
327  return pClient ? pClient->pNext : pFirst;
328 }
C4Network2Client * pFirst
C4Network2Client * pNext

Here is the caller graph for this function:

C4Network2Client * C4Network2ClientList::GetNextClientAfterID ( int32_t  iSmallerClientID) const

Definition at line 278 of file C4Network2Client.cpp.

References C4Network2Client::getID(), pFirst, and C4Network2Client::pNext.

279 {
280  // return client with smallest ID > iSmallerClientID
281  C4Network2Client *pBest = nullptr;
282  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext)
283  if (pClient->getID() > iSmallerClientID)
284  if (!pBest || pBest->getID() > pClient->getID())
285  pBest = pClient;
286  return pBest;
287 }
C4Network2Client * pFirst
int32_t getID() const
C4Network2Client * pNext

Here is the call graph for this function:

void C4Network2ClientList::HandlePacket ( char  cStatus,
const C4PacketBase pBasePkt,
C4Network2IOConnection pConn 
)

Definition at line 477 of file C4Network2Client.cpp.

References C4Network2Client::AddAddr(), C4Network2Client::DoConnectAttempt(), C4Network2Address::getAddr(), GetClient(), GetClientByID(), C4Network2IOConnection::getPeerAddr(), GETPKT, C4Network2Address::isIPNull(), PID_Addr, pIO, and C4Network2Address::SetIP().

Referenced by C4Network2IO::CallHandlers().

478 {
479  // find associated client
480  C4Network2Client *pClient = GetClient(pConn);
481  if (!pClient) return;
482 
483 #define GETPKT(type, name) \
484  assert(pBasePkt); const type &name = \
485  static_cast<const type &>(*pBasePkt);
486 
487  switch (cStatus)
488  {
489 
490  case PID_Addr: // address propagation
491  {
492  GETPKT(C4PacketAddr, rPkt)
493  // find client
494  pClient = GetClientByID(rPkt.getClientID());
495  if (pClient)
496  {
497  C4Network2Address addr = rPkt.getAddr();
498  // IP zero? Set to IP from where the packet came
499  if (addr.isIPNull())
500  {
501  addr.SetIP(pConn->getPeerAddr());
502  }
503  // add (no announce)
504  if (pClient->AddAddr(addr, true))
505  // new address? Try to connect
506  pClient->DoConnectAttempt(pIO);
507  }
508  }
509  break;
510 
511  }
512 
513 #undef GETPKT
514 }
C4Network2Client * GetClientByID(int32_t iID) const
C4Network2Client * GetClient(const char *szName) const
const C4NetIO::addr_t & getPeerAddr() const
Definition: C4Network2IO.h:264
bool isIPNull() const
#define GETPKT(type, name)
void SetIP(C4NetIO::addr_t ip)
const C4NetIO::addr_t & getAddr() const

Here is the call graph for this function:

Here is the caller graph for this function:

void C4Network2ClientList::Init ( C4ClientList pClientList,
bool  fHost 
)

Definition at line 330 of file C4Network2Client.cpp.

References fHost, C4ClientList::InitNetwork(), and pClientList.

Referenced by C4Network2::InitHost().

331 {
332  // save flag
333  fHost = fnHost;
334  // initialize
335  pClientList = pnClientList;
336  pClientList->InitNetwork(this);
337 }
void InitNetwork(class C4Network2ClientList *pNetClients)
Definition: C4Client.cpp:268

Here is the call graph for this function:

Here is the caller graph for this function:

C4Network2Client * C4Network2ClientList::RegClient ( C4Client pClient)

Definition at line 339 of file C4Network2Client.cpp.

References C4Network2IO::AddAutoAccept(), C4Client::getCore(), C4Client::getID(), C4Client::getNetClient(), C4Network2Client::getNext(), C4Client::isLocal(), pFirst, pIO, and pLocal.

Referenced by C4ClientList::Add(), and C4ClientList::InitNetwork().

340 {
341  // security
342  if (pClient->getNetClient())
343  return pClient->getNetClient();
344  // find insert position
345  C4Network2Client *pPos = pFirst, *pLast = nullptr;
346  for (; pPos; pLast = pPos, pPos = pPos->getNext())
347  if (pPos->getID() > pClient->getID())
348  break;
349  assert(!pLast || pLast->getID() != pClient->getID());
350  // create new client
351  C4Network2Client *pNetClient = new C4Network2Client(pClient);
352  // add to list
353  pNetClient->pNext = pPos;
354  (pLast ? pLast->pNext : pFirst) = pNetClient;
355  pNetClient->pParent = this;
356  // local?
357  if (pClient->isLocal())
358  pLocal = pNetClient;
359  else
360  // set auto-accept
361  pIO->AddAutoAccept(pClient->getCore());
362  // add
363  return pNetClient;
364 }
void AddAutoAccept(const C4ClientCore &CCore)
C4Network2Client * getNetClient() const
Definition: C4Client.h:117
C4Network2Client * pFirst
int32_t getID() const
Definition: C4Client.h:105
C4Network2Client * pLocal
const C4ClientCore & getCore() const
Definition: C4Client.h:104
C4Network2Client * getNext() const
bool isLocal() const
Definition: C4Client.h:116

Here is the call graph for this function:

Here is the caller graph for this function:

void C4Network2ClientList::ResetReady ( )

Definition at line 533 of file C4Network2Client.cpp.

References C4Network2Client::getNext(), NCS_NotReady, and pFirst.

Referenced by C4Network2::ChangeGameStatus().

534 {
535  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
536  if (pClient->isWaitedFor())
537  pClient->SetStatus(NCS_NotReady);
538 }
C4Network2Client * pFirst
C4Network2Client * getNext() const

Here is the call graph for this function:

Here is the caller graph for this function:

void C4Network2ClientList::SendAddresses ( C4Network2IOConnection pConn)

Definition at line 516 of file C4Network2Client.cpp.

References C4Network2Client::getNext(), and pFirst.

Referenced by C4Network2::HandleJoinData(), and C4Network2::SendJoinData().

517 {
518  // send all client addresses known
519  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
520  pClient->SendAddresses(pConn);
521 }
C4Network2Client * pFirst
C4Network2Client * getNext() const

Here is the call graph for this function:

Here is the caller graph for this function:

bool C4Network2ClientList::SendMsgToClient ( int32_t  iClient,
C4NetIOPacket &&  rPkt 
)

Definition at line 462 of file C4Network2Client.cpp.

References C4PacketFwd::AddClient(), GetClientByID(), C4Network2Client::isConnected(), MkC4NetIOPacket(), PID_FwdReq, C4Network2Client::SendMsg(), SendMsgToHost(), C4PacketFwd::SetData(), and C4PacketFwd::SetListType().

Referenced by C4Network2::OnDisconn().

463 {
464  // find client
465  C4Network2Client *pClient = GetClientByID(iClient);
466  if (!pClient) return false;
467  // connected? send directly
468  if (pClient->isConnected())
469  return pClient->SendMsg(rPkt);
470  // forward
471  C4PacketFwd Fwd; Fwd.SetListType(false);
472  Fwd.AddClient(iClient);
473  Fwd.SetData(rPkt);
475 }
bool SendMsgToHost(C4NetIOPacket rPkt)
C4Network2Client * GetClientByID(int32_t iID) const
bool isConnected() const
void AddClient(int32_t iClient)
Definition: C4Packet2.cpp:484
C4NetIOPacket MkC4NetIOPacket(char cStatus, const class C4PacketBase &Pkt, const C4NetIO::addr_t &addr=C4NetIO::addr_t())
Definition: C4PacketBase.h:40
void SetListType(bool fnNegativeList)
Definition: C4Packet2.cpp:479
void SetData(const StdBuf &Pkt)
Definition: C4Packet2.cpp:474
bool SendMsg(C4NetIOPacket rPkt) const

Here is the call graph for this function:

Here is the caller graph for this function:

bool C4Network2ClientList::SendMsgToHost ( C4NetIOPacket  rPkt)

Definition at line 452 of file C4Network2Client.cpp.

References GetHost(), C4Network2Client::getMsgConn(), and C4Network2Client::SendMsg().

Referenced by BroadcastMsgToClients(), C4GameControlNetwork::CheckCompleteCtrl(), C4Network2::CheckStatusReached(), C4GameControlNetwork::DoInput(), C4Network2Players::JoinLocalPlayer(), C4Network2::RequestActivate(), C4Network2Players::RequestPlayerInfoUpdate(), and SendMsgToClient().

453 {
454  // find host
455  C4Network2Client *pHost = GetHost();
456  if (!pHost) return false;
457  // send message
458  if (!pHost->getMsgConn()) return false;
459  return pHost->SendMsg(rPkt);
460 }
C4Network2IOConnection * getMsgConn() const
C4Network2Client * GetHost()
bool SendMsg(C4NetIOPacket rPkt) const

Here is the call graph for this function:

Here is the caller graph for this function:

void C4Network2ClientList::UpdateClientActivity ( )

Definition at line 548 of file C4Network2Client.cpp.

References C4Game::FrameCounter, Game, C4PlayerList::GetAtClient(), C4Network2Client::getNext(), pFirst, and Players.

Referenced by C4Network2::DeactivateInactiveClients().

549 {
550  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
551  if (pClient->isActivated())
552  if (::Players.GetAtClient(pClient->getID()))
553  pClient->SetLastActivity(Game.FrameCounter);
554 }
C4Game Game
Definition: C4Globals.cpp:52
C4Network2Client * pFirst
C4Player * GetAtClient(int iClient, int iIndex=0) const
int32_t FrameCounter
Definition: C4Game.h:130
C4PlayerList Players
C4Network2Client * getNext() const

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

bool C4Network2ClientList::fHost
protected

Definition at line 150 of file C4Network2Client.h.

Referenced by BroadcastMsgToClients(), and Init().

C4ClientList* C4Network2ClientList::pClientList
protected

Definition at line 149 of file C4Network2Client.h.

Referenced by Clear(), and Init().

C4Network2IO* C4Network2ClientList::pIO
protected
C4Network2Client* C4Network2ClientList::pLocal
protected

Definition at line 148 of file C4Network2Client.h.

Referenced by Clear(), GetLocal(), and RegClient().


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