Nebula
Loading...
Searching...
No Matches
Multiplayer::BaseMultiplayerServer Class Reference

#include <basemultiplayerserver.h>

Detailed Description

Inherited by Multiplayer::StandardMultiplayerServer.

Public Member Functions

 BaseMultiplayerServer ()
 constructor
virtual ~BaseMultiplayerServer ()
 destructor
virtual bool Open ()
 open the server
virtual void Close ()
 close the server
bool IsOpen () const
 return true if server is open
void DrawNetworkDebugInfo ()
 draw imgui network debug information
void Broadcast (void *buf, int size)
 broadcast message to all clients
virtual bool OnClientIsConnecting (ClientConnection *connection)
 Called when client is trying to connect. Override and return true if the connection should be accepted.
virtual void OnClientConnected (ClientConnection *connection)
 Called when client has successfully connected to the server.
virtual void OnClientDisconnected (ClientConnection *connection)
 Called when client has disconnected from the server.
virtual void OnMessageReceived (ClientConnection *connection, Timing::Time recvTime, byte *data, size_t size)
 Called when a message has been received from a client.
virtual void OnFrame ()
 Called every "frame".
virtual void OnTick ()
 Called every tickInterval seconds, after OnFrame.
Timing::Time GetTickInterval () const
 Returns the interval between ticks, in seconds.
void SetTickInterval (Timing::Time interval)
 Sets the interval (seconds) between ticks.
void SetClientGroupPollInterval (ClientGroup group, Timing::Time msBetweenTicks)
void SyncAll ()
 Checks for connection changes, polls messages and calls OnFrame/OnTick.
void OnNetConnectionStatusChanged (SteamNetConnectionStatusChangedCallback_t *info)
 Used internally by GameNetworkingSockets at connection status changes.

Public Attributes

SizeT maxMessagesPerFrame = 1024

Protected Member Functions

void AddClientConnection (ClientConnection *connection)
 add a client connection (called by the listener thread)
void PollIncomingMessages ()
void PollConnectionChanges ()

Protected Attributes

friend ClientConnection
bool isOpen
Util::HashTable< HSteamNetConnection, ClientConnection *, 128 > clientConnections
ISteamNetworkingSockets * netInterface
HSteamListenSocket listenSock
HSteamNetPollGroup pollGroups [(int) ClientGroup::NumClientGroups]
Timing::Timer pollGroupTimers [(int) ClientGroup::NumClientGroups]
Timing::Time pollGroupIntervals [(int) ClientGroup::NumClientGroups]
Timing::Timer tickTimer
Timing::Time tickInterval

Constructor & Destructor Documentation

◆ BaseMultiplayerServer()

Multiplayer::BaseMultiplayerServer::BaseMultiplayerServer ( )

constructor

◆ ~BaseMultiplayerServer()

Multiplayer::BaseMultiplayerServer::~BaseMultiplayerServer ( )
virtual

destructor

Member Function Documentation

◆ AddClientConnection()

void Multiplayer::BaseMultiplayerServer::AddClientConnection ( ClientConnection * connection)
protected

add a client connection (called by the listener thread)

◆ Broadcast()

void Multiplayer::BaseMultiplayerServer::Broadcast ( void * buf,
int size )

broadcast message to all clients

◆ Close()

void Multiplayer::BaseMultiplayerServer::Close ( )
virtual

close the server

Reimplemented in Multiplayer::StandardMultiplayerServer.

◆ DrawNetworkDebugInfo()

void Multiplayer::BaseMultiplayerServer::DrawNetworkDebugInfo ( )

draw imgui network debug information

◆ GetTickInterval()

Timing::Time Multiplayer::BaseMultiplayerServer::GetTickInterval ( ) const
inline

Returns the interval between ticks, in seconds.

◆ IsOpen()

bool Multiplayer::BaseMultiplayerServer::IsOpen ( ) const
inline

return true if server is open

◆ OnClientConnected()

void Multiplayer::BaseMultiplayerServer::OnClientConnected ( ClientConnection * connection)
virtual

Called when client has successfully connected to the server.

Reimplemented in Multiplayer::StandardMultiplayerServer.

◆ OnClientDisconnected()

void Multiplayer::BaseMultiplayerServer::OnClientDisconnected ( ClientConnection * connection)
virtual

Called when client has disconnected from the server.

Reimplemented in Multiplayer::StandardMultiplayerServer.

◆ OnClientIsConnecting()

bool Multiplayer::BaseMultiplayerServer::OnClientIsConnecting ( ClientConnection * connection)
virtual

Called when client is trying to connect. Override and return true if the connection should be accepted.

Reimplemented in Multiplayer::StandardMultiplayerServer.

◆ OnFrame()

void Multiplayer::BaseMultiplayerServer::OnFrame ( )
virtual

Called every "frame".

Reimplemented in Multiplayer::StandardMultiplayerServer.

◆ OnMessageReceived()

void Multiplayer::BaseMultiplayerServer::OnMessageReceived ( ClientConnection * connection,
Timing::Time recvTime,
byte * data,
size_t size )
virtual

Called when a message has been received from a client.

Reimplemented in Multiplayer::StandardMultiplayerServer.

◆ OnNetConnectionStatusChanged()

void Multiplayer::BaseMultiplayerServer::OnNetConnectionStatusChanged ( SteamNetConnectionStatusChangedCallback_t * info)

Used internally by GameNetworkingSockets at connection status changes.

◆ OnTick()

void Multiplayer::BaseMultiplayerServer::OnTick ( )
virtual

Called every tickInterval seconds, after OnFrame.

Reimplemented in Multiplayer::StandardMultiplayerServer.

◆ Open()

bool Multiplayer::BaseMultiplayerServer::Open ( )
virtual

open the server

Reimplemented in Multiplayer::StandardMultiplayerServer.

◆ PollConnectionChanges()

void Multiplayer::BaseMultiplayerServer::PollConnectionChanges ( )
protected

◆ PollIncomingMessages()

void Multiplayer::BaseMultiplayerServer::PollIncomingMessages ( )
protected

◆ SetClientGroupPollInterval()

void Multiplayer::BaseMultiplayerServer::SetClientGroupPollInterval ( ClientGroup group,
Timing::Time msBetweenTicks )

◆ SetTickInterval()

void Multiplayer::BaseMultiplayerServer::SetTickInterval ( Timing::Time interval)
inline

Sets the interval (seconds) between ticks.

◆ SyncAll()

void Multiplayer::BaseMultiplayerServer::SyncAll ( )

Checks for connection changes, polls messages and calls OnFrame/OnTick.

Member Data Documentation

◆ ClientConnection

friend Multiplayer::BaseMultiplayerServer::ClientConnection
protected

◆ clientConnections

Util::HashTable<HSteamNetConnection, ClientConnection*, 128> Multiplayer::BaseMultiplayerServer::clientConnections
protected

◆ isOpen

bool Multiplayer::BaseMultiplayerServer::isOpen
protected

◆ listenSock

HSteamListenSocket Multiplayer::BaseMultiplayerServer::listenSock
protected

◆ maxMessagesPerFrame

SizeT Multiplayer::BaseMultiplayerServer::maxMessagesPerFrame = 1024

◆ netInterface

ISteamNetworkingSockets* Multiplayer::BaseMultiplayerServer::netInterface
protected

◆ pollGroupIntervals

Timing::Time Multiplayer::BaseMultiplayerServer::pollGroupIntervals[(int) ClientGroup::NumClientGroups]
protected

◆ pollGroups

HSteamNetPollGroup Multiplayer::BaseMultiplayerServer::pollGroups[(int) ClientGroup::NumClientGroups]
protected

◆ pollGroupTimers

Timing::Timer Multiplayer::BaseMultiplayerServer::pollGroupTimers[(int) ClientGroup::NumClientGroups]
protected

◆ tickInterval

Timing::Time Multiplayer::BaseMultiplayerServer::tickInterval
protected

◆ tickTimer

Timing::Timer Multiplayer::BaseMultiplayerServer::tickTimer
protected

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