question

Upvotes
Accepted
1 2 2 2

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




#technologyrfarfa-apimigration
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

· Write an Answer
Upvotes
Accepted
77k 240 52 72

@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.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.