EMA C++ RDM Usage Guide : 2 Domain Model Overview : 2.6 General Enterprise Message API Concepts : 2.6.3 Clearing the Cache on Refreshes
 
2.6.3 Clearing the Cache on Refreshes
If you perform a refresh, you might need to clear the cache. To clear the cache, call RefreshMsg.ClearCache with a value of true. For further details on using the clear cache flag, refer to the Enterprise Message API C++ Edition Reference Guide.
 
 
RefreshMsg().clearCache(true);
 
When clearing a cache, you must observe the following conditions:
Pass true value on all solicited level 1 data refreshes.
Pass true value only in the first part of solicited level 2 data refreshes.
Calling this function on unsolicited refreshes depends on the application and its intent:
- If set to true on an unsolicited refresh, the cache is cleared and populated with new data.
- If not set to true on the unsolicited refresh, new data is overlaid onto the existing data. In this case, the resulting image / refresh is a superset of fields currently contained in cache combined with the set brought by the current refresh.
 
The FieldList container supports the rippling of fields. When rippling, newly received content associated with a FieldId replaces previously received content associated with the same FieldId. The previously received content is moved to a new FieldId, which is typically indicated in a field dictionary. In the RDMFieldDictionary, the ‘RIPPLES TO’ column defines FieldId information used when rippling (for details, refer to and ). Rippling typically reduces bandwidth consumption. Because previously received information is still relevant, it would normally need to be sent with subsequent updates even though the value does not change. The use of rippling allows this information to be optimized out of subsequent updates; however it relies on the consumer to use ripple information from a field dictionary to correctly propagate the previously received content.