PLCnext API Documentation 25.6.0.37
ChildTypeDefinition.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/ArrayDimension.hpp"
12#include "Arp/Plc/Meta/Commons/StandardAttribute.hpp"
13#include "Arp/Plc/Meta/Commons/CustomAttribute.hpp"
14
16{
17
21class ARP_EXPORT ChildTypeDefinition
22{
23public: // Impl forward declaration
24 class Impl;
25
26public: // usings
27 using ArrayDimensions = std::vector<ArrayDimension>;
28 using CustomAttributes = std::vector<CustomAttribute>;
29
30public: // construction
31 ChildTypeDefinition(const String& name, DataType dataType, const ArrayDimensions& arrayDimensions,
32 StandardAttribute standardAttribute, const CustomAttributes& customAttributes,
33 const BitSize& offset);
34
35 ChildTypeDefinition(const String& name, DataType dataType, const String& typeName,
36 const BitSize& size, const ArrayDimensions& arrayDimensions,
37 StandardAttribute standardAttribute, const CustomAttributes& customAttributes,
38 const BitSize& offset);
39
40 // canonical construction/destruction/assignment
46
47public: // setter/getter operations
48 String GetName() const;
49 DataType GetDataType() const;
50 String GetTypeName() const;
51 BitSize GetSize() const;
52 ArrayDimensions GetArrayDimensions() const;
53 StandardAttribute GetStandardAttribute() const;
54 CustomAttributes GetCustomAttributes() const;
55 BitSize GetOffset() const;
56
57public: // operations
58 void AddAttribute(const CustomAttribute& customAttribute);
59
60public: // internal operations
61 Impl& GetImpl(void);
62 const Impl& GetImpl(void)const;
63
64private: // Impl usings
66
67private: // Impl fields
68 Pimpl pimpl;
69};
70
71} // 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 represents an attribute on a variable as a key-value-pair
Definition: CustomAttribute.hpp:16
This class is used to define one member of a structured data type for IO variables
Definition: ChildTypeDefinition.hpp:22
ChildTypeDefinition(const ChildTypeDefinition &arg)
The default copy constructor.
ChildTypeDefinition & operator=(ChildTypeDefinition &&arg) noexcept
The default move-assignment operator.
ChildTypeDefinition(ChildTypeDefinition &&arg) noexcept
The default move constructor.
ChildTypeDefinition & operator=(const ChildTypeDefinition &arg)
The default copy-assignment operator.
~ChildTypeDefinition(void)
The default destructor.
Namespace for interface types for IO variables
StandardAttribute
Standard attributes to types
Definition: StandardAttribute.hpp:18
DataType
This enum represents the data type of a variable.
Definition: DataType.hpp:15