PLCnext API Documentation 25.6.0.37
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#include "Arp/Plc/Meta/Commons/Io/TypeDefinition.hpp"
11
13{
14
20class ARP_EXPORT VariableRegistry
21{
22public: // Impl forward declaration
23 class Impl;
24
25public: // usings
26 using Pimpl = PimplPtr<Impl>;
27
28public: // construction/destruction/assignment
29 explicit VariableRegistry(Impl&& impl);
30 VariableRegistry(const VariableRegistry& arg) = delete;
32 VariableRegistry& operator=(const VariableRegistry& arg) = delete;
35
36public: // operations
37 void AddPort(const PortDefinition& portDefintion, bool useBackgroundDomain);
38 void AddType(const TypeDefinition& typeDefinition, bool useBackgroundDomain);
39
40public: // internal operations
41 Impl& GetImpl(void);
42 const Impl& GetImpl(void)const;
43
44private: // Impl fields
45 Pimpl pimpl;
46};
47
48} // 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:30
This class is used to define a structured data type for IO variables
Definition: TypeDefinition.hpp:27
This class is used to register IO variables
Definition: VariableRegistry.hpp:21
~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