How to decode Rmtes partial update data with EMA C++?

Our system was changed API from RFA C# 7.2.18 to EMA C++ 3.6.7.

It is possible that the decoding result is incorrect due to the difference in the way RFA and EMA handle RMTES encoding.

The following data shows the decoding results obtained using RFA and EMA, respectively.

RFA:

2023-09-14 17:48:35,610 ICAPEUROBASIS3 UPDATE 321=[60`3

EMA:

2023-09-14 17:48:35,610 ICAPEUROBASIS3 UPDATE 321=ICAK HKG60090 6.1250 -7.87501063 14/SEP 17:45


When investigating this issue, we found a similar question on the following link.

https://community.developers.refinitiv.com/questions/58724/how-to-check-whether-rmtes-string-contains-partial.html

And we have 2 questions:

(1) whether this issue has already been resolved. If not, the question is whether there are any plans to resolve it in the future.

(2) Based on the content of the past article, the correct decoding results can be obtained by addressing the issue using the following method.If there are any improvements or alternative methods to address this issue, please let me know.


if ((FieldEntry.getEntry().getLoadType()) == DataType::RmtesEnum) {

EmaBuffer c = FieldEntry.getAsHex();

value = asciiTochar(c.asRawHexString());

}


Best Answer

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    Answer ✓

    @xiaoyuan.li

    Thank you for reaching out to us.

    As mentioned on that discussion, please modify and run the 310_MarketPrice_RMTES example to replicate this issue. Your implementation may be different from the 310_MarketPrice_RMTES example.

    Regarding the DataType::RmtesEnum, the examples use the following code to get an ENUM value.

    case DataType::RmtesEnum:
                    cout << fe.getRmtes().toString() << endl;
                    break;

Answers