PLCnext API Documentation 25.0.2.69
FieldDefinition.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Plc/Commons/Meta/ChildTypeInfo.hpp"
9#include "Arp/Plc/Commons/Meta/TypeSystem/TypeDefinition.hpp"
10
11namespace Arp { namespace Plc { namespace Commons { namespace Meta { namespace TypeSystem
12{
13
14class TypeDefinition;
15
19{
20 friend class TypeDefinition;
21
22public: // construction/destruction
23 FieldDefinition(const char* name, size_t offset, DataType dataType, const String& typeName, size_t size, size_t alignment);
24 FieldDefinition(const char* name, size_t offset, DataType dataType, const String& typeName, size_t size, size_t alignment, StandardAttribute standardAttributes);
25 FieldDefinition(const char* name, size_t offset, DataType dataType, const String& typeName, size_t size, size_t alignment, const ArrayDimensions& dimensions, StandardAttribute standardAttributes);
26
31 ~FieldDefinition(void) noexcept;
32
33public: // setter/getter operations
35 const ChildTypeInfo& GetChildTypeInfo(void)const;
36
37private: // methods
38 void ResolveType(const String& libraryNamespace);
39
40private: // fields
41 String typeName;
42 ChildTypeInfo childTypeInfo;
43};
44
45}}}}} // end of namespace Arp::Plc::Commons::Meta::TypeSystem
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Provide array information.
Definition: ArrayDimensions.hpp:18
Provides detailed type information of a child within TypeBrowser interface.
Definition: ChildTypeInfo.hpp:27
Defines meta infomration about one field in a type
Definition: FieldDefinition.hpp:19
FieldDefinition(const char *name, size_t offset, DataType dataType, const String &typeName, size_t size, size_t alignment)
Constructs an FieldDefinition instance.
Definition: FieldDefinition.cpp:12
FieldDefinition(const FieldDefinition &arg)
Copy constructor.
ChildTypeInfo & GetChildTypeInfo(void)
Returns the provided inforation as a ChildTypeInfo object
Definition: FieldDefinition.cpp:54
FieldDefinition(FieldDefinition &&arg) noexcept
Move constructor.
FieldDefinition & operator=(const FieldDefinition &arg)
Copy assignment operator.
FieldDefinition & operator=(FieldDefinition &&arg) noexcept
Move assignment operator.
~FieldDefinition(void) noexcept
Destructs this instance and frees all resources.
Defines the meta information of a type
Definition: TypeDefinition.hpp:23
StandardAttribute
Standard attributes to types
Definition: StandardAttribute.hpp:18
Root namespace for the PLCnext API