PLCnext API Documentation 23.6.0.37
ChildInfo.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
8#include "Arp/Plc/Commons/DataType.hpp"
9#include "Arp/Plc/Commons/Meta/ArrayDimensions.hpp"
10#include "Arp/Plc/Commons/Meta/TypeIdentifier.hpp"
11#include "Arp/Plc/Commons/Meta/TypeInfo.hpp"
12
13//TODO(OR): remove this
14
15namespace Arp { namespace Plc { namespace Commons { namespace Meta
16{
17
18// Not documented because it shall be removed
20class ChildInfo
21{
22public: // typedefs
23
24public: // construction/destruction
26 ChildInfo(void) = default;
28 ChildInfo(size_t offset, DataType dataType, const ArrayDimensions& dimensions = ArrayDimensions());
30 ChildInfo(size_t offset, DataType dataType, const TypeIdentifier& typeId, const ArrayDimensions& dimensions = ArrayDimensions());
31
32public: // static properties
33 static const ChildInfo Empty;
34
35public: // static operations
36 static ChildInfo Create(size_t offset, const TypeInfo& typeInfo);
37
38public: // setter/getter operations
39 bool IsEmpty(void)const;
40 size_t GetOffset(void)const;
41 DataType GetDataType(void)const;
42 const ArrayDimensions& GetArrayDimensions(void)const;
43 const TypeIdentifier& GetTypeIdentifier(void)const;
44
45public: // operations
46
47private: // methods
48
49private: // fields
50 size_t offset = static_cast<size_t>(-1);
51 DataType dataType = DataType::None;
52 ArrayDimensions dimensions;
53 TypeIdentifier typeId;
54};
55
57// inline methods of class ChildInfo
58inline bool ChildInfo::IsEmpty()const
59{
60 return this->dataType == DataType::None;
61}
62
63inline size_t ChildInfo::GetOffset()const
64{
65 return this->offset;
66}
67
68inline DataType ChildInfo::GetDataType()const
69{
70 return this->dataType;
71}
72
73inline const ArrayDimensions& ChildInfo::GetArrayDimensions()const
74{
75 return this->dimensions;
76}
77
78inline const TypeIdentifier& ChildInfo::GetTypeIdentifier()const
79{
80 return this->typeId;
81}
82
83inline ChildInfo ChildInfo::Create(size_t offset, const TypeInfo& typeInfo)
84{
85#pragma warning( push )
86#pragma warning( disable : 4996 )
87#pragma warning( disable : 4068 )
88#pragma GCC diagnostic push
89#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
90
91 return ChildInfo(offset, typeInfo.GetDataType(), typeInfo.GetTypeIdentifier(), typeInfo.GetArrayDimensions());
92
93#pragma GCC diagnostic pop
94#pragma warning( pop )
95}
96
97}}}} // end of namespace Arp::Plc::Commons::Meta
DataType
Definition: DataType.hpp:15
@ None
summary>Unspecified.
@ Empty
No sink assigned to session yet.
@ Create
Creates a new file. If the file already exists, it is overwritten.
Root namespace for the PLCnext API