FAST functions as a state machine and must know which field values to keep in memory. FAST compares the current value of that field and determines if the new value should be constant, default, copy, delta (integer or string), increment, or tail.
Dictionary Context
For the Incremental and Snapshot UDP feeds as well as the TCP Replay Server, CQG uses a dictionary context on a per-packet basis.
A dictionary is a cache in which previous values are maintained. All dictionary entries are reset to the initial values specified after each UDP packet. Currently, CQG sends one message per UDP packet.
For the Security Definition TCP feed, a dictionary is maintained throughout the duration of a TCP session and dictionary entries are never reset.
Field Operators
Note: The following are general descriptions and may have exceptions depending upon the scenario.
A field within a FAST template will generally have one of the Field Operators described below indicating the required decoding action. Note that in some cases it is possible for a field to have no Field Operator.
• Constant – indicates that the field will always contain a predetermined value as specified by the value attribute.
• If the value is optional this field will contain a Presence Map (Pmap) bit; if mandatory this field will not contain a Pmap bit.
• Default – indicates that the default value defined in the template should be used as the decoded value when a data value is not present. If a data value is present, use that value.
• Copy – indicates that the data value in the prior occurrence of this field should be used if a data value is not present for this occurrence.
• Delta for integers – when used with an integer, it indicates that the data value represents the arithmetic difference between the current and prior values.
• Delta for strings – when used with a string, it indicates that the data value is either pre-pended or appended to the prior value of this field after removing the specified number of bytes from the beginning or end of the string.
• A negative subtraction length means the operation takes place on the front of the string.
• A zero or positive subtraction length means the operation takes place on the end of the string.
• Increment – indicates that the data value for the prior occurrence of this field should be incremented by 1 if a data value is not present for the current occurrence. This operator works with integers only.
• Tail – this operator works with strings and byte vectors and specifies the number of characters to remove and append to the base value. The length of this value must be constant.