PLCnext API Documentation 25.0.2.69
VariableRegistry.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Core/PimplPtr.hxx"
9#include "Arp/Plc/Meta/Commons/Io/PortDefinition.hpp"
10
12{
13
19class ARP_EXPORT VariableRegistry
20{
21public: // Impl forward declaration
22 class Impl;
23
24public: // usings
25 using Pimpl = PimplPtr<Impl>;
26
27public: // construction/destruction/assignment
28 explicit VariableRegistry(Impl&& impl);
29 VariableRegistry(const VariableRegistry& arg) = delete;
31 VariableRegistry& operator=(const VariableRegistry& arg) = delete;
34
35public: // operations
36 void AddPort(const PortDefinition& portDefintion, bool useBackgroundDomain);
37
38public: // internal operations
39 Impl& GetImpl(void);
40 const Impl& GetImpl(void)const;
41
42private: // Impl fields
43 Pimpl pimpl;
44};
45
46} // end of namespace Arp::Plc::Meta::Commons::Io
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
This class is used to define a single IO variable or a tree if IO variables
Definition: PortDefinition.hpp:36
This class is used to register IO variables
Definition: VariableRegistry.hpp:20
~VariableRegistry(void)
The default destructor.
VariableRegistry(VariableRegistry &&arg) noexcept
The default move constructor.
VariableRegistry & operator=(VariableRegistry &&arg) noexcept
The default move-assignment operator.
Namespace for interface types for IO variables