User login

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
11 + 0 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.
To prevent automated spam submissions leave this field empty.

The Mantissa field must only be decoded if the fully decoded value of the Exponent fiels is not NULL

Otherwise, if Exponent is NULL, we must not perform any actions (i.e., getting PMap bit, checking its value, extracting mantissa value from input stream, applying field operator) with Mantissa.

A PMap bit set to 0 indicates that there is no encoded value in the encoded FAST message for this field.

In this case, we follow the appropriate field operator actions. For example use default (initial) value, increment from previous value, or something else.

The Presence Map (PMap) is used to define this.

If the appropriate PMap bit for this field is set to 1, then the value is in the encoded FAST message. Otherwise, the value is not present in the encoded message.

The Optional property for a field means that the field may not be present in the output message. 

So if we receive NULL as decoded value we don't add it to the output message.

Sequence and its internal field sequence length do not require the PMap bits in the message Presence Map.

The message PMap does not contain PMap bits for these fields so it cannot be 0 or 1.

This can happen if template ID is suppressed by the encoder when the templateID is the same as the previous message's template ID.

So when decoding a message, if the template ID value is not present in the stream (has PMap bit set to 0) we just use previous value (according to copy field operator actions).

The PMap for each field group in the sequence may or may not be present in the encoded message. We can define it using the following approach.

If at least one field within the template sequence requires a PMap bit, then a PMap must be present at the beginning of each field group. Otherwise, no PMap will be present for the field group.

In cases where no PMap is present, application code can use an empty PMap object (which will always return 0 for the next presence bit) for each field group.

It occurs because a Presence Map (or PMap) is considered to have an infinite suffix of zeroes.

If the PMap has no more bits set to 1, it is truncated to its shortest form (number of bytes required to represent all bits set to 1 without trailing bytes with all zero bits). Any field that requires a PMap bit from beyond the end of the PMap bytes must infer a 0 bit.

In the code implementing a PMap representation, it is simple to return a 0 bit if there are no more actual bits in the PMap store.

Yes, in case of field operator Delta.

The delta value transferred is always signed even if the field is unsigned (this is logical, otherwise it would only be possible to increase the value of a field).

No, the Default field operator uses only the initial value when this field is not present in the stream.

Positive values of NULLABLE integer fields must be decremented by 1 after stop bit decoding. Values of non-nullable integer fields are NOT similarly decremented.

The tail operator:

  • can only be applied to string values and byte vectors
  • can only replace the end of e.g. a string value
  • cannot shrink the size of a string value, only grow or remain in size
  • cannot create output field value if delta value is not present in the stream

The delta operator:

  • can be applied to numbers, strings and byte vectors
  • can replace either the beginning or end of a string value
  • can shrink the size of a string
  • can use just previous or initial value (if tail value is not present in the stream) for the output field value.

No, it doesn't. Mandatory property of the field does not mean that field has to be present in the encoded message.

For example, copy operator: if the value is not present in the encoded message it uses previous value.

Mandatory field property means that the field has to be present just in the decoded (output) message, otherwise appropriate exception should be thrown.

No, they don't. Fields with noOperator and delta operator do not use PMap at all.

These fields must always be present in the encoded message.

No, it doesn't. Fields may not require PMap bit set to 1.

Mandatory field property means that the field has to be present just in the decoded (output) message, otherwise appropriate exception should be thrown.