ifw-core 7.0.0
 
Loading...
Searching...
No Matches
iComm.hpp
Go to the documentation of this file.
1
6
7#ifndef CORE_PROTOCOL_BASE_ICOMM_HPP
8#define CORE_PROTOCOL_BASE_ICOMM_HPP
9
10#include <iostream>
11#include <variant>
12#include <list>
13
16
17#define REGISTER_COMM(T) static protocol::base::CommMaker<T> maker(#T)
18
20{
21
22 // WARNING: the order of the type in the variant shall match
23 // the enumeration below.
24 using Variant = std::variant<
25 bool,
26 int,
27 unsigned int,
28 short,
29 double,
30 std::string,
31 unsigned short,
32 float,
33 int8_t,
34 uint8_t,
35 std::vector<bool>,
36 std::vector<int>,
37 std::vector<unsigned int>,
38 std::vector<short>,
39 std::vector<double>,
40 std::vector<float>,
41 std::vector<std::string>>;
42
43 using PairVariant = std::pair<std::string, Variant>;
44 using ListVariant = std::list<PairVariant>;
45 using VectorVariant = std::vector<PairVariant>;
46
47 class IComm
48 {
49 public:
50 virtual void Connect(const std::string &device,
51 const std::string &address) = 0;
52 virtual void Read(VectorVariant &params) = 0;
53 virtual void Write(const VectorVariant &params) = 0;
54 virtual void Rpc(const std::string &obj,
55 const std::string &proc,
56 const VectorVariant &params,
57 Variant &result) = 0;
58 virtual void Disconnect() = 0;
59 virtual void StartMonitorItem(const std::string &item) = 0;
60 virtual void StartMonitorItems(const std::vector<std::string> &item_vector) = 0;
61 virtual void StopMonitorItem(const std::string &item) = 0;
62 virtual void
66 virtual ~IComm() {};
67 };
68}
69
70#endif // CORE_PROTOCOL_BASE_ICOMM_HPP
Definition dispatcher.hpp:16
Definition iComm.hpp:48
virtual ~IComm()
Definition iComm.hpp:66
virtual void StartMonitorItem(const std::string &item)=0
virtual void Write(const VectorVariant &params)=0
virtual void Read(VectorVariant &params)=0
virtual void RegisterCB(protocol::base::Dispatcher< protocol::base::VectorVariant & > &dispatcher, protocol::base::Dispatcher<> &failure, protocol::base::Dispatcher<> &normal)=0
virtual void Connect(const std::string &device, const std::string &address)=0
virtual void StopMonitorItem(const std::string &item)=0
virtual void StartMonitorItems(const std::vector< std::string > &item_vector)=0
virtual void Rpc(const std::string &obj, const std::string &proc, const VectorVariant &params, Variant &result)=0
Definition commFactory.cpp:13
std::list< PairVariant > ListVariant
Definition iComm.hpp:44
std::vector< PairVariant > VectorVariant
Definition iComm.hpp:45
std::pair< std::string, Variant > PairVariant
Definition iComm.hpp:43
std::variant< bool, int, unsigned int, short, double, std::string, unsigned short, float, int8_t, uint8_t, std::vector< bool >, std::vector< int >, std::vector< unsigned int >, std::vector< short >, std::vector< double >, std::vector< float >, std::vector< std::string > > Variant
Definition iComm.hpp:24