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 256 of file C4Network2Client.cpp.

257  : pIO(pIO), pFirst(nullptr), pLocal(nullptr)
258 {
259 
260 }
C4Network2Client * pFirst
C4Network2Client * pLocal
C4Network2ClientList::~C4Network2ClientList ( )

Definition at line 262 of file C4Network2Client.cpp.

References Clear().

263 {
264  Clear();
265 }

Here is the call graph for this function:

Member Function Documentation

bool C4Network2ClientList::AllClientsReady ( ) const

Definition at line 537 of file C4Network2Client.cpp.

References C4Network2Client::getNext(), and pFirst.

Referenced by C4Network2::CheckStatusAck().

538 {
539  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
540  if (!pClient->isLocal() && pClient->isWaitedFor() && !pClient->isReady())
541  return false;
542  return true;
543 }
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 420 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().

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

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 402 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().

403 {
404  // Send a msg to all clients that are currently directly reachable.
405 
406  // lock
407  pIO->BeginBroadcast(false);
408  // select connections for broadcast
409  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
410  if (pClient->isConnected())
411  pClient->getMsgConn()->SetBroadcastTarget(true);
412  // broadcast
413  bool fSuccess = pIO->Broadcast(rPkt);
414  // unlock
415  pIO->EndBroadcast();
416  // finished
417  return fSuccess;
418 }
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 385 of file C4Network2Client.cpp.

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

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

386 {
387  // remove link to main client list
388  if (pClientList)
389  {
390  C4ClientList *poClientList = pClientList;
391  pClientList = nullptr;
392  poClientList->ClearNetwork();
393  }
394  // delete clients
395  while (pFirst)
396  {
398  }
399  pLocal = nullptr;
400 }
void DeleteClient(C4Network2Client *pClient)
C4Network2Client * pFirst
void ClearNetwork()
Definition: C4Client.cpp:262
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 310 of file C4Network2Client.cpp.

References pFirst, and C4Network2Client::pNext.

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

311 {
312  unsigned int ret(0);
313  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext) ret++;
314  return ret;
315 }
C4Network2Client * pFirst
C4Network2Client * pNext

Here is the caller graph for this function:

void C4Network2ClientList::DeleteClient ( C4Network2Client pClient)

Definition at line 363 of file C4Network2Client.cpp.

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

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

364 {
365  // close connections
366  pClient->CloseConns("removing client");
367  // remove from list
368  if (pClient == pFirst)
369  pFirst = pClient->getNext();
370  else
371  {
372  C4Network2Client *pPrev;
373  for (pPrev = pFirst; pPrev && pPrev->getNext(); pPrev = pPrev->getNext())
374  if (pPrev->getNext() == pClient)
375  break;
376  if (pPrev && pPrev->getNext() == pClient)
377  pPrev->pNext = pClient->getNext();
378  }
379  // remove auto-accept
380  pIO->RemoveAutoAccept(pClient->getCore());
381  // delete
382  delete pClient;
383 }
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 520 of file C4Network2Client.cpp.

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

Referenced by C4Network2::Execute().

521 {
522  // check interval
523  time_t t; time(&t);
524  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
525  if (!pClient->isLocal() && !pClient->isRemoved() && pClient->getNextConnAttempt() && pClient->getNextConnAttempt() <= t)
526  // attempt connect
527  pClient->DoConnectAttempt(pIO);
528 }
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 286 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().

287 {
288  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext)
289  if (SEqual(pClient->getName(), szName))
290  return pClient;
291  return nullptr;
292 }
C4Network2Client * pFirst
bool SEqual(const char *szStr1, const char *szStr2)
Definition: Standard.h:93
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 302 of file C4Network2Client.cpp.

References pFirst, and C4Network2Client::pNext.

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

Definition at line 294 of file C4Network2Client.cpp.

References pFirst, and C4Network2Client::pNext.

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

Definition at line 267 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().

268 {
269  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext)
270  if (pClient->getID() == iID)
271  return pClient;
272  return nullptr;
273 }
C4Network2Client * pFirst
C4Network2Client * pNext

Here is the caller graph for this function:

C4Network2Client * C4Network2ClientList::GetHost ( )

Definition at line 317 of file C4Network2Client.cpp.

References C4ClientIDHost, and GetClientByID().

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

318 {
320 }
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 322 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().

323 {
324  return pClient ? pClient->pNext : pFirst;
325 }
C4Network2Client * pFirst
C4Network2Client * pNext

Here is the caller graph for this function:

C4Network2Client * C4Network2ClientList::GetNextClientAfterID ( int32_t  iSmallerClientID) const

Definition at line 275 of file C4Network2Client.cpp.

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

276 {
277  // return client with smallest ID > iSmallerClientID
278  C4Network2Client *pBest = nullptr;
279  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->pNext)
280  if (pClient->getID() > iSmallerClientID)
281  if (!pBest || pBest->getID() > pClient->getID())
282  pBest = pClient;
283  return pBest;
284 }
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 474 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().

475 {
476  // find associated client
477  C4Network2Client *pClient = GetClient(pConn);
478  if (!pClient) return;
479 
480 #define GETPKT(type, name) \
481  assert(pBasePkt); const type &name = \
482  static_cast<const type &>(*pBasePkt);
483 
484  switch (cStatus)
485  {
486 
487  case PID_Addr: // address propagation
488  {
489  GETPKT(C4PacketAddr, rPkt)
490  // find client
491  pClient = GetClientByID(rPkt.getClientID());
492  if (pClient)
493  {
494  C4Network2Address addr = rPkt.getAddr();
495  // IP zero? Set to IP from where the packet came
496  if (addr.isIPNull())
497  {
498  addr.SetIP(pConn->getPeerAddr());
499  }
500  // add (no announce)
501  if (pClient->AddAddr(addr, true))
502  // new address? Try to connect
503  pClient->DoConnectAttempt(pIO);
504  }
505  }
506  break;
507 
508  }
509 
510 #undef GETPKT
511 }
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 327 of file C4Network2Client.cpp.

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

Referenced by C4Network2::InitHost().

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

Here is the call graph for this function:

Here is the caller graph for this function:

C4Network2Client * C4Network2ClientList::RegClient ( C4Client pClient)

Definition at line 336 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().

337 {
338  // security
339  if (pClient->getNetClient())
340  return pClient->getNetClient();
341  // find insert position
342  C4Network2Client *pPos = pFirst, *pLast = nullptr;
343  for (; pPos; pLast = pPos, pPos = pPos->getNext())
344  if (pPos->getID() > pClient->getID())
345  break;
346  assert(!pLast || pLast->getID() != pClient->getID());
347  // create new client
348  C4Network2Client *pNetClient = new C4Network2Client(pClient);
349  // add to list
350  pNetClient->pNext = pPos;
351  (pLast ? pLast->pNext : pFirst) = pNetClient;
352  pNetClient->pParent = this;
353  // local?
354  if (pClient->isLocal())
355  pLocal = pNetClient;
356  else
357  // set auto-accept
358  pIO->AddAutoAccept(pClient->getCore());
359  // add
360  return pNetClient;
361 }
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 530 of file C4Network2Client.cpp.

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

Referenced by C4Network2::ChangeGameStatus().

531 {
532  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
533  if (pClient->isWaitedFor())
534  pClient->SetStatus(NCS_NotReady);
535 }
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 513 of file C4Network2Client.cpp.

References C4Network2Client::getNext(), and pFirst.

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

514 {
515  // send all client addresses known
516  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
517  pClient->SendAddresses(pConn);
518 }
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 459 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().

460 {
461  // find client
462  C4Network2Client *pClient = GetClientByID(iClient);
463  if (!pClient) return false;
464  // connected? send directly
465  if (pClient->isConnected())
466  return pClient->SendMsg(rPkt);
467  // forward
468  C4PacketFwd Fwd; Fwd.SetListType(false);
469  Fwd.AddClient(iClient);
470  Fwd.SetData(rPkt);
472 }
bool SendMsgToHost(C4NetIOPacket rPkt)
C4Network2Client * GetClientByID(int32_t iID) const
bool isConnected() const
void AddClient(int32_t iClient)
Definition: C4Packet2.cpp:459
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:454
void SetData(const StdBuf &Pkt)
Definition: C4Packet2.cpp:449
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 449 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().

450 {
451  // find host
452  C4Network2Client *pHost = GetHost();
453  if (!pHost) return false;
454  // send message
455  if (!pHost->getMsgConn()) return false;
456  return pHost->SendMsg(rPkt);
457 }
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 545 of file C4Network2Client.cpp.

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

Referenced by C4Network2::DeactivateInactiveClients().

546 {
547  for (C4Network2Client *pClient = pFirst; pClient; pClient = pClient->getNext())
548  if (pClient->isActivated())
549  if (::Players.GetAtClient(pClient->getID()))
550  pClient->SetLastActivity(Game.FrameCounter);
551 }
C4Game Game
Definition: C4Globals.cpp:52
C4Network2Client * pFirst
C4Player * GetAtClient(int iClient, int iIndex=0) const
int32_t FrameCounter
Definition: C4Game.h:128
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: