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

#include <Station.hpp>

Collaboration diagram for iv::diamar::Station:
[legend]

Classes

struct  DefaultValues
 
struct  Keys
 
struct  Sections
 
struct  Settings
 

Public Member Functions

bool load (const iv::file::xml::node &nodeStation, iv::diamar::StationNetworksLoadData &readNetworksInfo)
 
bool save (iv::file::xml::node &nodeStation, const std::vector< std::shared_ptr< iv::model::comms::NetworkData > > &stationNetworks) const
 
std::shared_ptr< Stationclone () const
 
void update (const Station &other)
 
iv::types::stationIdstationId ()
 
iv::types::unitIdstationUnitId ()
 
iv::model::eShipAreashipArea ()
 
iv::diamar::Station::SettingsstationSettings ()
 
std::set< iv::types::ipAddressgetIps () const
 
std::set< iv::types::ipAddress > & getIpsRef ()
 
void setIps (std::set< iv::types::ipAddress > ipAddresses)
 
std::weak_ptr< iv::channels::AbstractChannelgetStationHeartbeatChannel () const
 
std::weak_ptr< iv::channels::AbstractChannelgetStationFailureChannel () const
 
void setStationHeartbeatChannel (const std::shared_ptr< iv::channels::AbstractChannel > &channel)
 
void setStationFailureChannel (const std::shared_ptr< iv::channels::AbstractChannel > &channel)
 
bool isOn () const
 
void setUnitLastHeartbeats (const std::map< iv::types::unitId, std::map< iv::comms::eLomLine, iv::types::timestamp > > &lastHeartbeats)
 
std::map< iv::types::unitId, std::map< iv::comms::eLomLine, iv::types::timestamp > > getUnitsLastHeartbeats ()
 

Public Attributes

iv::types::timestamp lastHeartbeat
 

Private Member Functions

bool loadIp (const iv::file::xml::node &nodeStation)
 
bool saveIp (iv::file::xml::node &nodeStation) const
 
bool loadNetworks (const iv::file::xml::node &nodeStation, iv::diamar::StationNetworksLoadData &readNetworksInfo) const
 
bool saveNetworks (iv::file::xml::node &nodeStation, const std::vector< std::shared_ptr< iv::model::comms::NetworkData > > &stationNetworks) const
 

Private Attributes

std::weak_ptr< iv::channels::AbstractChannelm_stationHeartbeatChannel
 
std::weak_ptr< iv::channels::AbstractChannelm_stationCommFailureChannel
 
iv::types::stationId m_idStation
 
iv::types::unitId m_stationUnitId {0}
 This field is used to mantain compatibilty with slim, please do NOT use for anything other than LOMs communication.
 
std::set< iv::types::ipAddressm_ip
 
iv::model::eShipArea m_shipArea {iv::model::eShipArea::Ecr}
 
iv::diamar::Station::Settings m_stationSettings
 
std::map< iv::types::unitId, std::map< iv::comms::eLomLine, iv::types::timestamp > > unitsLastHeartbeats
 
std::mutex m_unitsLastHeartbeatsMutex
 

Member Function Documentation

◆ clone()

std::shared_ptr< iv::diamar::Station > iv::diamar::Station::clone ( ) const
nodiscard

◆ getIps()

std::set< iv::types::ipAddress > iv::diamar::Station::getIps ( ) const
nodiscard

◆ getIpsRef()

std::set< iv::types::ipAddress > & iv::diamar::Station::getIpsRef ( )

◆ getStationFailureChannel()

std::weak_ptr< iv::channels::AbstractChannel > iv::diamar::Station::getStationFailureChannel ( ) const
nodiscard

◆ getStationHeartbeatChannel()

std::weak_ptr< iv::channels::AbstractChannel > iv::diamar::Station::getStationHeartbeatChannel ( ) const
nodiscard

◆ getUnitsLastHeartbeats()

std::map< iv::types::unitId, std::map< iv::comms::eLomLine, iv::types::timestamp > > iv::diamar::Station::getUnitsLastHeartbeats ( )
nodiscard

◆ isOn()

bool iv::diamar::Station::isOn ( ) const
nodiscard

◆ load()

bool iv::diamar::Station::load ( const iv::file::xml::node & nodeStation,
iv::diamar::StationNetworksLoadData & readNetworksInfo )

◆ loadIp()

bool iv::diamar::Station::loadIp ( const iv::file::xml::node & nodeStation)
private

◆ loadNetworks()

bool iv::diamar::Station::loadNetworks ( const iv::file::xml::node & nodeStation,
iv::diamar::StationNetworksLoadData & readNetworksInfo ) const
private

◆ save()

bool iv::diamar::Station::save ( iv::file::xml::node & nodeStation,
const std::vector< std::shared_ptr< iv::model::comms::NetworkData > > & stationNetworks ) const

◆ saveIp()

bool iv::diamar::Station::saveIp ( iv::file::xml::node & nodeStation) const
private

◆ saveNetworks()

bool iv::diamar::Station::saveNetworks ( iv::file::xml::node & nodeStation,
const std::vector< std::shared_ptr< iv::model::comms::NetworkData > > & stationNetworks ) const
private

◆ setIps()

void iv::diamar::Station::setIps ( std::set< iv::types::ipAddress > ipAddresses)

◆ setStationFailureChannel()

void iv::diamar::Station::setStationFailureChannel ( const std::shared_ptr< iv::channels::AbstractChannel > & channel)

◆ setStationHeartbeatChannel()

void iv::diamar::Station::setStationHeartbeatChannel ( const std::shared_ptr< iv::channels::AbstractChannel > & channel)

◆ setUnitLastHeartbeats()

void iv::diamar::Station::setUnitLastHeartbeats ( const std::map< iv::types::unitId, std::map< iv::comms::eLomLine, iv::types::timestamp > > & lastHeartbeats)

◆ shipArea()

iv::model::eShipArea & iv::diamar::Station::shipArea ( )

◆ stationId()

iv::types::stationId & iv::diamar::Station::stationId ( )

◆ stationSettings()

Station::Settings & iv::diamar::Station::stationSettings ( )

◆ stationUnitId()

iv::types::unitId & iv::diamar::Station::stationUnitId ( )

DO NOT USE THIS FIELD FOR ANYTHING OTHER THAN LOMs COMMUNICATION

Returns

◆ update()

void iv::diamar::Station::update ( const Station & other)

Member Data Documentation

◆ lastHeartbeat

iv::types::timestamp iv::diamar::Station::lastHeartbeat

Timestamp of the last station heartbeat received from the station

◆ m_idStation

iv::types::stationId iv::diamar::Station::m_idStation
private

◆ m_ip

std::set<iv::types::ipAddress> iv::diamar::Station::m_ip
private

◆ m_shipArea

iv::model::eShipArea iv::diamar::Station::m_shipArea {iv::model::eShipArea::Ecr}
private

◆ m_stationCommFailureChannel

std::weak_ptr<iv::channels::AbstractChannel> iv::diamar::Station::m_stationCommFailureChannel
private

Station communication failure channel

◆ m_stationHeartbeatChannel

std::weak_ptr<iv::channels::AbstractChannel> iv::diamar::Station::m_stationHeartbeatChannel
private

Station heartbeat channel

◆ m_stationSettings

iv::diamar::Station::Settings iv::diamar::Station::m_stationSettings
private

◆ m_stationUnitId

iv::types::unitId iv::diamar::Station::m_stationUnitId {0}
private

This field is used to mantain compatibilty with slim, please do NOT use for anything other than LOMs communication.

◆ m_unitsLastHeartbeatsMutex

std::mutex iv::diamar::Station::m_unitsLastHeartbeatsMutex
private

◆ unitsLastHeartbeats

std::map<iv::types::unitId, std::map<iv::comms::eLomLine, iv::types::timestamp> > iv::diamar::Station::unitsLastHeartbeats
private

Timestamp of the last unit heartbeat


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