PLCnext API Documentation 25.6.0.37
TypeDefinition.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/DataType.hpp"
10#include "Arp/Plc/Meta/Commons/BitSize.hpp"
11#include "Arp/Plc/Meta/Commons/Io/ChildTypeDefinition.hpp"
12
13#include <vector>
14
15
17{
18
26class ARP_EXPORT TypeDefinition
27{
28public: // Impl forward declaration
29 class Impl;
30
31public: // usings
34 using Children = std::vector<ChildTypeDefinition>;
35
36public: // construction
37 TypeDefinition(const String& name, DataType dataType, const BitSize& size, const Children& children);
38
39 // canonical construction/destruction/assignment
45
46public: // setter/getter operations
47 String GetName() const;
48 DataType GetDataType() const;
49 BitSize GetSize() const;
50 const Children& GetChildren() const;
51
52public: // operations
53 void AddChild(const ChildTypeDefinition& child);
54
55public: // internal operations
56 Impl& GetImpl(void);
57 const Impl& GetImpl(void)const;
58
59private: // Impl usings
61
62private: // Impl fields
63 Pimpl pimpl;
64};
65
66} // end of namespace Arp::Plc::Meta::Commons::Io
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
This class represents a size of a variable
Definition: BitSize.hpp:16
This class is used to define one member of a structured data type for IO variables
Definition: ChildTypeDefinition.hpp:22
This class is used to define a structured data type for IO variables
Definition: TypeDefinition.hpp:27
TypeDefinition(TypeDefinition &&arg) noexcept
The default move constructor.
TypeDefinition & operator=(TypeDefinition &&arg) noexcept
The default move-assignment operator.
~TypeDefinition(void)
The default destructor.
TypeDefinition(const TypeDefinition &arg)
The default copy constructor.
TypeDefinition & operator=(const TypeDefinition &arg)
The default copy-assignment operator.
Namespace for interface types for IO variables
DataType
This enum represents the data type of a variable.
Definition: DataType.hpp:15