PLCnext API Documentation 23.6.0.37
Classes | Typedefs | Enumerations | Functions
Arp::System::Rsc::Services Namespace Reference

Namespace for classes and interfaces for the Remote Service Call implementation More...

Classes

class  IRscAuthorizator
 
class  IRscReadEnumerator
 Interface for reading an array or an enumerator. For regular enumerators UndefinedArrayLength is used. More...
 
class  IRscSerializable
 Marshalls structure or class data types. Serialize and Deserialize have to marshal fields in the same format and the same order. More...
 
class  IRscService
 Base interface for all Rsc service interface. More...
 
class  IRscWriteEnumerator
 Interface for writing an array or an enumerator. For regular enumerators UndefinedArrayLength is used. More...
 
struct  RscArrayInformation
 Contains information to marshall an array More...
 
class  RscArrayReader
 Helper class to read an array of primtive types from an RscVariant. This class uses the array information stored in RscVariant. More...
 
class  RscArrayWriter
 Helper class to read an array of primtive types from an RscVariant. This class uses the array information stored in RscVariant. More...
 
class  RscComponentServiceImplBase
 Base class for Rsc component service implementations. Contains reference to associated component. More...
 
class  RscGuid
 
class  RscImplReadEnumerator
 Implements IRscReadEnumeratorfor the service implementations. This should only be used in the implementation. The read callbacks have to be implemented and set by the service. More...
 
class  RscImplWriteEnumerator
 Implements IRscWriteEnumerator for the service implementations. This should only be used in the implementation. The write callbacks have to be implemented and set by the service. More...
 
class  RscReadEnumerator
 Implementation of IRscReadEnumerator used on client side. More...
 
class  RscReader
 Reads data from Rsc More...
 
class  RscStream
 Enables Rsc services to marshal large data packets as stream. More...
 
class  RscStreamAdapter
 This class serves as adapter between Rsc streams and streams from Arp::System::Commons::Io, e.g. file streams. More...
 
class  RscString
 Contains a static string with string lentgh up to N characters. The string has to be null terminated. More...
 
struct  RscStructInformation
 Contains information to marshall an struct More...
 
class  RscStructReader
 Helper class to read a struct from an RscVariant. This class uses the struct information stored in RscVariant. More...
 
class  RscStructWriter
 Helper class to write a struct from an RscVariant. This class uses the struct information stored in RscVariant. More...
 
class  RscVariant
 Rsc container class for primitive data type, strings or information about arrays or structs. ArrayInformation and StructInformation are used in combination with RscArrayReader, RscArrayWriter, RscStructReader and RscStructWriter More...
 
class  RscVersion
 Specifies a version with 4 version numbers and is marshalled to .NET type System.Version. More...
 
class  RscWriteEnumerator
 Implementation of IRscWriteEnumerator used on client side. More...
 
class  RscWriter
 Writes data to Rsc. More...
 
class  SecureString
 Specialized version of RscString for security context. Not implemented in this version. Wraps only RscString More...
 
struct  StructInfo< T, true >
 

Typedefs

typedef uint16 RscHandle
 
using SecurityToken = Arp::System::Security::SecurityToken
 

Enumerations

enum class  RscChannelKind { None = 0 , Tcp = 1 , Ipc = 2 }
 
enum class  RscErrors : uint32 {
  None = 0 , CommunicationLayerMask = 0x80000000 , RemotingLayerMask = 0x40000000 , CommonServiceLayerMask = 0x20000000 ,
  ServiceLayerMask = 0x00000000 , ServerAuthenticationFailure = 0x80000001 , FatalAuthorizationFailure = 0x80000002 , InvalidProtocolVersion = 0x40000001 ,
  UnknownServiceHandle = 0x40000002 , UnknownMethodHandle = 0x40000003 , InvalidCommand = 0x40000004 , HeaderXsumError = 0x40000005 ,
  UnknownProviderHandle = 0x40000006 , ProtocolViolation = 0x40000007 , InternalRemotingError = 0x40000008 , ArrayLengthOutOfRange = 0x40000009 ,
  MaxConnectionsExceeds = 0x4000000A , AuthorizationFailure = 0x4000000B , AbortRequest = 0x40001000 , RecvTimeout = 0x40001001 ,
  RecvFailed = 0x40001002 , SendTimeout = 0x40001003 , SendFailed = 0x40001004 , UnknownObjectFormat = 0x40001005 ,
  ConnRemotelyClosed = 0x40001006 , OutOfMemory = 0x20000001 , InvalidHandle = 0x20000002 , ParameterOutOfRange = 0x20000003 ,
  InvalidServiceState = 0x20000004 , OtherMasterActive = 0x20000005 , NoProgramOnTheDevice = 0x20000006 , ExecutionError = 0x20000007 ,
  ReadOnly = 0x20000008 , InvalidEclrState = 0x20000009 , InternalError = 0x2000000A , AuthenticationFailure = 0x2000000B ,
  Exception = 0x2000000C , IpcError = 0x2000000D , NotSupportedInterface = 0x2000000E , InvalidData = 0x2000000F ,
  PrematurelyEndOfStream = 0x20000010 , ServiceProviderNameTooLong = 0x521 , ServiceNameTooLong = 0x522 , ArgumentsNotSupported = 0x523
}
 
enum class  RscStringEncoding { None = 0 , Ansi = 1 , Utf8 = 2 , Utf16 = 3 }
 Determines the encoding of a Rsc String. Values are identical to CommonRemoting::StringEncoding. More...
 
enum class  RscType : uint8 {
  None = 0xFF , End = 0 , Null = 0 , Void = 1 ,
  Bool = 2 , Char = 3 , Int8 = 4 , Uint8 = 5 ,
  Int16 = 6 , Uint16 = 7 , Int32 = 8 , Uint32 = 9 ,
  Int64 = 10 , Uint64 = 11 , Real32 = 12 , Real64 = 13 ,
  Struct = 18 , String = 19 , Utf8String = 19 , Array = 20 ,
  DateTime = 23 , Version = 24 , Guid = 25 , AnsiString = 26 ,
  Object = 28 , Utf16String = 30 , Stream = 34 , Enumerator = 35 ,
  SecureString = 36 , Enum = 37 , Dictionary = 38 , SecurityToken = 39 ,
  Exception = 40 , IecTime = 41 , IecTime64 = 42 , IecDate = 43 ,
  IecDate64 = 44 , IecDateTime = 45 , IecDateTime64 = 46 , IecTimeOfDay = 47 ,
  IecTimeOfDay64 = 48
}
 Data types supported by RSC. More...
 

Functions

ARP_CXX_SYMBOL_EXPORT std::ostream & operator<< (std::ostream &os, RscChannelKind value)
 
ARP_CXX_SYMBOL_EXPORT std::istream & operator>> (std::istream &is, RscChannelKind &value)
 
template<int N>
std::ostream & operator<< (std::ostream &os, const RscString< N > &rhs)
 
ARP_CXX_SYMBOL_EXPORT std::ostream & operator<< (std::ostream &os, RscStringEncoding value)
 
ARP_CXX_SYMBOL_EXPORT std::istream & operator>> (std::istream &is, RscStringEncoding &value)
 
template<class T >
constexpr RscType GetRscType (void)
 
template<>
constexpr RscType GetRscType< boolean > ()
 
template<>
constexpr RscType GetRscType< char8 > ()
 
template<>
constexpr RscType GetRscType< uint8 > ()
 
template<>
constexpr RscType GetRscType< int8 > ()
 
template<>
constexpr RscType GetRscType< uint16 > ()
 
template<>
constexpr RscType GetRscType< int16 > ()
 
template<>
constexpr RscType GetRscType< uint32 > ()
 
template<>
constexpr RscType GetRscType< int32 > ()
 
template<>
constexpr RscType GetRscType< uint64 > ()
 
template<>
constexpr RscType GetRscType< int64 > ()
 
template<>
constexpr RscType GetRscType< float32 > ()
 
template<>
constexpr RscType GetRscType< float64 > ()
 
template<>
constexpr RscType GetRscType< char * > ()
 
template<>
constexpr RscType GetRscType< String > ()
 
template<>
constexpr RscType GetRscType< DateTime > ()
 
template<>
constexpr RscType GetRscType< RscVersion > ()
 
template<>
constexpr RscType GetRscType< RscGuid > ()
 
template<>
constexpr RscType GetRscType< SecurityToken > ()
 
template<class T >
constexpr RscType GetRscTypeFrom (const T &)
 
template<int N>
constexpr RscType GetRscTypeFrom (const char(&)[N])
 
template<int N>
constexpr RscType GetRscTypeFrom (const RscString< N > &)
 
template<int N>
constexpr RscType GetRscTypeFrom (const SecureString< N > &)
 
template<>
constexpr RscType GetRscTypeFrom (const String &)
 
template<>
constexpr RscType GetRscTypeFrom (const DateTime &)
 
template<>
constexpr RscType GetRscTypeFrom (const RscVersion &)
 
template<>
constexpr RscType GetRscTypeFrom (const RscGuid &)
 
template<>
constexpr RscType GetRscTypeFrom (const SecurityToken &)
 
constexpr bool IsPrimitiveRscType (RscType type)
 
ARP_CXX_SYMBOL_EXPORT std::ostream & operator<< (std::ostream &os, const RscType value)
 
ARP_CXX_SYMBOL_EXPORT std::istream & operator>> (std::istream &is, RscType &value)
 
template<int N>
constexpr RscType GetRscTypeFrom (const RscVariant< N > &)
 

Detailed Description

Namespace for classes and interfaces for the Remote Service Call implementation

Enumeration Type Documentation

◆ RscStringEncoding

Determines the encoding of a Rsc String. Values are identical to CommonRemoting::StringEncoding.

Rsc only supports Utf8.

◆ RscType

Data types supported by RSC.

Values are identical with CommonRemoting::RemotingMarshalType. Only supported types of RemotingMarshalType are included.

Enumerator
None 

No data type set

End 

End of stream (EOS)

Null 

nullptr

Void 

void or null object

Bool 

Arp::boolean

Char 

Not supported!

Int8 

Arp::int8

Uint8 

Arp::uint8

Int16 

Arp::int16

Uint16 

Arp::uint16

Int32 

Arp::int32

Uint32 

Arp::uint32

Int64 

Arp::int64

Uint64 

Arp::uint64

Real32 

Arp::float32

Real64 

Arp::float64

Struct 

struct derived by IRscSerializable

String 

String with undefined format. Deprecated with remoting version 4 used by Rsc.

In Rsc context with at least remoting version 4 RscType String is mapped to Utf8String

Utf8String 

Utf-8 string, Arp::System::Rsc::Services::RscString

Array 

std::vector<T> or RSC enumerators

DateTime 

Arp::DateTime

Version 

Arp::System::Rsc::Services::RscVersion

Guid 

Universal unique ID Arp::System::Rsc::Services::RscGuid

AnsiString 

Ansi string, not supported in Rsc context

Object 

Object type as Arp::System::Rsc::Services::RscVariant

Utf16String 

Utf-16 string, not implemented in Rsc context

Stream 

Streamed type to marshal large data blobs Arp::System::Rsc::Services::RscStream/>

Enumerator 

Enumerator type implemented as IRscReadEnumerator or IRscWriteEnumerator

SecureString 

String for security context, handled by Rsc with Arp::System::Rsc::Services::SecureString

Enum 

Any enum type.

Dictionary 

Dictionary type. Not supported.

SecurityToken 

Security token needed for security services as Arp::System::Security::SecurityToken

Exception 

Exception, for internal use only.

summary>IEC type: TIME [int32]

IecTime 

summary>IEC type: LTIME [int64]

IecTime64 

summary>IEC type: DATE [N/A]

remarks>Not supported by PCWE.

IecDate 

summary>IEC type: LDATE [int64]

IecDate64 

summary>IEC type: DATE_AND_TIME, DT [N/A]

remarks>Not supported by PCWE.

IecDateTime 

summary>IEC type: LDATE_AND_TIME, LDT [int64]

IecDateTime64 

summary>IEC type: TIME_OF_DAY, TOD [N/A]

remarks>Not supported by PCWE.

IecTimeOfDay 

summary>IEC type: LTIME_OF_DAY, LTOD [int64]