OpenTTD Source: NetworkClientInfo Struct Reference

OpenTTD Source 15.0-RC2

Public Member Functions | Static Public Member Functions | Data Fields
NetworkClientInfo Struct Reference

Container for all information known about a client. More...

`#include <network_base.h>`

Inheritance diagram for NetworkClientInfo:

## Public Member Functions
| NetworkClientInfo (ClientID client_id=INVALID_CLIENT_ID)
| Create a new client.
| ~NetworkClientInfo ()
| Basically a client is leaving us right now.
bool | CanJoinCompany (CompanyID company_id) const
| Returns whether the given company can be joined by this client.
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_networkclientinfo_pool >
void * | operator new (size_t size)
| Allocates space for new Titem.
void * | operator new (size_t size, Tindex index)
| Allocates space for new Titem with given index.
void * | operator new (size_t, void *ptr)
| Allocates space for new Titem at given memory address.
void | operator delete (void *p, size_t size)
| Marks Titem as free.

## Static Public Member Functions
static NetworkClientInfo * | GetByClientID (ClientID client_id)
| Return the CI given it's client-identifier.
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_networkclientinfo_pool >
static bool | CanAllocateItem (size_t n=1)
| Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function()
static bool | CleaningPool ()
| Returns current state of pool cleaning - yes or no.
static bool | IsValidID (auto index)
| Tests whether given index can be used to get valid (non-nullptr) Titem.
static Titem * | Get (auto index)
| Returns Titem with given index.
static Titem * | GetIfValid (auto index)
| Returns Titem with given index.
static size_t | GetPoolSize ()
| Returns first unused index.
static size_t | GetNumItems ()
| Returns number of valid items in the pool.
static void | PostDestructor (size_t index)
| Dummy function called after destructor of each member.
static Pool::IterateWrapper< Titem > | Iterate (size_t from=0)
| Returns an iterable ensemble of all valid Titem.

## Data Fields
ClientID | client_id = INVALID_CLIENT_ID
| Client identifier (same as ClientState->client_id)
std::string | client_name {}
| Name of the client.
std::string | public_key {}
| The public key of the client.
CompanyID | client_playas = CompanyID::Invalid()
| As which company is this client playing (CompanyID)
TimerGameEconomy::Date | join_date {}
| Gamedate the client has joined.
Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_networkclientinfo_pool >
Tindex | index
| Index of this pool item.

## Additional Inherited Members
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_networkclientinfo_pool >
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache > | Pool
| Type of the pool this item is going to be part of.

## Detailed Description

Container for all information known about a client.

Definition at line 24 of file network_base.h.

## Constructor & Destructor Documentation

## ◆ NetworkClientInfo()

NetworkClientInfo::NetworkClientInfo | ( | ClientID | client_id = `INVALID_CLIENT_ID` | ) |
| inline

Create a new client.

Parameters

  client_id | The unique identifier of the client.

Definition at line 35 of file network_base.h.

## ◆ ~NetworkClientInfo()

NetworkClientInfo::~NetworkClientInfo | ( |  | ) |

Basically a client is leaving us right now.

Definition at line 106 of file network.cpp.

References client_id, DESTTYPE_CLIENT, InvalidateWindowData(), and WC_SEND_NETWORK_MSG.

## Member Function Documentation

## ◆ CanJoinCompany()

bool NetworkClientInfo::CanJoinCompany | ( | CompanyID | company_id | ) | const

Returns whether the given company can be joined by this client.

Parameters

  company_id | The id of the company.

Returns
  `true` when this company is allowed to join, otherwise `false`.

Definition at line 131 of file network.cpp.

References CompanyProperties::allow_list, NetworkAuthorizedKeys::Contains(), Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_company_pool >::GetIfValid(), and public_key.

Referenced by NetworkCanJoinCompany().

## ◆ GetByClientID()

NetworkClientInfo * NetworkClientInfo::GetByClientID | ( | ClientID | client_id | ) |
| static

Return the CI given it's client-identifier.

Parameters

  client_id | the ClientID to search for

Returns
  return a pointer to the corresponding NetworkClientInfo struct or nullptr when not found

Definition at line 117 of file network.cpp.

References client_id, and Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_networkclientinfo_pool >::Iterate().

Referenced by CmdCompanyCtrl(), CmdGoalQuestion(), NetworkChatWindow::GetWidgetString(), NetworkClientListWindow::GetWidgetString(), NetworkAutoCleanCompanies(), NetworkCanJoinCompany(), NetworkMakeClientNameUnique(), NetworkOnGameStart(), NetworkServerChangeClientName(), NetworkServerDoMove(), NetworkServerSendChat(), NetworkUpdateClientInfo(), NetworkUpdateClientName(), NetworkClientListWindow::OnClick(), NetworkClientListWindow::OnDropdownSelect(), MainWindow::OnHotkey(), NetworkClientListWindow::RebuildList(), ServerNetworkAdminSocketHandler::Receive_ADMIN_POLL(), ClientNetworkGameSocketHandler::Receive_SERVER_CHAT(), ClientNetworkGameSocketHandler::Receive_SERVER_CLIENT_INFO(), ClientNetworkGameSocketHandler::Receive_SERVER_ERROR_QUIT(), ClientNetworkGameSocketHandler::Receive_SERVER_JOIN(), ClientNetworkGameSocketHandler::Receive_SERVER_MOVE(), ClientNetworkGameSocketHandler::Receive_SERVER_QUIT(), ServerNetworkGameSocketHandler::SendWelcome(), and NetworkClientListWindow::UpdateWidgetSize().

## Field Documentation

## ◆ client_id

ClientID NetworkClientInfo::client_id = INVALID_CLIENT_ID

Client identifier (same as ClientState->client_id)

Definition at line 25 of file network_base.h.

Referenced by CmdCompanyCtrl(), ClientButtonLine::Draw(), GetByClientID(), ClientButtonLine::GetTooltip(), NetworkServerNewCompany(), NetworkServerSendChat(), ServerNetworkGameSocketHandler::Receive_CLIENT_CHAT(), ServerNetworkGameSocketHandler::Receive_CLIENT_COMMAND(), ServerNetworkGameSocketHandler::Receive_CLIENT_SET_NAME(), ServerNetworkAdminSocketHandler::SendClientInfo(), ServerNetworkGameSocketHandler::SendClientInfo(), ServerNetworkAdminSocketHandler::SendClientUpdate(), and ~NetworkClientInfo().

## ◆ client_name

std::string NetworkClientInfo::client_name {}

Name of the client.

Definition at line 26 of file network_base.h.

Referenced by ClientButtonLine::Draw(), ServerNetworkGameSocketHandler::GetClientName(), NetworkClientListWindow::GetWidgetString(), NetworkMakeClientNameUnique(), NetworkServerChangeClientName(), NetworkServerNewCompany(), NetworkServerSendChat(), NetworkServerShowStatusToConsole(), NetworkUpdateClientName(), NetworkClientListWindow::OnClick(), ServerNetworkGameSocketHandler::Receive_CLIENT_IDENTIFY(), ServerNetworkGameSocketHandler::Receive_CLIENT_SET_NAME(), ClientNetworkGameSocketHandler::Receive_SERVER_CLIENT_INFO(), ClientNetworkGameSocketHandler::Receive_SERVER_ERROR_QUIT(), ClientNetworkGameSocketHandler::Receive_SERVER_JOIN(), ClientNetworkGameSocketHandler::Receive_SERVER_QUIT(), ServerNetworkAdminSocketHandler::SendClientInfo(), ServerNetworkGameSocketHandler::SendClientInfo(), ServerNetworkAdminSocketHandler::SendClientUpdate(), and NetworkClientListWindow::UpdateWidgetSize().

## ◆ client_playas

CompanyID NetworkClientInfo::client_playas = CompanyID::Invalid()

As which company is this client playing (CompanyID)

Definition at line 28 of file network_base.h.

Referenced by CmdCompanyCtrl(), NetworkAutoCleanCompanies(), NetworkClientPreferTeamChat(), NetworkOnGameStart(), NetworkServerDoMove(), NetworkServerNewCompany(), NetworkServerSendChat(), NetworkServerShowStatusToConsole(), NetworkUpdateClientInfo(), MainWindow::OnHotkey(), NetworkClientListWindow::RebuildList(), ServerNetworkGameSocketHandler::Receive_CLIENT_COMMAND(), ServerNetworkGameSocketHandler::Receive_CLIENT_IDENTIFY(), ClientNetworkGameSocketHandler::Receive_SERVER_CHAT(), ClientNetworkGameSocketHandler::Receive_SERVER_CLIENT_INFO(), ServerNetworkAdminSocketHandler::SendClientInfo(), ServerNetworkGameSocketHandler::SendClientInfo(), and ServerNetworkAdminSocketHandler::SendClientUpdate().

## ◆ join_date

TimerGameEconomy::Date NetworkClientInfo::join_date {}

Gamedate the client has joined.

Definition at line 29 of file network_base.h.

Referenced by ServerNetworkGameSocketHandler::Receive_CLIENT_IDENTIFY(), ServerNetworkAdminSocketHandler::SendClientInfo(), and ServerNetworkGameSocketHandler::SendWait().

## ◆ public_key

std::string NetworkClientInfo::public_key {}

The public key of the client.

Definition at line 27 of file network_base.h.

Referenced by CanJoinCompany(), NetworkServerNewCompany(), NetworkClientListWindow::RebuildList(), ServerNetworkGameSocketHandler::Receive_CLIENT_COMMAND(), ServerNetworkGameSocketHandler::Receive_CLIENT_IDENTIFY(), ClientNetworkGameSocketHandler::Receive_SERVER_CLIENT_INFO(), and ServerNetworkGameSocketHandler::SendClientInfo().

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

- src/network/network_base.h
- src/network/network.cpp