PLCnext API Documentation  22.9.0.33
StaticStringBase.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/Plc/Commons/DataType.hpp"
9 
10 namespace Arp { namespace Plc { namespace Commons { namespace Gds
11 {
12 
17 {
18 public: // typedefs
19 
20 public: // construction/destruction
22  StaticStringBase(uint16 capacityArg = 80);
24  StaticStringBase(const StaticStringBase& arg) = default;
28  ~StaticStringBase(void) = default;
29 
30 public: // operators
31 
32 public: // static operations
33  static size_t GetMetaDataSize(void);
34 
35 public: // setter/getter operations
36  uint16 GetCapacity(void)const;
37  uint16 GetLength(void)const;
38  char8* GetData(void)const;
39  char16* GetData16(void)const;
40  ARP_DEPRECATED("Please use GetSize(DataType), this operation does not support WString")
41  size_t GetSize(void)const;
42  size_t GetSize(DataType dataType)const;
43  size_t GetSize(size_t charSize)const;
44 
45 public: // operations
46  ARP_DEPRECATED("Please use StaticString::CopyTo(StaticString& other), this operation does not support WString")
47  void CopyTo(StaticStringBase& other)const;
48 
49 protected: // static operations
55  static uint16 AssignStaticString(char8* pData, uint16 capacity, const String& arg);
56 
62  static uint16 AssignStaticString(char16* pData, uint16 capacity, const String& arg);
63 
67  static String ConvertStaticString(const char8* pData);
68 
72  static String ConvertStaticString(const char16* pData);
73 
74 protected: // fields
75  uint16 capacity;
76  uint16 length;
77 };
78 
80 // inline methods of class StaticStringBase
81 
82 inline uint16 StaticStringBase::GetCapacity(void)const
83 {
84  return this->capacity;
85 }
86 
87 inline uint16 StaticStringBase::GetLength(void)const
88 {
89  return this->length;
90 }
91 
92 }}}} // 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
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