SGCT master (487fac4)
Simple Graphics Cluster Toolkit
Loading...
Searching...
No Matches
sgct::NetworkManager Class Reference

The network manager manages all network connections for SGCT. More...

#include <sgct/networkmanager.h>

Public Types

enum class  SyncMode { SendDataToClients = 0 , Acknowledge }
enum class  NetworkMode { Remote = 0 , LocalServer , LocalClient }

Public Member Functions

 ~NetworkManager ()
void initialize ()
void clearCallbacks ()
std::optional< std::pair< double, double > > sync (SyncMode sm) const
bool isSyncComplete () const
 Compare if the last frame and current frames are different -> data update and if send frame == recieved frame.
bool matchesAddress (std::string_view address) const
bool isComputerServer () const
 Retrieve the node id if this node is part of the cluster configuration.
bool isRunning () const
bool areAllNodesConnected () const
void transferData (const void *data, int length, int packageId) const
void transferData (const void *data, int length, int packageId, const Network &connection) const
unsigned int activeConnectionsCount () const
int connectionsCount () const
int syncConnectionsCount () const
const Network & connection (int index) const
const Network & syncConnection (int index) const

Static Public Member Functions

static NetworkManager & instance ()
static void create (NetworkMode nm, std::function< void(void *, int, int, int)> dataTransferDecode, std::function< void(bool, int)> dataTransferStatus, std::function< void(int, int)> dataTransferAcknowledge)
static void destroy ()

Static Public Attributes

static std::condition_variable cond

Detailed Description

The network manager manages all network connections for SGCT.

Member Enumeration Documentation

◆ NetworkMode

Enumerator
Remote 
LocalServer 
LocalClient 

◆ SyncMode

enum class sgct::NetworkManager::SyncMode
strong
Enumerator
SendDataToClients 
Acknowledge 

Constructor & Destructor Documentation

◆ ~NetworkManager()

sgct::NetworkManager::~NetworkManager ( )

Member Function Documentation

◆ activeConnectionsCount()

unsigned int sgct::NetworkManager::activeConnectionsCount ( ) const

◆ areAllNodesConnected()

bool sgct::NetworkManager::areAllNodesConnected ( ) const

◆ clearCallbacks()

void sgct::NetworkManager::clearCallbacks ( )

◆ connection()

const Network & sgct::NetworkManager::connection ( int index) const

◆ connectionsCount()

int sgct::NetworkManager::connectionsCount ( ) const

◆ create()

void sgct::NetworkManager::create ( NetworkMode nm,
std::function< void(void *, int, int, int)> dataTransferDecode,
std::function< void(bool, int)> dataTransferStatus,
std::function< void(int, int)> dataTransferAcknowledge )
static

◆ destroy()

void sgct::NetworkManager::destroy ( )
static

◆ initialize()

void sgct::NetworkManager::initialize ( )

◆ instance()

NetworkManager & sgct::NetworkManager::instance ( )
static

◆ isComputerServer()

bool sgct::NetworkManager::isComputerServer ( ) const

Retrieve the node id if this node is part of the cluster configuration.

◆ isRunning()

bool sgct::NetworkManager::isRunning ( ) const

◆ isSyncComplete()

bool sgct::NetworkManager::isSyncComplete ( ) const

Compare if the last frame and current frames are different -> data update and if send frame == recieved frame.

◆ matchesAddress()

bool sgct::NetworkManager::matchesAddress ( std::string_view address) const

◆ sync()

std::optional< std::pair< double, double > > sgct::NetworkManager::sync ( SyncMode sm) const
Parameters
smIf this application is server/master in cluster then set to true
Returns
The min-max pair of the looping time to all connections if data was sent to the clients. If it was the acknowledge data call or no connections are available, a nullopt is returned

◆ syncConnection()

const Network & sgct::NetworkManager::syncConnection ( int index) const

◆ syncConnectionsCount()

int sgct::NetworkManager::syncConnectionsCount ( ) const

◆ transferData() [1/2]

void sgct::NetworkManager::transferData ( const void * data,
int length,
int packageId ) const

◆ transferData() [2/2]

void sgct::NetworkManager::transferData ( const void * data,
int length,
int packageId,
const Network & connection ) const

Member Data Documentation

◆ cond

std::condition_variable sgct::NetworkManager::cond
static

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