Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
iv::comms::ProjectSynchronization Class Reference

#include <ProjectSynchronization.hpp>

Classes

struct  Constants
 
struct  SyncStationsInfo
 

Public Member Functions

 ProjectSynchronization (const ProjectSynchronization &other)=delete
 
 ProjectSynchronization (ProjectSynchronization &&other)=delete
 
 ~ProjectSynchronization ()=default
 
ProjectSynchronizationoperator= (const ProjectSynchronization &other)=delete
 
ProjectSynchronizationoperator= (ProjectSynchronization &&other)=delete
 

Static Public Member Functions

static std::unique_ptr< iv::comms::ProjectSynchronization > & create ()
 
static bool sendProjectInfoMessage ()
 
static bool sendProjectRequestMessage (const iv::types::stationId &station)
 
static bool sendProject (const iv::types::stationId &station, iv::comms::redundancy::eProjectSyncronizationFile fileType)
 
static bool processProjectInfoMessage (const std::shared_ptr< iv::comms::redundancy::RedundancyMessageProjectInfo > &message)
 
static bool processProjectRequestMessage (const std::shared_ptr< iv::comms::redundancy::RedundancyMessageProjectRequest > &message)
 
static bool processProjectResponseMessage (const std::shared_ptr< iv::comms::redundancy::RedundancyMessageProjectResponse > &message)
 

Private Member Functions

 ProjectSynchronization ()
 

Static Private Member Functions

static bool prvSendMessage (const std::vector< std::byte > &message, const iv::model::comms::net::IpSettings &ipSettings)
 
static bool prvSendFile (std::string_view projectFolder, std::string_view filePath, iv::comms::redundancy::eProjectSyncronizationFile fileType, const iv::model::comms::net::IpSettings &ipSettings)
 

Private Attributes

std::vector< std::weak_ptr< iv::comms::ip::IPCommunicationDriver > > m_redundancyDrivers
 
std::map< iv::types::stationId, iv::model::comms::net::IpSettingsm_peerStationsIps
 
std::map< iv::types::stationId, SyncStationsInfom_stationsSyncInfo
 
iv::types::stationId m_station
 

Static Private Attributes

static std::unique_ptr< iv::comms::ProjectSynchronizationinstance {nullptr}
 

Constructor & Destructor Documentation

◆ ProjectSynchronization() [1/3]

iv::comms::ProjectSynchronization::ProjectSynchronization ( const ProjectSynchronization & other)
delete

◆ ProjectSynchronization() [2/3]

iv::comms::ProjectSynchronization::ProjectSynchronization ( ProjectSynchronization && other)
delete

◆ ~ProjectSynchronization()

iv::comms::ProjectSynchronization::~ProjectSynchronization ( )
default

◆ ProjectSynchronization() [3/3]

iv::comms::ProjectSynchronization::ProjectSynchronization ( )
private

Member Function Documentation

◆ create()

std::unique_ptr< iv::comms::ProjectSynchronization > & iv::comms::ProjectSynchronization::create ( )
static

◆ operator=() [1/2]

ProjectSynchronization & iv::comms::ProjectSynchronization::operator= ( const ProjectSynchronization & other)
delete

◆ operator=() [2/2]

ProjectSynchronization & iv::comms::ProjectSynchronization::operator= ( ProjectSynchronization && other)
delete

◆ processProjectInfoMessage()

bool iv::comms::ProjectSynchronization::processProjectInfoMessage ( const std::shared_ptr< iv::comms::redundancy::RedundancyMessageProjectInfo > & message)
static

◆ processProjectRequestMessage()

bool iv::comms::ProjectSynchronization::processProjectRequestMessage ( const std::shared_ptr< iv::comms::redundancy::RedundancyMessageProjectRequest > & message)
static

◆ processProjectResponseMessage()

bool iv::comms::ProjectSynchronization::processProjectResponseMessage ( const std::shared_ptr< iv::comms::redundancy::RedundancyMessageProjectResponse > & message)
static

◆ prvSendFile()

bool iv::comms::ProjectSynchronization::prvSendFile ( std::string_view projectFolder,
std::string_view filePath,
iv::comms::redundancy::eProjectSyncronizationFile fileType,
const iv::model::comms::net::IpSettings & ipSettings )
staticprivate

◆ prvSendMessage()

bool iv::comms::ProjectSynchronization::prvSendMessage ( const std::vector< std::byte > & message,
const iv::model::comms::net::IpSettings & ipSettings )
staticprivate

◆ sendProject()

bool iv::comms::ProjectSynchronization::sendProject ( const iv::types::stationId & station,
iv::comms::redundancy::eProjectSyncronizationFile fileType )
static

◆ sendProjectInfoMessage()

bool iv::comms::ProjectSynchronization::sendProjectInfoMessage ( )
static

◆ sendProjectRequestMessage()

bool iv::comms::ProjectSynchronization::sendProjectRequestMessage ( const iv::types::stationId & station)
static

Member Data Documentation

◆ instance

std::unique_ptr< ProjectSynchronization > iv::comms::ProjectSynchronization::instance {nullptr}
staticprivate

◆ m_peerStationsIps

std::map<iv::types::stationId, iv::model::comms::net::IpSettings> iv::comms::ProjectSynchronization::m_peerStationsIps
private

◆ m_redundancyDrivers

std::vector<std::weak_ptr<iv::comms::ip::IPCommunicationDriver> > iv::comms::ProjectSynchronization::m_redundancyDrivers
private

◆ m_station

iv::types::stationId iv::comms::ProjectSynchronization::m_station
private

◆ m_stationsSyncInfo

std::map<iv::types::stationId, SyncStationsInfo> iv::comms::ProjectSynchronization::m_stationsSyncInfo
private

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