8#include "Arp/System/Core/TypeDeduction.hxx"
9#include "Arp/System/Core/Enum.hxx"
13namespace Arp {
namespace System {
namespace Security
18namespace Arp {
namespace System {
namespace Rsc {
namespace Services
29class IRscSerializable;
172template<class T, bool isSerializable = std::is_base_of<IRscSerializable, T>::value>
175 size_t FieldCount = 0;
179struct StructInfo<T, true>
181 size_t FieldCount = T::GetFieldCount();
185constexpr RscType GetRscType(
void)
188 return std::is_enum<T>::value ? GetRscType<typename underlying_enum_type<T>::type>() :
198constexpr RscType GetRscType<boolean>()
204constexpr RscType GetRscType<char8>()
210constexpr RscType GetRscType<uint8>()
216constexpr RscType GetRscType<int8>()
222constexpr RscType GetRscType<uint16>()
228constexpr RscType GetRscType<int16>()
234constexpr RscType GetRscType<uint32>()
240constexpr RscType GetRscType<int32>()
246constexpr RscType GetRscType<uint64>()
252constexpr RscType GetRscType<int64>()
258constexpr RscType GetRscType<float32>()
264constexpr RscType GetRscType<float64>()
270constexpr RscType GetRscType<char*>()
276constexpr RscType GetRscType<String>()
282constexpr RscType GetRscType<DateTime>()
288constexpr RscType GetRscType<RscVersion>()
294constexpr RscType GetRscType<RscGuid>()
300constexpr RscType GetRscType<SecurityToken>()
306constexpr RscType GetRscTypeFrom(
const T& )
308 return GetRscType<T>();
312constexpr RscType GetRscTypeFrom(
const char(&)[N])
318constexpr RscType GetRscTypeFrom(
const RscString<N>&)
324constexpr RscType GetRscTypeFrom(
const SecureString<N>&)
330constexpr RscType GetRscTypeFrom(
const String&)
336constexpr RscType GetRscTypeFrom(
const DateTime&)
342constexpr RscType GetRscTypeFrom(
const RscVersion&)
348constexpr RscType GetRscTypeFrom(
const RscGuid&)
354constexpr RscType GetRscTypeFrom(
const SecurityToken&)
359constexpr bool IsPrimitiveRscType(
RscType type)
366ARP_CXX_SYMBOL_EXPORT std::ostream& operator<<(std::ostream& os,
const RscType value);
367ARP_CXX_SYMBOL_EXPORT std::istream& operator>>(std::istream& is,
RscType& value);
This class represents the version of a special SDK or Arp build.
Definition: BasicVersion.hpp:36
The class contains date and time informations.
Definition: DateTime.hpp:46
Adapter class for enums to make them loggable and parsable from e.g. XML files.
Definition: Enum.hxx:23
This class defines a base class for all enumerator implementations and some predefined enumerators as...
Definition: Enumerator.hxx:22
This is the base class of all Arp exception classes.
Definition: Exception.hpp:16
Specialized version of RscString for security context. Not implemented in this version....
Definition: SecureString.hxx:19
Definition: SecurityToken.hpp:12
std::uint8_t uint8
The Arp unsigned integer type of 1 byte size.
Definition: PrimitiveTypes.hpp:28
@ System
System components used by the System, Device, Plc or Io domains.
RscType
Data types supported by RSC.
Definition: RscType.hpp:36
@ IecTimeOfDay
summary>IEC type: LTIME_OF_DAY, LTOD [int64]
@ Version
Arp::System::Rsc::Services::RscVersion
@ Dictionary
Dictionary type. Not supported.
@ IecDateTime
summary>IEC type: LDATE_AND_TIME, LDT [int64]
@ Array
std::vector<T> or RSC enumerators
@ Object
Object type as Arp::System::Rsc::Services::RscVariant
@ Void
void or null object
@ SecurityToken
Security token needed for security services as Arp::System::Security::SecurityToken
@ Struct
struct derived by IRscSerializable
@ AnsiString
Ansi string, not supported in Rsc context
@ IecTime
summary>IEC type: LTIME [int64]
@ Guid
Universal unique ID Arp::System::Rsc::Services::RscGuid
@ IecDate
summary>IEC type: LDATE [int64]
@ Stream
Streamed type to marshal large data blobs Arp::System::Rsc::Services::RscStream/>
@ SecureString
String for security context, handled by Rsc with Arp::System::Rsc::Services::SecureString
@ Utf8String
Utf-8 string, Arp::System::Rsc::Services::RscString
@ Utf16String
Utf-16 string, not implemented in Rsc context
Root namespace for the PLCnext API