I would like to know what API's are available for a C++ application to connect to Refinitiv Real Time Optimized to fetch data from cloud? I came across RTSDK for C/C++ and EMA, could you please let me know if these are the correct API's I am looking at or are there any other ways to fetch data from cloud from a C++ application.
Is there any available API which works similar to RFA to connect to Refinitiv Real Time Optimized?
Your help is much appreciated.
Hello @hdiniz ,
RTSDK is the recommended way to access Refinitiv Real Time Optimized using C/C++.
RTSDK Enterprise Message API(EMA) is a higher level API, message tier API that is high performance and is the preferred approach for the majority of the use cases.
RTSDK Enterprise Transport API (ETA) is a lower level, transport level API. EMA is built on top of ETA, with ETA requiring significantly more coding effort but also allowing the greatest flexibility on the implementation.
Please also find article Choosing a Refinitiv Real-time Streaming API with detailed suggestions on selecting streaming API that is most attuned with your organization's requirements.
While my colleague has provided clear information about the C++ API for RTO, you can find more RTSDK C++ detail from the following resources:
We have a ready-to-use EC2 AMI on AWS that contains all SDK for the RTO (including the RTSDK C++) too, you can find more detail on this How to Setup Refinitiv's Amazon EC2 Machine Image for Refinitiv Real-Time - Optimized article.
Is the currency list configurable? If so could you please specify the config field and name of configuration file.
There are two examples for the RTO connection, the EMA Cons113, and Cons450 examples. You can find more detail about how to run the Cons113 example from the "Cons113 (RTO test)" section of the RTSDK C++ Quick Start page. Please note that you can add the "-itemName" parameter to specify the RIC you want to subscribe to.
# Windows example Cons113 -username <Machine-ID> -password <RTO Password> -clientId <App-Key> -itemName EUR=
Cons450 -username <Machine-ID> -password <RTO Password> -clientId <App-Key> -itemName EUR=
Note: Cons450 is the recommended example.
I also recommend you check the RTSDK C++ tutorials page that contains a step-by-step guide for using the EMA C++ to connect and consume data from Refinitiv Real-Time.
Please refer to the source code of the above examples - e.g.
consumer.registerClient( ReqMsg().serviceName( "ELEKTRON_DD" ).name( itemName )
where itemName is defaulted to "IBM.N" and can be overridden on the command line.
I also recommend you work through the basic Tutorials which should increase your understanding of how to use EMA. Tutorials | Refinitiv Developers
Unfortunately, I don't understand the question 'Also could you please let me know what is the data format of market feeds with RTO? ' please explain in more detail what you mean.
I should also add that if you wish to request multiple instruments; you can either call registerClient repeatedly with a unique RIC code each time OR use a Batch request as demonstrated in the example 370_MP_Batch - for example below it requests IBM.N and TRI.N
UInt64 handle = consumer.registerClient( ReqMsg().serviceName( "ELEKTRON_DD" ) .payload( ElementList().addArray( ENAME_BATCH_ITEM_LIST, OmmArray() .addAscii( "TRI.N" ).addAscii( "IBM.N" ).complete() ).complete() ), client );