EMA C++ RDM Usage Guide : 5 Dictionary Domain : 5.1 Description
 
5.1 Description
 
NOTE: GenericMsg(s) are not supported for the Dictionary domain model.
The Open Message Model can optimize bandwidth usage by reducing or removing the need to constantly communicate well-known information (e.g., names and data types associated with information in a FieldList). Using these techniques, information is instead contained in a field dictionary, where the field list contains only FieldId references to information in the dictionary.
A provider application can indicate any dictionaries needed to parse published content. To reconstruct omitted information, consumer applications reference required dictionaries when decoding. Dictionaries may be available locally (i.e., in a file) or available for request over the network from an upstream provider.
The following dictionaries provide domain models for network requests:
Field Dictionary: Stores data referenced by the FieldList. Each FieldId in a FieldEntry corresponds to an entry in the Field Dictionary, which provides information such as the field’s name (e.g., BID) and data type (e.g., Int). Additional information (such as rippling fields and expected cache-sizing requirements) are also present.
Enumerated Types Dictionary: Contains tables defining values for enumerated values of type Enum. Each table indicates the FieldId values of all fields that use the data in the table, as well as the possible enumerated values. For example, a field indicating the currency of an item will use a table listing enumerations of various currencies. If a consumer decodes the value of that field (e.g., 840), it can cross reference that value with its copy of the table. The entry the consumer finds will contain a string that the consumer can print (e.g. USD), and possibly a more meaningful description as well.