Encoding Specification

Version 3 by Yan Tordoff
on Nov 07, 2009 13:56.

compared with
Current by Andrew Griffin
on Jan 06, 2010 13:11.

(show comment)
Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (4)

View Page History
|11|4 bytes is used to encode the size of the variable width payload|

h3. Types
The Fudge specification includes a set of Standard [Types] that any compliant system must support, with defined reduction rules so that the smallest possible encoding for the data is used.

h3. Sub-Message Encoding

** The field size indicator will be provided as usual, and the size of the encoded fields will be indicated in the field contents as usual
* The fields of the sub-message will immediately follow in the data stream
* The end of the sub-message fields will result in a field entry (again, with 0 size), with the {{EndFudgeMsg}} type

Note that aside from the {{StartFudgeMsg}} field type header, this is the exact same processing as for the fields in a Fudge Message Envelope.

h3. Endianness
All data is ALWAYS MUST be encoded in Network Byte Order, including IEE-751 floating point numbers.

h2. Field Ordering

The ordering of repeated fields within a message, or sub-message, MUST be preserved by any compliant system as the ordering can be used to represent sequence within a list or other higher level programming construct. Fields are considered to be repeated if:

* both do not specify a Name or Ordinal (anonymous fields); or
* both specify a Name and the Names match; or
* both specify an Ordinal and the Ordinals match.

For any other fields, the ordering is not guaranteed to be preserved.