PLCnext API Documentation  21.6.0.46
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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  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  RscStringEncoding { None = 0, Ansi = 1, Utf8 = 2, Utf16 = 3 }
 Determines the encoding of a Rsc String. Values are identical to CommonRemoting::StringEncoding. Rsc only supports Utf8. More...
 
enum  RscType : uint8 {
  RscType::None = 0xFF, RscType::End = 0, RscType::Null = 0, RscType::Void = 1,
  RscType::Bool = 2, RscType::Char = 3, RscType::Int8 = 4, RscType::Uint8 = 5,
  RscType::Int16 = 6, RscType::Uint16 = 7, RscType::Int32 = 8, RscType::Uint32 = 9,
  RscType::Int64 = 10, RscType::Uint64 = 11, RscType::Real32 = 12, RscType::Real64 = 13,
  RscType::Struct = 18, RscType::String = 19, RscType::Utf8String = 19, RscType::Array = 20,
  RscType::DateTime = 23, RscType::Version = 24, RscType::Guid = 25, RscType::AnsiString = 26,
  RscType::Object = 28, RscType::Utf16String = 30, RscType::Stream = 34, RscType::Enumerator = 35,
  RscType::SecureString = 36, RscType::Enum = 37, RscType::Dictionary = 38, RscType::SecurityToken = 39,
  RscType::Exception = 40, RscType::IecTime = 41, RscType::IecTime64 = 42, RscType::IecDate = 43,
  RscType::IecDate64 = 44, RscType::IecDateTime = 45, RscType::IecDateTime64 = 46, RscType::IecTimeOfDay = 47,
  IecTimeOfDay64 = 48
}
 Datatypes supported by Rsc. Values are identical with CommonRemoting::RemotingMarshalType. Only supported types of RemotingMarshalType are included. More...
 

Functions

std::ostream & operator<< (std::ostream &os, RscChannelKind arg)
 
std::istream & operator>> (std::istream &is, RscChannelKind &arg)
 
template<int N>
std::ostream & operator<< (std::ostream &os, const RscString< N > &rhs)
 
std::ostream & operator<< (std::ostream &os, RscStringEncoding arg)
 
std::istream & operator>> (std::istream &is, RscStringEncoding &arg)
 
template<class T >
constexpr RscType GetRscType (void)
 
template<>
constexpr RscType GetRscType< boolean > (void)
 
template<>
constexpr RscType GetRscType< char8 > (void)
 
template<>
constexpr RscType GetRscType< uint8 > (void)
 
template<>
constexpr RscType GetRscType< int8 > (void)
 
template<>
constexpr RscType GetRscType< uint16 > (void)
 
template<>
constexpr RscType GetRscType< int16 > (void)
 
template<>
constexpr RscType GetRscType< uint32 > (void)
 
template<>
constexpr RscType GetRscType< int32 > (void)
 
template<>
constexpr RscType GetRscType< uint64 > (void)
 
template<>
constexpr RscType GetRscType< int64 > (void)
 
template<>
constexpr RscType GetRscType< float32 > (void)
 
template<>
constexpr RscType GetRscType< float64 > (void)
 
template<>
constexpr RscType GetRscType< char * > (void)
 
template<>
constexpr RscType GetRscType< String > (void)
 
template<>
constexpr RscType GetRscType< DateTime > (void)
 
template<>
constexpr RscType GetRscType< RscVersion > (void)
 
template<>
constexpr RscType GetRscType< RscGuid > (void)
 
template<>
constexpr RscType GetRscType< SecurityToken > (void)
 
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)
 
std::ostream & operator<< (std::ostream &os, const RscType rhs)
 
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

Datatypes 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 

bool type

Char 

16 bit character

Int8 

signed 8 bit integer

Uint8 

unsigned 8 bit integer

Int16 

signed 16 bit integer

Uint16 

unsigned 16 bit integer

Int32 

signed 32 bit integer

Uint32 

unsigned 32 bit integer

Int64 

signed 64 bit integer

Uint64 

unsigned 64 bit integer

Real32 

32 bit floating point number

Real64 

64 bit floating point number

Struct 

Complex datatype with implements 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

Array 

Array type

DateTime 

Datetime, handled by Rsc with DateTime

Version 

Version Version

Guid 

Universal unique ID Uuid

AnsiString 

Ansi string, not implemented in Rsc context

Object 

Object type handled by Rsc as RscVariant

Utf16String 

Utf-16 string, not implemented in Rsc context

Stream 

Stream type to marshal large data packets (see <see cref="RscStream")/>

Enumerator 

Enumerator type, handled by Rsc with IRscReadEnumerator and IRscWriteEnumerator

SecureString 

String for security context, handled by Rsc with SecureString

Enum 

Enum type.

Dictionary 

Dictionary type.

SecurityToken 

Security token needed for security services, handly by Rsc with SecurityToken

Exception 

Exception

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]