Orion
high-rate readout
client.hpp
Go to the documentation of this file.
1 
5 #pragma once
6 
7 #include <string>
8 #include <vector>
9 #include <functional>
10 
11 #include "itk/factory.hpp"
12 #include "opc/variant.hpp"
13 #include "opc/nodeid.hpp"
14 
15 namespace itk::opc {
16 
20 class Client {
21 public:
22 
23  struct Factory : public itk::Factory<Client> {
24  virtual Client* operator()() = 0;
25  };
26 
28  virtual ~Client() = default;
29 
33  virtual bool connect(std::string connstr) = 0;
34 
37  virtual bool disconnect() = 0;
38 
41  virtual std::vector<NodeId> get_nodes() = 0;
42 
46  virtual Variant get_value(NodeId& nodeid) = 0;
47 
52  virtual bool set_value(NodeId& nodeid, Variant value) = 0;
53 
54 }; // Client
55 
56 } // itk::opc
Templated implementation of Factory class.
Definition: factory.hpp:35
OPC Client to communicate with OPC Server.
Definition: client.hpp:20
virtual Variant get_value(NodeId &nodeid)=0
virtual std::vector< NodeId > get_nodes()=0
Get node objects available in DSC.
virtual bool connect(std::string connstr)=0
Connect to DCS using the connection string.
virtual ~Client()=default
Default destructor.
virtual bool set_value(NodeId &nodeid, Variant value)=0
virtual bool disconnect()=0
Disconnect from DCS.
OPC Client Node ID.
Definition: nodeid.hpp:20
Definition: variant.hpp:18
Factory framework.
Definition: client.hpp:23
OPC Variant class.