Hi all,
using the Refinitiv EMA C++ library (3.6.1.L2), I'm seeing a weird behavior.
The application is a consumer, downloading the DataDictionary from the network.
The dictionary contains custom entries, which are using negative IDs.
The consumer downloads and decodes the dictionary without issues: I can inspect and access the custom entries using e.g.
const DictionaryEntry& getEntry(const refinitiv::ema::access::EmaString& fieldName) const;
However, when I print the whole dictionary object (e.g. to save the content to a file, just for troubleshooting), the dictionary lists only the entries with non-negative IDs.
Note: the header of the output actually shows a correct summary, but the following detailed list of entries is partial.
Data Dictionary Dump: MinFid=-23627 MaxFid=32766 NumEntries 20955
Is this expected? How can I get the entire list of entries?
Thanks
Best Regards,
Paolo
Ps: the code is similar to the following:
DataDictionary _dataDictionary;
...
switch (msg.getPayload().getDataType())
{
case DataType::SeriesEnum:
{
if (msg.getName() == "RWFFld")
{
_dataDictionary.decodeFieldDictionary(msg.getPayload().getSeries(), DICTIONARY_NORMAL);
_fldDictComplete |= complete;
}
else if (msg.getName() == "RWFEnum")
{
_dataDictionary.decodeEnumTypeDictionary(msg.getPayload().getSeries(), DICTIONARY_NORMAL);
_enumTypeComplete |= complete;
}
if (_fldDictComplete && _enumTypeComplete)
{
ofstream fidDbDumpFile;
fidDbDumpFile.open(dictDumpFileName);
fidDbDumpFile << _dataDictionary << endl;
fidDbDumpFile.close();
}
break;
}
}