question

Upvotes
Accepted
9 3 6 9

Why the background loaded dictionaries are not public accessible in EMA

For building efficently applications access to the dictionary is important. E.g. creating fieldlist to reduce message. overhead. I think it is not usefull tho load required dictionaries twice and handle this by usercode.

elektronrefinitiv-realtimeelektron-sdkema-apirrtelektron-message-apielektron-data-dictionary
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@greg.lee

Can you help us answer this one please ? Thanks, AHS

Thank you for your participation in the forum.

Are any of the replies below satisfactory in resolving your query?

If yes please click the 'Accept' text next to the most appropriate reply. This will guide all community members who have a similar question.

Otherwise please post again offering further insight into your question.

Thanks,

AHS

@Reinhold.Blank

Hi.

Thank you for your participation in the forum.

Are any of the replies below satisfactory in resolving your query?

If yes please click the 'Accept' text next to the most appropriate reply. This will guide all community members who have a similar question.

Otherwise please post again offering further insight into your question.

Thanks, AHS

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,

AHS

@Reinhold.Blank

Thank you so much for the useful feedback.

Please be informed that we have created a new case for this feedback. The case number is 04874840.

After that, we will escalate it to the development and product management team for further consideration.

Thanks,

AHS

Show more comments
Upvotes
Accepted
103 0 2 1

Here are some general directions that the architects and developers of the EMA had in mind while developing the EMA.

A) In general, the dictionaries are accessed only during the decoding of field list, e.g. to expand FID# into type and meaning, plus some more like enums expansions, etc.

B) Though this is possible to access dictionaries during encoding of field list to verify correctness of the encoding (e.g. data type) this is mostly skipped due to: 1) performance overhead, 2) limited error detection possibility.

C) EMA hides the dictionary from the user's view to simplify the encoding and decoding of field list. Please refer to the RFA and UPA dev guides how much dictionary code is needed to handle decoding of field list. Of course, these approaches have their own advantages too.

D) the hiding of the dictionaries in the EMA makes the encoding and decoding of element list and field list identical.

Hope these general guidelines provide some light on the situation.

Feel free to provide more details about your case so we can provide a better answer for you.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
78.9k 250 52 74

Yes, the loaded data dictionary is used internally in EMA. In EMA, you can create a fieldlist by using the following code.

try {
   FieldList fieldList;
   fieldList.info( 1, 1 )
      .addUInt( 1, 64 )
      .addReal( 6, 11, OmmReal::ExponentNeg2Enum )
      .addDate( 16, 1999, 11, 7 )
      .addTime( 18, 02, 03, 04, 005 )
      .complete();
} catch ( const OmmException & excp  ) {
   cout << excp << endl;
}
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

To pull the "tangible" dictionary that you can use, please see the example 332 Dictionary_Streaming

That's it, what I don't want to do. In this case i can continue using of RFA with more comfort.

Upvotes
9 3 6 9

Hey,

for better understanding, i need the posibility to translate fieldnames into fieldids, for

1. Creating FieldID-List for view in MarketPrice-Request-Message.

2. Efficiently mapping of incoming messages in consumer, while decoding payload to application side databuffer. Excessively using of fieldlist.decoders-method "forth(EmaString&)" is insuffucient.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

@Reinhold.Blank

Thank you for the information. Will pass this information to development team via the case: 04874840.

Upvotes
11.3k 25 9 14

Hi @Reinhold.Blank

The New version of Elektron SDK - C++, 1.1.0, has been released. The package is available in this link. This version implements features which allow you to get access to the internal EMA dictionary via the thomsonreuters::ema::rdm::DataDictioanry class.

To get internal EMA dictionary, application needs to request "RWFFld" and

"RWFEnum" without service name and then create a new DataDictioanry instance with dictionary response's payload. Please see the "332__Dictionary__Streaming" example.

Application can also extract a DataDictionary object used by FieldList when decoding it via the DictionaryUtility::dataDictionary() static method.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
9 3 6 9

Hi veerapath,

is was not there a longer time, so was really suprised that my request had got a positive responce.

Thanks!

Reinhold

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.