8 #include "Arp/Plc/Commons/Gds/StaticStringBase.hpp" 9 namespace Arp {
namespace Plc {
namespace Commons {
namespace Gds
16 template <u
int16 Capacity = 80,
class TChar =
char8>
37 uint16 GetLength(
void)
const;
38 bool IsEmpty(
void)
const;
42 String ToString(
void)
const;
46 void Assign(
const TChar* arg);
49 static uint16 GetLengthFrom(
const TChar* arg);
52 TChar data[Capacity + 1];
58 template <u
int16 N,
class TChar>
69 template <u
int16 N,
class TChar>
72 this->capacity = arg.capacity;
73 this->length = arg.length;
74 std::char_traits<TChar>::copy(this->data, reinterpret_cast<TChar*>(arg.GetData()), static_cast<size_t>(this->length) + 1);
77 template <u
int16 N,
class TChar>
80 other.capacity = this->capacity;
81 other.length = this->length;
82 std::char_traits<TChar>::copy(reinterpret_cast<TChar*>(other.GetData()), this->data, static_cast<size_t>(this->length) + 1);
85 template <u
int16 N,
class TChar>
90 this->Assign(reinterpret_cast<TChar*>(arg.GetData()));
95 template <u
int16 N,
class TChar>
99 this->Assign(reinterpret_cast<TChar*>(arg.GetData()));
103 template <u
int16 N,
class TChar>
113 template <u
int16 N,
class TChar>
120 template <u
int16 N,
class TChar>
126 template <u
int16 N,
class TChar>
129 return static_cast<uint16>(std::char_traits<TChar>::length(arg));
132 template <u
int16 N,
class TChar>
138 template <u
int16 N,
class TChar>
141 if (this->GetLength() == 0)
151 template <u
int16 N,
class TChar>
154 uint16 currentLength = this->GetLengthFrom(arg);
155 if (currentLength > this->capacity)
157 this->length = this->capacity;
161 this->length = currentLength;
163 std::memset(this->data, 0,
sizeof(this->data));
164 std::char_traits<TChar>::copy(this->data, arg, static_cast<size_t>(this->length));
167 template <u
int16 N,
class TChar>
170 std::memset(this->data, 0,
sizeof(this->data));
static uint16 AssignStaticString(char8 *pData, uint16 capacity, const String &arg)
Assigns an Arp::String to a StaticString(char8) object
~StaticString(void)=default
Destructs this instance and frees all resources.
This class represents the counterpart to the data type 'IecString', 'IecWString'. It's the C++ data t...
Definition: StaticString.hxx:17
static String ConvertStaticString(const char8 *pData)
Converts a StaticString(char8) object into an Arp::String
StaticString & operator=(const StaticString< Capacity, TChar > &arg)
Assignment operator.
StaticString(const TChar *str=nullptr)
Constructs an StaticString instance.
Definition: StaticString.hxx:59
Root namespace for the PLCnext API
std::uint16_t uint16
The Arp unsigned integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:31
This class is the base class used for 'IecString' and 'StaticString'.
Definition: StaticStringBase.hpp:16