The components are not really ... things. They are similar to macros in a FIX DataDictionary. Many messages need the same set of fields, so instead of specifying the same fields in each message, DD defines a component that other messages may include.
The group, on the other hand, is very real. This is a repeating sequence of fields that will be displayed 0 or more times in a message.
The QuickFIX programming interface largely ignores components as a concept. You cannot extract a component from a message because the component is not a concept in QF; you just retrieve the fields like any other field.
Hypothetical example: The following two message definitions are exactly the same.
1: with component
<message name="Automobile" msgtype="X" msgcat="app"> <field name="Wheel" required="Y"/> <field name="Bumper" required="Y"/> <component name="Dashboard" required="Y"/> </message> <component name="Dashboard"> <field name="Radio" required="Y"/> <field name="AirConditioner" required="Y"/> <field name="Heater" required="Y"/> </component>
2: no component
<message name="Automobile" msgtype="X" msgcat="app"> <field name="Wheel" required="Y"/> <field name="Bumper" required="Y"/> <field name="Radio" required="Y"/> <field name="AirConditioner" required="Y"/> <field name="Heater" required="Y"/> </message>
Cm? A component is just a macro.
In any case, this means that you are simply calling msg.GetHeater() (or something else).
Grant birchmeier
source share