NDS3  1.0.0
API reference manual
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
interfaceBaseImpl.h
1 /*
2  * Nominal Device Support v3 (NDS3)
3  *
4  * Copyright (c) 2015 Cosylab d.d.
5  *
6  * For more information about the license please refer to the license.txt
7  * file included in the distribution.
8  */
9 
10 #ifndef NDSINTERFACEIMPL_H
11 #define NDSINTERFACEIMPL_H
12 
13 #include <list>
14 #include <memory>
15 #include "nds3/impl/pvBaseImpl.h"
16 
17 namespace nds
18 {
19 
26 class NDS3_API InterfaceBaseImpl
27 {
28 public:
29  virtual ~InterfaceBaseImpl();
30 
41  virtual void registerPV(std::shared_ptr<PVBaseImpl> pv) = 0;
42 
48  virtual void deregisterPV(std::shared_ptr<PVBaseImpl> pv) = 0;
49 
55  virtual void registrationTerminated() = 0;
56 
57  virtual void push(const PVBaseImpl& pv, const timespec& timestamp, const std::int32_t& value) = 0;
58  virtual void push(const PVBaseImpl& pv, const timespec& timestamp, const double& value) = 0;
59  virtual void push(const PVBaseImpl& pv, const timespec& timestamp, const std::vector<std::int8_t> & value) = 0;
60  virtual void push(const PVBaseImpl& pv, const timespec& timestamp, const std::vector<std::uint8_t> & value) = 0;
61  virtual void push(const PVBaseImpl& pv, const timespec& timestamp, const std::vector<std::int32_t> & value) = 0;
62  virtual void push(const PVBaseImpl& pv, const timespec& timestamp, const std::vector<double> & value) = 0;
63  virtual void push(const PVBaseImpl& pv, const timespec& timestamp, const std::string & value) = 0;
64 };
65 
66 }
67 #endif // NDSINTERFACEIMPL_H
Base class for all the PVs.
Definition: pvBaseImpl.h:25
Represents the interface between NDS and the control system API.
Definition: interfaceBaseImpl.h:26