2.3.1 Serialized Octet Stream

The Serialized Octet Stream contains a series of records. The first record MUST be a SerializationHeaderRecord. For requests, the second record is an IsPrincipalMemberOfRequest. For responses, the second record is an IsPrincipalMemberOfResponse. The remainder of the stream MAY contain any number of additional records. The final record in the stream MUST be a MessageEnd record.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

SerializationHeaderRecord (17 bytes)

...

...

...

Body (variable)

...

Additional Records (variable)

...

MessageEnd

SerializationHeaderRecord (17 bytes): A SerializationHeaderRecord, as specified in section 2.3.1.1.

Body (variable): MUST be either an IsPrincipalMemberOfRequest record OR an IsPrincipalMemberOfResponse record.

Additional Records (variable): Any number of additional records, as specified in section 2.3.4.

When serializing class records, the values of each member MUST be serialized immediately following the record. The values are serialized in the same order as the MemberNames in the class record. The serialization format for each member value is determined by the BinaryTypeEnum corresponding to each member. If the member has an AdditionalInfo field in the class record, this will further specify the serialization format. When a class member value is serialized as a string, client implementations SHOULD NOT interpret the content of the string or take any action based on the content of the string.<3>

BinaryTypeEnum

Serialized Structure

Primitive

MemberPrimitiveUnTyped (AdditionalInfo will specify the format of the serialized value.)

Object

MemberPrimitiveTyped, BinaryObjectString

ObjectArray

Member Reference Record

Class or SystemClass

Class Record (AdditionalInfo will specify which class is to be serialized), Member Reference Record

String

BinaryObjectString, MemberReference, ObjectNull

MessageEnd (1 byte): A MessageEnd record, as specified in section 2.3.1.4.