8#include "Arp/System/Commons/Logging.h"
9#include "Arp/System/Nm/GenericPayload.hpp"
10#include "Arp/Base/Rsc/Commons/RscTypeDeduction.hpp"
12namespace Arp {
namespace System {
namespace Nm
15using Arp::Base::Rsc::Commons::RscType;
21 template<
typename PayloadType>
24 template<
typename PayloadType>
28 size_t GetFieldIndexBegin()
const;
29 size_t GetFieldCount()
const;
30 String GetFormatString()
const;
35 void CreatePayloadFieldsForString(
const String& str);
36 void AddStringFields(
size_t count);
37 void SetLongStringFieldValues(
const String& str);
38 static size_t GetNumberOfFieldForString(
const String& str);
39 static size_t FieldIndexToFormatStringIndex(
size_t fieldIndex);
43 const size_t fieldIndexBegin;
47template<
typename PayloadType>
48LongStringPayloadField::LongStringPayloadField(PayloadType& payloadArg,
const String& str)
49 : payload(payloadArg.payload),
50 fieldIndexBegin(payload.AddField(
RscTypeDeduction::GetFrom(fieldIndexBegin)))
52 this->CreatePayloadFieldsForString(str);
53 this->SetLongStringFieldValues(str);
56template<
typename PayloadType>
57LongStringPayloadField::LongStringPayloadField(PayloadType& payloadArg)
58 : payload(payloadArg.payload),
59 fieldIndexBegin(payload.AddField(
RscTypeDeduction::GetFrom(fieldIndexBegin)))
61 this->AddStringFields(this->GetFieldCount());
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
This class is used to deduct RSC types automatically by compilation.
Definition: RscTypeDeduction.hpp:24
Generic access to a IPayload
Definition: GenericPayload.hpp:20
Definition: LongStringPayloadField.hpp:19
Root namespace for the PLCnext API