ifw-core 6.0.0
Loading...
Searching...
No Matches
iComm.hpp
Go to the documentation of this file.
1
8 #ifndef CORE_PROTOCOL_BASE_ICOMM_HPP
9 #define CORE_PROTOCOL_BASE_ICOMM_HPP
10
11 #include <iostream>
12 #include <boost/variant.hpp>
13 #include <list>
14
17
18 #define REGISTER_COMM(T) static protocol::base::CommMaker<T> maker(#T)
19
21
22 // WARNING: the order of the type in the variant shall match
23 // the enumeration below.
24 using Variant = boost::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 >;
36
37 enum {
48 };
49
50 // struct ClientConfig {
51 // virtual std::string ToString() const {return "";};
52 // };
53
54 using PairVariant = std::pair<std::string, Variant>;
55 using ListVariant = std::list<PairVariant>;
56 using VectorVariant = std::vector<PairVariant>;
57
58 class IComm {
59 public:
60
61 virtual void Connect(const std::string& device,
62 const std::string& address) = 0;
63 virtual void Read(VectorVariant& params) = 0;
64 virtual void Write(const VectorVariant& params) = 0;
65 virtual void Rpc(const std::string& obj,
66 const std::string& proc,
67 const VectorVariant& params,
68 Variant& result) = 0;
69 virtual void Disconnect() = 0;
70 virtual void StartMonitorItem(const std::string& item) = 0;
71 virtual void StartMonitorItems(const std::vector<std::string>& item_vector) = 0;
72 virtual void StopMonitorItem(const std::string& item) = 0;
73 virtual void
77 virtual ~IComm() {};
78 };
79 }
80
81 #endif //CORE_PROTOCOL_BASE_ICOMM_HPP
82
Definition dispatcher.hpp:17
Definition iComm.hpp:58
virtual ~IComm()
Definition iComm.hpp:77
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
@ TYPE_INT
Definition iComm.hpp:39
@ TYPE_SHORT
Definition iComm.hpp:41
@ TYPE_FLOAT
Definition iComm.hpp:45
@ TYPE_STRING
Definition iComm.hpp:43
@ TYPE_BYTE
Definition iComm.hpp:47
@ TYPE_SBYTE
Definition iComm.hpp:46
@ TYPE_BOOL
Definition iComm.hpp:38
@ TYPE_USHORT
Definition iComm.hpp:44
@ TYPE_UINT
Definition iComm.hpp:40
@ TYPE_DOUBLE
Definition iComm.hpp:42
boost::variant< bool, int, unsigned int, short, double, std::string, unsigned short, float, int8_t, uint8_t > Variant
Definition iComm.hpp:24
std::list< PairVariant > ListVariant
Definition iComm.hpp:55
std::vector< PairVariant > VectorVariant
Definition iComm.hpp:56
std::pair< std::string, Variant > PairVariant
Definition iComm.hpp:54