PLCnext API Documentation 25.0.2.69
DataTypeEnum.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Rsc/Commons/Rsc.hpp"
9#include "Arp/Plc/Meta/Commons/DataType.hpp"
10
12{
13
14class ARP_EXPORT DataTypeEnum
15{
16public: //usings
17 using RscType = Arp::Base::Rsc::Commons::RscType;
18
19public: // construction/destruction
21 DataTypeEnum(DataType dataType);
23 DataTypeEnum(const DataTypeEnum& arg) = default;
25 DataTypeEnum(DataTypeEnum&& arg) = default;
27 DataTypeEnum& operator=(const DataTypeEnum& arg) = default;
29 ~DataTypeEnum(void) = default;
30
31public: // operators
32 operator DataType(void)const;
33 friend bool ARP_EXPORT operator==(const DataTypeEnum& lhs, const DataTypeEnum& rhs) = default;
34
35public: // setter operations
36 void SetFlags(DataType flags);
37 void ResetFlags(DataType flags);
38 void ResetIndirection();
39
40public: // getter operations
41 DataType GetValue(void)const;
42 DataType& GetValue(void);
43 bool IsSet(DataType flag)const;
44 bool IsAnySet(DataType flags)const;
45 bool IsPrimitive(void)const;
46 bool IsElementary(bool useBaseType = true)const;
47 bool IsComplex(bool useBaseType = true)const;
48 bool IsPointer(void)const;
49 bool IsReference(void)const;
50 bool IsIndirect(void)const;
51 bool IsArray(void)const;
52 bool IsEnum(void)const;
53 bool IsString(void)const;
54 bool Is8BitString()const;
55 bool IsWideString()const;
56 bool IsIecObject(void)const;
57 bool HasChilds(void)const;
58 DataTypeEnum GetBaseDataType(void)const;
59 size_t GetSize(void)const;
60 size_t GetBaseSize(void)const;
61 size_t GetDataAlignment(void)const;
62 bool IsEmpty(void)const;
63 RscType GetRscType()const;
64
65private: // fields
67};
68
69bool ARP_EXPORT operator==(const DataTypeEnum& lhs, DataType rhs);
70bool ARP_EXPORT operator==(DataType lhs, const DataTypeEnum& rhs);
71
72} // end of namespace Arp::Plc::Meta::Commons
73
75// template specialization of TaskType formatter
76template<> struct fmt::formatter<Arp::Plc::Meta::Commons::DataTypeEnum> : public fmt::ostream_formatter {};
Definition: DataTypeEnum.hpp:15
DataTypeEnum & operator=(const DataTypeEnum &arg)=default
Assignment operator.
DataTypeEnum(DataTypeEnum &&arg)=default
Move constructor.
DataTypeEnum(const DataTypeEnum &arg)=default
Copy constructor.
~DataTypeEnum(void)=default
Destructs this instance and frees all resources.
Namespace for interface types of the Meta component
bool operator==(const BitSize &lhs, const BitSize &rhs)
Equality comparison of ByteSize
Definition: BitSize.cpp:112
DataType
This enum represents the data type of a variable.
Definition: DataType.hpp:15
@ None
summary>Unspecified.
Root namespace for the PLCnext API