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 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.

◆ 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: