c++ API将字符串转为access::Msg类型的咨询

ema中许多消息类型的实现(如RefreshMsg、UpdateMsg、StatusMsg)均继承于access::Msg,看到class的实现中均提供了toString方法返回EmaString。如果我有一个EmaString,有什么方法可以将这个EmaString转换到access::Msg类型吗?例如我需要做一些数据回放,需要将字符串数据放到代码中处理,这时要把字符串转化到RefreshMsg、UpdateMsg、StatusMsg的消息进行处理。

Best Answer

Answers

  • 我的程序需要先将EMA message转到string存储到queue,然后又线程从queue中读取string,想把这个string再转化到EMA message来处理的。如果没有方法将string转化到EMA message,那有什么方法能够解析string获取到到想要的字段吗?

  • Hello @rikytan

    Instead of keeping the message as EmaString, you can clone the message using the following method()

    • refinitiv::ema::access::RefreshMsg::RefreshMsg(const RefreshMsg& other)
    • refinitiv::ema::access::UpdateMsg::UpdateMsg(const UpdateMsg& other)
    • refinitiv::ema::access::StatusMsg::StatusMsg(const StatusMsg& other)

    Then keep the clone copy and you can parse this copied message like a normal EMA message object.

    Please check mode detail on the EMA C++ Reference Manual Guide document under EMA C++ Development Guide page.

    Note: The clone feature is available on the RTDK version 1.3.1 (EMA Java/C++ version 3.3.1) and above only.