We are looking for a description of what information is provided by the C++ Reuters Elektron ema Omm::StatusMsg class so that we can use them correctly. In particular we are looking for
Thus far we have only found the comments on the OmmState declaration, but the names and comments are not as precise as we would like.
I found some description of the state code in ETA Reference Manual (html). You may find the description from ETA document instead as the EMA build on top of ETA. The enum value should be the same. It may not cover all codes in EMA but I think it provides more details comparing with EMA document. Attached file is the information from the document I have exported to PDF file.
I have copied it from ETA document (html) which locates at <Elektron SDK Install Path>/Eta/Docs/doxygen/ETA/group__RsslStateType.html#ga43d7477e19a12dbb6857245f1ff3b208
Thanks. That those descriptions are helpful.
EMA provides this on a callback to an OmmConsumerClient object, which corresponds to a subscription for an instrument. Do you know if the stream states should be interpreted as applying only to that subscription, or to all subscriptions?
It should be interpreted as applying only to that subscription.
Basically the EMA assigns all opened items or instruments a unique numeric identifier (e.g. UInt64), called a handle, which is returned by the OmmConsumer::registerClient() call. A handle is valid as long as its associated item stays open. In case that your application send multiple requests for multiple items, to identify event stream in the EMA client callback e.g. OnRefreshMsg,onStatusMsg, you can get handle from OmmConsumerEvent object using getHandle() and then compare it with the handle returned by registerClient.
Stream in this case is not network communication channel. It's data stream for each domain model (Login , Item, Directory according to RDM Usage guide). EMA internal has to maintain the stream so that it can generate events for particular request.
Each time you call registerClient to open a new item subscription, EMA returns handle which you can used to identify each subscription. If application send item request for RIC A,B,C and D , it will have four item stream. Then it appears that your DACS user does not have permission to request item B and C, application should get onStatus callback with stream state is closed for item B and C but A and D still remains open and get Refresh and Update as usual. That is the concepts I want to explain.