Missing types while upgrading RFA C++ API from 7.4.0.L1 to 8.2.2.L1

Hi,

I am starting to study the impact in my application of upgrading RFA C++ API from 7.4.0.L1 to 8.2.2.L1

When switching to 8.2.2.L1 and trying to compile, it seems that some definitions are now missing:

[Error] Libs/libKRT/Utils.c:256:46: error: 'EntitlementsAuthenticationStatus' in namespace 'RFASes' does not name a type
[Error] Libs/libKRT/Utils.c:256:89: error: ISO C++ forbids declaration of 'status' with no type [-fpermissive]
[Error] Libs/libKRT/Utils.c:256:46: error: 'EntitlementsAuthenticationStatus' in namespace 'RFASes' does not name a type
[Error] Libs/libKRT/Utils.c:256:89: error: ISO C++ forbids declaration of 'status' with no type [-fpermissive]
[Error] Libs/libKRT/Utils.c:273:17: error: request for member 'getStatusCode' in 'status', which is of non-class type 'const int'
[Error] Libs/libKRT/Utils.c:275:15: error: 'RFASes::EntitlementsAuthenticationStatus' has not been declared
[Error] Libs/libKRT/Utils.c:276:15: error: 'RFASes::EntitlementsAuthenticationStatus' has not been declared
[Error] Libs/libKRT/Utils.c:277:15: error: 'RFASes::EntitlementsAuthenticationStatus' has not been declared
[Error] Libs/libKRT/Utils.c:278:15: error: 'RFASes::EntitlementsAuthenticationStatus' has not been declared
[Error] Libs/libKRT/Utils.c:279:15: error: 'RFASes::EntitlementsAuthenticationStatus' has not been declared

Are their any deprecated definitions (types/functions)? If yes, is there a guide helping for upgrading?

Thank you

Regards

Philippe




Best Answer

  • @philippe.mesmeur

    Thank you for reaching out to us.

    I checked and found that the EntitlementsAuthenticationStatus class is used by the legacy RFA market data interface. It is not available in the RFA OMM interface. RFA 8.x only supports the OMM interface.

    I think it is similar to the StarterConsumer::sendLoginRequest() and StarterConsumer::processLoginResponse() methods in the StarterConsumer example.

    void StarterConsumer::processRespMsg(const rfa::sessionLayer::OMMItemEvent& event, const RespMsg& respMsg)
    {
        switch(respMsg.getMsgModelType())
        {
            case MMT_LOGIN:
                processLoginResponse(event, respMsg);
                break;
            case MMT_MARKET_PRICE:
                processMarketPriceResponse(event, respMsg);
                break;
            default:
                AppUtil::log(__LINE__, AppUtil::WARN, "<- Received unhandled OMMItemEvent msgModelType: %u", (UInt32)respMsg.getMsgModelType());
                break;
        }
    }


    void StarterConsumer::processLoginResponse(const rfa::sessionLayer::OMMItemEvent& event, const RespMsg& respMsg)
    {
        const RespStatus& status = respMsg.getRespStatus();
        RFA_String text = OMMStrings::respStatusToString(status);

    However, if the current application is using the legacy RFA market data interface, it is better to use the new Refinitiv Real-Time SDKs (EMA) instead.

    Moreover, if you are a RDC (Refinitiv Developer Connect) named user, you can contact the API support team directly via Contact Premium Support for more information.