Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
IApiCommunicationProtocol.hpp
Go to the documentation of this file.
1#ifndef IAPICOMMUNICATIONPROTOCOL_HPP
2#define IAPICOMMUNICATIONPROTOCOL_HPP
3
9
10#include <memory>
11
12namespace iv::comms::api
13{
14
16{
17public:
18 virtual ~IApiCommunicationProtocol() = default;
19
24 virtual void registerValue(const std::shared_ptr<iv::comms::api::ILoggerMessage> &message) = 0;
25
30 virtual bool sendValues() = 0;
31
37 [[nodiscard]] virtual iv::comms::api::ApiResponse getValues(const IApiQueryParamsBuilder &queryParams) const = 0;
38
44 [[nodiscard]] virtual iv::comms::api::ApiDeleteResponse
45 deleteValues(const IApiQueryParamsBuilder &queryParams) const = 0;
46
47 [[nodiscard]] iv::comms::api::ApiPingResponse ping() const;
48 [[nodiscard]] bool wipe() const;
49
50 [[nodiscard]] bool isEnabled() const;
51
52protected:
56 bool m_sendToCloud {false};
57 bool m_isEnabled {true};
58
59 std::shared_ptr<iv::model::comms::NetworkData> m_networkData;
60
61 std::weak_ptr<iv::comms::api::ApiCommunicationDriver> m_apiDriver;
62 std::weak_ptr<iv::channels::AbstractChannel> m_heartbeatChannel;
63 std::weak_ptr<iv::diamar::AppFailuresLoggerManager> m_appFailuresLoggerManager;
64
65 struct ValuesApi
66 {
67 static constexpr std::string_view pingRoute {"/ping"};
68 static constexpr std::string_view wipeRoute {"/wipe"};
69
70 struct Fields
71 {
72 static constexpr std::string_view status {"status"};
73 static constexpr std::string_view version {"version"};
74 static constexpr std::string_view name {"name"};
75 static constexpr std::string_view description {"description"};
76 };
77 };
78};
79
80}// namespace iv::comms::api
81
82#endif//IAPICOMMUNICATIONPROTOCOL_HPP
Definition IApiCommunicationProtocol.hpp:16
bool m_isEnabled
Definition IApiCommunicationProtocol.hpp:57
iv::comms::api::ApiPingResponse ping() const
Definition IApiCommunicationProtocol.cpp:7
virtual void registerValue(const std::shared_ptr< iv::comms::api::ILoggerMessage > &message)=0
Registers an API message without blocking the thread.
bool wipe() const
Definition IApiCommunicationProtocol.cpp:30
std::weak_ptr< iv::channels::AbstractChannel > m_heartbeatChannel
Definition IApiCommunicationProtocol.hpp:62
std::weak_ptr< iv::diamar::AppFailuresLoggerManager > m_appFailuresLoggerManager
Definition IApiCommunicationProtocol.hpp:63
bool m_sendToCloud
Definition IApiCommunicationProtocol.hpp:56
std::weak_ptr< iv::comms::api::ApiCommunicationDriver > m_apiDriver
Definition IApiCommunicationProtocol.hpp:61
virtual iv::comms::api::ApiResponse getValues(const IApiQueryParamsBuilder &queryParams) const =0
Get values from the API.
bool isEnabled() const
Definition IApiCommunicationProtocol.cpp:50
virtual bool sendValues()=0
Send all registered messages to the API.
virtual iv::comms::api::ApiDeleteResponse deleteValues(const IApiQueryParamsBuilder &queryParams) const =0
Delete values from the API.
std::shared_ptr< iv::model::comms::NetworkData > m_networkData
Definition IApiCommunicationProtocol.hpp:59
Definition IApiQueryParamsBuilder.hpp:13
Definition ApiCommunicationController.cpp:12
Definition structs.hpp:69
Definition structs.hpp:82
Definition structs.hpp:63
Definition IApiCommunicationProtocol.hpp:71
static constexpr std::string_view status
Definition IApiCommunicationProtocol.hpp:72
static constexpr std::string_view name
Definition IApiCommunicationProtocol.hpp:74
static constexpr std::string_view description
Definition IApiCommunicationProtocol.hpp:75
static constexpr std::string_view version
Definition IApiCommunicationProtocol.hpp:73
Definition IApiCommunicationProtocol.hpp:66
static constexpr std::string_view pingRoute
Definition IApiCommunicationProtocol.hpp:67
static constexpr std::string_view wipeRoute
Definition IApiCommunicationProtocol.hpp:68