Server Meshing
Loading...
Searching...
No Matches
NetworkSystem Class Reference

#include <NetworkSystem.h>

Inheritance diagram for NetworkSystem:
Collaboration diagram for NetworkSystem:

Public Member Functions

 NetworkSystem (NetworkMode mode)
bool Init ()
void Shutdown () override
bool GetSocketData (uint16_t &outPort, char *outIP, size_t &outIPSize) const
bool HasSocket () const
int SendToSocket (const NetworkMessage &aMessage, const SocketInfo &aReciever) const
void PumpIncoming (uint32_t nowMS)
void RegisterLogMessage (IncomingPacket &aLog, const size_t &aOffset, const char *aMessage)
IncomingHandleT< INetworkTransferGetNextIncoming () override
bool Receive (NetworkMessage &outMessage) override
bool ConnectToHub (const char *aIP, uint16_t aPort=0, bool aIsMultiCast=true) override
bool Send (const NetworkMessage &msg, uint16_t aPeerID) override
int StartListen (const char *aIP, uint16_t aPort) override
bool IsConnected () override
bool GetPeerInfo (PeerId id, PeerInfo &outInfo) const override
bool UpdatePeerName (PeerId id, std::string_view name) override
bool SetPeerAuthenticated (PeerId id, bool authenticated) override
bool UpdatePeerColor (PeerId id, const float aColor[4]) override
int RegisterForMulticastGroup (uint32_t aMulticastIP, uint32_t aInterface) override
bool UnregisterForMulticastGroup (uint32_t aMulticastIP, uint32_t aMulticastSourceIP, uint32_t aInterface) override
bool RegisterForMulticastGroup (const char *aMulticastIPStr, const char *aInterfaceStr) override
Public Member Functions inherited from INetworkTransfer
 INetworkTransfer (NetworkMode aMode)
virtual ~INetworkTransfer ()=default
virtual size_t GetIncomingCount () const
NetworkMode GetMode () const
 INetworkTransfer ()=default

Protected Member Functions

virtual int RecieveFromSocket (NetworkMessage &outMessage, SocketInfo *outSocketInfo=nullptr)
bool GetBestLocalIPv4 (char *outIP, size_t &outIPSize) const
SOCKET CreateSendSocket ()
bool CreateSocket (uint16_t aPort, bool aBindSocket, bool aIsMulticastBind=false)

Static Protected Member Functions

static int CreatePayloadPackage (const NetworkMessage &aMessage, char *outBuf, int aCapacityLimit)

Additional Inherited Members

Public Types inherited from INetworkTransfer
using Incoming = IncomingPacket
Protected Attributes inherited from INetworkTransfer
sockaddr_in myHubAddress {}
NetworkMode myMode = NetworkMode::None
std::deque< IncomingmyIncoming

Constructor & Destructor Documentation

◆ NetworkSystem()

NetworkSystem::NetworkSystem ( NetworkMode mode)
inlineexplicit
Here is the call graph for this function:

Member Function Documentation

◆ ConnectToHub()

bool NetworkSystem::ConnectToHub ( const char * aIP,
uint16_t aPort = 0,
bool aIsMultiCast = true )
overridevirtual

Implements INetworkTransfer.

Here is the call graph for this function:

◆ CreatePayloadPackage()

int NetworkSystem::CreatePayloadPackage ( const NetworkMessage & aMessage,
char * outBuf,
int aCapacityLimit )
staticprotected
Here is the call graph for this function:

◆ CreateSendSocket()

SOCKET NetworkSystem::CreateSendSocket ( )
protected

◆ CreateSocket()

bool NetworkSystem::CreateSocket ( uint16_t aPort,
bool aBindSocket,
bool aIsMulticastBind = false )
protected

◆ GetBestLocalIPv4()

bool NetworkSystem::GetBestLocalIPv4 ( char * outIP,
size_t & outIPSize ) const
protected

◆ GetNextIncoming()

IncomingHandleT< INetworkTransfer > NetworkSystem::GetNextIncoming ( )
overridevirtual

Implements INetworkTransfer.

Here is the call graph for this function:

◆ GetPeerInfo()

bool NetworkSystem::GetPeerInfo ( PeerId id,
PeerInfo & outInfo ) const
overridevirtual

Implements INetworkTransfer.

◆ GetSocketData()

bool NetworkSystem::GetSocketData ( uint16_t & outPort,
char * outIP,
size_t & outIPSize ) const
Here is the call graph for this function:

◆ HasSocket()

bool NetworkSystem::HasSocket ( ) const

◆ Init()

bool NetworkSystem::Init ( )
Here is the call graph for this function:

◆ IsConnected()

bool NetworkSystem::IsConnected ( )
overridevirtual

Implements INetworkTransfer.

◆ PumpIncoming()

void NetworkSystem::PumpIncoming ( uint32_t nowMS)
Here is the call graph for this function:

◆ Receive()

bool NetworkSystem::Receive ( NetworkMessage & outMessage)
overridevirtual

Implements INetworkTransfer.

Here is the call graph for this function:

◆ RecieveFromSocket()

int NetworkSystem::RecieveFromSocket ( NetworkMessage & outMessage,
SocketInfo * outSocketInfo = nullptr )
protectedvirtual
Here is the call graph for this function:

◆ RegisterForMulticastGroup() [1/2]

bool NetworkSystem::RegisterForMulticastGroup ( const char * aMulticastIPStr,
const char * aInterfaceStr )
overridevirtual

Implements INetworkTransfer.

Here is the call graph for this function:

◆ RegisterForMulticastGroup() [2/2]

int NetworkSystem::RegisterForMulticastGroup ( uint32_t aMulticastIP,
uint32_t aInterface )
overridevirtual

Implements INetworkTransfer.

Here is the call graph for this function:

◆ RegisterLogMessage()

void NetworkSystem::RegisterLogMessage ( IncomingPacket & aLog,
const size_t & aOffset,
const char * aMessage )

◆ Send()

bool NetworkSystem::Send ( const NetworkMessage & msg,
uint16_t aPeerID )
overridevirtual

Implements INetworkTransfer.

Here is the call graph for this function:

◆ SendToSocket()

int NetworkSystem::SendToSocket ( const NetworkMessage & aMessage,
const SocketInfo & aReciever ) const
Here is the call graph for this function:

◆ SetPeerAuthenticated()

bool NetworkSystem::SetPeerAuthenticated ( PeerId id,
bool authenticated )
overridevirtual

Implements INetworkTransfer.

◆ Shutdown()

void NetworkSystem::Shutdown ( )
overridevirtual

Implements INetworkTransfer.

◆ StartListen()

int NetworkSystem::StartListen ( const char * aIP,
uint16_t aPort )
overridevirtual

Implements INetworkTransfer.

Here is the call graph for this function:

◆ UnregisterForMulticastGroup()

bool NetworkSystem::UnregisterForMulticastGroup ( uint32_t aMulticastIP,
uint32_t aMulticastSourceIP,
uint32_t aInterface )
overridevirtual

Implements INetworkTransfer.

◆ UpdatePeerColor()

bool NetworkSystem::UpdatePeerColor ( PeerId id,
const float aColor[4] )
overridevirtual

Implements INetworkTransfer.

◆ UpdatePeerName()

bool NetworkSystem::UpdatePeerName ( PeerId id,
std::string_view name )
overridevirtual

Implements INetworkTransfer.