ROSerialization

Overview

This is the formal protocol that defines the interface to allow serialization and deserialization of values of all supported types. This protocol is used internally to create message classes such as binary message or SOAP message. You will have to implement this protocol if you want to create your own message class as a ROMessage descendant.
The protocol methods listed below may have common parameters:

  • *withName:(NSString )aName is used to pass the name of the value to process. Some serializers may implement sequential approach, meaning the data is stored sequentially in a predefined order (likebinary message). Other serializers may implement a "name-value" approach with random access (like SOAP message). The name parameter being described is used in latter case and ignored otherwise.
  • asClass:(Class)class: When deserializing complex types like arrays or structures, it is required to specify the class of the instance the deserializer should create. This parameter is necessary because all arrays and structures are descendants of ROArray and ROComplexType classes respectively and there may be no concrete class information in the message data.

Location


Required Methods


readAnsiStringWithName:

Reads an AnsiString value.

- (nullable NSString *) readAnsiStringWithName:(nullable NSString *)aName

Parameters:

  • aName:

readAnsiStringWithName:asClass:  deprecated

Reads an AnsiString value.

- (nullable NSString *) readAnsiStringWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readArrayWithName:asClass:  deprecated

Reads an array value.

- (nullable ROArray *) readArrayWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readBinaryWithName:

Reads a Binary value.

- (nullable NSData *) readBinaryWithName:(nullable NSString *)aName

Parameters:

  • aName:

readBinaryWithName:asClass:  deprecated

Reads a Binary value.

- (nullable NSData *) readBinaryWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readBooleanWithName:

Reads a Boolean value.

- (BOOL) readBooleanWithName:(nullable NSString *)aName

Parameters:

  • aName: The name of the value.

readByteWithName:

Reads a Byte value.

- (byte) readByteWithName:(nullable NSString *)aName

Parameters:

  • aName: The name of the value.

readComplexWithName:asClass:

- (nullable ROComplexType *) readComplexWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readCurrencyWithName:

Reads a Currency value.

- (nullable NSDecimalNumber *) readCurrencyWithName:(nullable NSString *)aName

Parameters:

  • aName:

readCurrencyWithName:asClass:  deprecated

Reads a Currency value.

- (nullable NSDecimalNumber *) readCurrencyWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readDateTimeWithName:

Reads a DateTime value.

- (nullable NSDate *) readDateTimeWithName:(nullable NSString *)aName

Parameters:

  • aName:

readDateTimeWithName:asClass:  deprecated

Reads a DateTime value.

- (nullable NSDate *) readDateTimeWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readDecimalWithName:

Reads a Decimal value.

- (nullable NSDecimalNumber *) readDecimalWithName:(nullable NSString *)aName

Parameters:

  • aName:

readDecimalWithName:asClass:  deprecated

Reads a Decimal value.

- (nullable NSDecimalNumber *) readDecimalWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readDoubleWithName:

Reads a Double value.

- (double) readDoubleWithName:(nullable NSString *)aName

Parameters:

  • aName:

readEnumWithName:asEnum:

- (NSUInteger) readEnumWithName:(nullable NSString *)aName asEnum:(nonnull ROEnumMetaData *)aEnumMetaData

Parameters:

  • aName:
  • aEnumMetaData:

readGuidWithName:

Reads a GUID value.

- (nullable ROGuid *) readGuidWithName:(nullable NSString *)aName

Parameters:

  • aName:

readGuidWithName:asClass:  deprecated

Reads a GUID value.

- (nullable ROGuid *) readGuidWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readInt16WithName:

Deserializes a 16-bit signed integer value.

- (int16) readInt16WithName:(nullable NSString *)aName

Parameters:

  • aName:

readInt32WithName:

Deserializes a 32-bit signed integer value.

- (int32) readInt32WithName:(nullable NSString *)aName

Parameters:

  • aName: The name of the value.

readInt64WithName:

Deserializes a 64-bit signed integer value.

- (int64) readInt64WithName:(nullable NSString *)aName

Parameters:

  • aName:

readMutableArrayWithName:asClass:

- (nullable ROMutableArray *) readMutableArrayWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readUtf8StringWithName:

Reads an UTF8String value.

- (nullable NSString *) readUtf8StringWithName:(nullable NSString *)aName

Parameters:

  • aName:

readUtf8StringWithName:asClass:  deprecated

Reads an UTF8String value.

- (nullable NSString *) readUtf8StringWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readVariantWithName:

Reads a Variant value.

- (nullable ROVariant *) readVariantWithName:(nullable NSString *)aName

Parameters:

  • aName:

readVariantWithName:asClass:  deprecated

Reads a Variant value.

- (nullable ROVariant *) readVariantWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readWideStringWithName:

Reads a WideString value.

- (nullable NSString *) readWideStringWithName:(nullable NSString *)aName

Parameters:

  • aName:

readWideStringWithName:asClass:  deprecated

Reads a WideString value.

- (nullable NSString *) readWideStringWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readXmlWithName:

Reads a XML value.

- (nullable ROXml *) readXmlWithName:(nullable NSString *)aName

Parameters:

  • aName:

readXmlWithName:asClass:  deprecated

Reads a XML value.

- (nullable ROXml *) readXmlWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

readXsDateTimeWithName:

- (nullable NSDate *) readXsDateTimeWithName:(nullable NSString *)aName

Parameters:

  • aName:

readXsDateTimeWithName:asClass:  deprecated

- (nullable NSDate *) readXsDateTimeWithName:(nullable NSString *)aName asClass:(nonnull Class)aClass

Parameters:

  • aName:
  • aClass:

writeAnsiString:withName:

Writes an AnsiString value.

- (void) writeAnsiString:(nullable NSString *)aString withName:(nullable NSString *)aName

Parameters:

  • aString: The string to serialize.
  • aName: The name of the value.

writeArray:withName:  deprecated

Writes an array value.

- (void) writeArray:(nullable ROArray *)aArray withName:(nullable NSString *)aName

Parameters:

  • aArray: The array to serialize.
  • aName: The name of the value.

writeBinary:withName:

Writes a Binary value.

- (void) writeBinary:(nullable NSData *)aBinary withName:(nullable NSString *)aName

Parameters:

  • aBinary: The binary stream instance to serialize.
  • aName: The name of the value.

writeBoolean:withName:

Serializes a boolean value.

- (void) writeBoolean:(BOOL)aBoolean withName:(nullable NSString *)aName

Parameters:

  • aBoolean: The value to serialize.
  • aName: The name of the value.

writeByte:withName:

Serializes a byte value.

- (void) writeByte:(byte)aByte withName:(nullable NSString *)aName

Parameters:

  • aByte: The value to serialize.
  • aName: The name of the value.

writeComplex:withName:

Serializes a complex type (i.e. structure) instance.

- (void) writeComplex:(nullable ROComplexType *)aComplex withName:(nullable NSString *)aName

Parameters:

  • aComplex: The complex type instance to serialize.
  • aName: The name of the value.

writeCurrency:withName:

Writes a Currency value.

- (void) writeCurrency:(nullable NSDecimalNumber *)aCurrency withName:(nullable NSString *)aName

Parameters:

  • aCurrency: The value to serialize.
  • aName: The name of the value.

writeDateTime:withName:

Writes a DateTime value.

- (void) writeDateTime:(nullable NSDate *)aDate withName:(nullable NSString *)aName

Parameters:

  • aDate: The value to serialize.
  • aName: The name of the value.

writeDecimal:withName:

Writes a Decimal value.

- (void) writeDecimal:(nullable NSDecimalNumber *)aDecimal withName:(nullable NSString *)aName

Parameters:

  • aDecimal: The value to serialize.
  • aName: The name of the value.

writeDouble:withName:

Writes a Double value.

- (void) writeDouble:(double)aDouble withName:(nullable NSString *)aName

Parameters:

  • aDouble: The value to serialize.
  • aName: The name of the value.

writeEnum:withName:  deprecated

Writes an enum value.

- (void) writeEnum:(NSUInteger)aEnum withName:(nullable NSString *)aName

Parameters:

  • aEnum:
  • aName:

writeEnum:withName:asEnum:

Writes an enum value.

- (void) writeEnum:(NSUInteger)aEnum withName:(nullable NSString *)aName asEnum:(nonnull ROEnumMetaData *)aEnumMetaData

Parameters:

  • aEnum:
  • aName:
  • aEnumMetaData:

writeGuid:withName:

Writes a GUID value.

- (void) writeGuid:(nullable ROGuid *)value withName:(nullable NSString *)aName

Parameters:

  • value: The value to serialize.
  • aName: The name of the value.

writeInt16:withName:

Serializes a 16 bit signed integer value.

- (void) writeInt16:(int16)aInt withName:(nullable NSString *)aName

Parameters:

  • aInt: The value to serialize.
  • aName: The name of the value.

writeInt32:withName:

Writes a Integer value.

- (void) writeInt32:(int32)aInt withName:(nullable NSString *)aName

Parameters:

  • aInt: The value to serialize.
  • aName: The name of the value.

writeInt64:withName:

Writes a Int64 value.

- (void) writeInt64:(int64)aInt withName:(nullable NSString *)aName

Parameters:

  • aInt: The value to serialize.
  • aName: The name of the value.

writeMutableArray:withName:

- (void) writeMutableArray:(nullable ROMutableArray *)aArray withName:(nullable NSString *)aName

Parameters:

  • aArray:
  • aName:

writeUtf8String:withName:

Writes an UTF8String value.

- (void) writeUtf8String:(nullable NSString *)aString withName:(nullable NSString *)aName

Parameters:

  • aString: The string to serialize.
  • aName: The name of the value.

writeVariant:withName:

Writes a Variant value to the message.
WARNING
The method is provided for future RO SDK/OSX improvement. Variants are not supported in the current RO SDK/OSX version, so you should only code the method stub in classes that implement this protocol.

- (void) writeVariant:(nullable ROVariant *)aVariant withName:(nullable NSString *)aName

Parameters:

  • aVariant: The value to serialize.
  • aName: The name of the value.

writeWideString:withName:

Writes a WideString value.

- (void) writeWideString:(nullable NSString *)aString withName:(nullable NSString *)aName

Parameters:

  • aString: The string to serialize.
  • aName: The name of the value.

writeXml:withName:

Writes a XML value.

- (void) writeXml:(nullable ROXml *)aXml withName:(nullable NSString *)aName

Parameters:

  • aXml: The value to serialize.
  • aName: The name of the value.

writeXsDateTime:withName:

- (void) writeXsDateTime:(nullable NSDate *)aDate withName:(nullable NSString *)aName

Parameters:

  • aDate:
  • aName: