PLCnext API Documentation 23.3.0.32
StaticStringBase.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
8#include "Arp/Plc/Commons/DataType.hpp"
9
10namespace Arp { namespace Plc { namespace Commons { namespace Gds
11{
12
17{
18public: // typedefs
19
20public: // construction/destruction
22 StaticStringBase(uint16 capacityArg = 80);
24 StaticStringBase(const StaticStringBase& arg) = default;
28 ~StaticStringBase(void) = default;
29
30public: // operators
31
32public: // static operations
33 static size_t GetMetaDataSize(void);
34
35public: // setter/getter operations
36 uint16 GetCapacity(void)const;
37 uint16 GetLength(void)const;
38 char8* GetData(void)const;
39 char16* GetData16(void)const;
41 ARP_DEPRECATED("Please use GetSize(DataType), this operation does not support WString")
42 size_t GetSize(void)const;
43 size_t GetSize(DataType dataType)const;
44 size_t GetSize(size_t charSize)const;
45
46public: // operations
48 ARP_DEPRECATED("Please use StaticString::CopyTo(StaticString& other), this operation does not support WString")
49 void CopyTo(StaticStringBase& other)const;
50
51protected: // static operations
57 static uint16 AssignStaticString(char8* pData, uint16 capacity, const String& arg);
58
64 static uint16 AssignStaticString(char16* pData, uint16 capacity, const String& arg);
65
69 static String ConvertStaticString(const char8* pData);
70
74 static String ConvertStaticString(const char16* pData);
75
76protected: // fields
77 uint16 capacity;
78 uint16 length;
79};
80
82// inline methods of class StaticStringBase
83
84inline uint16 StaticStringBase::GetCapacity(void)const
85{
86 return this->capacity;
87}
88
89inline uint16 StaticStringBase::GetLength(void)const
90{
91 return this->length;
92}
93
94}}}} // end of namespace Arp::Plc::Commons::Gds
This class is the base class used for 'IecString' and 'StaticString'.
Definition: StaticStringBase.hpp:17
StaticStringBase(const StaticStringBase &arg)=default
Copy constructor.
static uint16 AssignStaticString(char8 *pData, uint16 capacity, const String &arg)
Assigns an Arp::String to a StaticString(char8) object
void CopyTo(StaticStringBase &other) const
StaticStringBase & operator=(const StaticStringBase &arg)=default
Assignment operator.
~StaticStringBase(void)=default
Destructs this instance and frees all resources.
static String ConvertStaticString(const char8 *pData)
Converts a StaticString(char8) object into an Arp::String
StaticStringBase(uint16 capacityArg=80)
Constructs an StaticStringBase instance.
This class represents the counterpart to the data type 'IecString', 'IecWString'. It's the C++ data t...
Definition: StaticString.hxx:18
char16_t char16
The Arp character type of 2 byte size.
Definition: PrimitiveTypes.hpp:49
char char8
The Arp character type of 1 byte size.
Definition: PrimitiveTypes.hpp:47
std::uint16_t uint16
The Arp unsigned integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:31
DataType
Definition: DataType.hpp:15
Root namespace for the PLCnext API
class ARP_DEPRECATED("Use Arp::Enum<T> instead.") EnumStrings
The class implements an adapter for enums to define the string literals of the enum entries.
Definition: EnumStrings.hxx:38