Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol Class Referencefinal

#include <ApiDataLoggerCommunicationProtocol.hpp>

Inheritance diagram for iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol:
[legend]
Collaboration diagram for iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol:
[legend]

Classes

struct  DataProjectApi
 
struct  ValuesApi
 

Public Member Functions

 ApiDataLoggerCommunicationProtocol ()=delete
 
 ApiDataLoggerCommunicationProtocol (const std::shared_ptr< iv::comms::ICommunicationDriver > &driver, const std::shared_ptr< iv::model::comms::NetworkData > &networkData, const std::weak_ptr< iv::channels::AbstractChannel > &heartbeatChannel, const std::weak_ptr< iv::diamar::AppFailuresLoggerManager > &appFailuresLoggerManager, bool sendToCloud)
 
 ~ApiDataLoggerCommunicationProtocol () override=default
 
void registerValue (const std::shared_ptr< iv::comms::api::ILoggerMessage > &message) override
 Registers an API message without blocking the thread.
 
bool sendValues () override
 Send all registered messages to the API.
 
iv::comms::api::ApiResponse getValues (const IApiQueryParamsBuilder &queryParams) const override
 Get values from the API.
 
iv::comms::api::ApiDeleteResponse deleteValues (const IApiQueryParamsBuilder &queryParams) const override
 Delete values from the API.
 
bool sendUnitFile (const std::string &unitFileContent) const
 
iv::comms::api::ApiPingResponse ping () const
 
bool wipe () const
 
bool isEnabled () const
 

Protected Attributes

std::shared_ptr< iv::comms::ICommunicationDriverm_driver
 
bool m_sendToCloud {false}
 
bool m_isEnabled {true}
 
std::shared_ptr< iv::model::comms::NetworkDatam_networkData
 
std::weak_ptr< iv::comms::api::ApiCommunicationDriverm_apiDriver
 
std::weak_ptr< iv::channels::AbstractChannelm_heartbeatChannel
 
std::weak_ptr< iv::diamar::AppFailuresLoggerManagerm_appFailuresLoggerManager
 

Private Member Functions

bool isOnline () override
 
bool shouldSendValue (const std::string &channelId, const iv::comms::api::dataLogger::DataLoggerMessage &channelValue) const
 

Private Attributes

std::mutex m_channelsValuesMutex
 
std::mutex m_httpRequestMutex
 
std::map< iv::types::channelId, LoggerChannelInfom_lastSentChannelsValues
 
std::map< iv::types::channelId, iv::comms::api::dataLogger::DataLoggerMessagem_channelsValues
 

Constructor & Destructor Documentation

◆ ApiDataLoggerCommunicationProtocol() [1/2]

iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::ApiDataLoggerCommunicationProtocol ( )
delete

◆ ApiDataLoggerCommunicationProtocol() [2/2]

iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::ApiDataLoggerCommunicationProtocol ( const std::shared_ptr< iv::comms::ICommunicationDriver > & driver,
const std::shared_ptr< iv::model::comms::NetworkData > & networkData,
const std::weak_ptr< iv::channels::AbstractChannel > & heartbeatChannel,
const std::weak_ptr< iv::diamar::AppFailuresLoggerManager > & appFailuresLoggerManager,
bool sendToCloud )

◆ ~ApiDataLoggerCommunicationProtocol()

iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::~ApiDataLoggerCommunicationProtocol ( )
overridedefault

Member Function Documentation

◆ deleteValues()

iv::comms::api::ApiDeleteResponse iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::deleteValues ( const IApiQueryParamsBuilder & queryParams) const
overridevirtual

Delete values from the API.

Parameters
queryParams
Returns

Implements iv::comms::api::IApiCommunicationProtocol.

◆ getValues()

iv::comms::api::ApiResponse iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::getValues ( const IApiQueryParamsBuilder & queryParams) const
overridevirtual

Get values from the API.

Parameters
queryParams
Returns

Implements iv::comms::api::IApiCommunicationProtocol.

◆ isEnabled()

bool iv::comms::api::IApiCommunicationProtocol::isEnabled ( ) const
nodiscardinherited

◆ isOnline()

bool iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::isOnline ( )
inlinenodiscardoverrideprivatevirtual

◆ ping()

iv::comms::api::ApiPingResponse iv::comms::api::IApiCommunicationProtocol::ping ( ) const
nodiscardinherited

◆ registerValue()

void iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::registerValue ( const std::shared_ptr< iv::comms::api::ILoggerMessage > & message)
overridevirtual

Registers an API message without blocking the thread.

Parameters
message

Implements iv::comms::api::IApiCommunicationProtocol.

◆ sendUnitFile()

bool iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::sendUnitFile ( const std::string & unitFileContent) const

◆ sendValues()

bool iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::sendValues ( )
overridevirtual

Send all registered messages to the API.

Returns

Implements iv::comms::api::IApiCommunicationProtocol.

◆ shouldSendValue()

bool iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::shouldSendValue ( const std::string & channelId,
const iv::comms::api::dataLogger::DataLoggerMessage & channelValue ) const
private

◆ wipe()

bool iv::comms::api::IApiCommunicationProtocol::wipe ( ) const
nodiscardinherited

Member Data Documentation

◆ m_apiDriver

std::weak_ptr<iv::comms::api::ApiCommunicationDriver> iv::comms::api::IApiCommunicationProtocol::m_apiDriver
protectedinherited

◆ m_appFailuresLoggerManager

std::weak_ptr<iv::diamar::AppFailuresLoggerManager> iv::comms::api::IApiCommunicationProtocol::m_appFailuresLoggerManager
protectedinherited

◆ m_channelsValues

std::map<iv::types::channelId, iv::comms::api::dataLogger::DataLoggerMessage> iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::m_channelsValues
private

◆ m_channelsValuesMutex

std::mutex iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::m_channelsValuesMutex
private

◆ m_driver

std::shared_ptr<iv::comms::ICommunicationDriver> iv::comms::ICommunicationProtocol::m_driver
protectedinherited

◆ m_heartbeatChannel

std::weak_ptr<iv::channels::AbstractChannel> iv::comms::api::IApiCommunicationProtocol::m_heartbeatChannel
protectedinherited

◆ m_httpRequestMutex

std::mutex iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::m_httpRequestMutex
mutableprivate

◆ m_isEnabled

bool iv::comms::api::IApiCommunicationProtocol::m_isEnabled {true}
protectedinherited

◆ m_lastSentChannelsValues

std::map<iv::types::channelId, LoggerChannelInfo> iv::comms::api::dataLogger::ApiDataLoggerCommunicationProtocol::m_lastSentChannelsValues
private

◆ m_networkData

std::shared_ptr<iv::model::comms::NetworkData> iv::comms::api::IApiCommunicationProtocol::m_networkData
protectedinherited

◆ m_sendToCloud

bool iv::comms::api::IApiCommunicationProtocol::m_sendToCloud {false}
protectedinherited

Boolean that determines if the API should send data to the cloud on request.


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