2.7 Binary Record Grammar

This section specifies the grammar using the Augmented Backus-Naur Form (ABNF) syntax specified in [RFC4234] that defines how the records can appear in the serialization stream.

ABNF productions

 Meaning

ABNF productions remotingMessage

=

 SerializationHeader

*(referenceable)

(methodCall/methodReturn)

*(referenceable)

 MessageEnd

methodCall

=

 0*1(BinaryLibrary)

 BinaryMethodCall

 0*1(callArray)

methodReturn

=

 0*1(BinaryLibrary)

 BinaryMethodReturn

 0*1(callArray)

callArray

=

 0*1(BinaryLibrary)

 ArraySingleObject

*(memberReference)

memberReference

=

 0*1(BinaryLibrary)

(MemberPrimitiveUnTyped / MemberPrimitiveTyped / MemberReference / BinaryObjectString / nullObject /Classes)

nullObject

=

ObjectNull / ObjectNullMultiple / ObjectNullMultiple256

referenceable

=

Classes/Arrays/BinaryObjectString

Classes

=

 0*1(BinaryLibrary)

(ClassWithId / ClassWithMembers/ ClassWithMembersAndTypes / SystemClassWithMembers / SystemClassWithMembersAndTypes) *(memberReference)

Arrays

=

 0*1(BinaryLibrary)

((ArraySingleObject *(memberReference)) / (ArraySinglePrimitive *(MemberPrimitiveUnTyped)) /

 (ArraySingleString *(BinaryObjectString/MemberReference/nullObject)) /

 (BinaryArray*(memberReference)) )