We are using RFA8/C++ is it possible to provide parameter while calling rfa::sessionLayer::Session::

We are using RFA8/C++ is it possible to provide parameter while calling rfa::sessionLayer::Session::acquire or in any other way?

Best Answer

  • Hi @mktdata,

    Not all properties are automatically configurable within the RFA configuration. The Login credentials are not available within the standard configuration definitions. However, you can easily define your own application-specific configuration properties to achieve your goals. For example, within your rfa configuration file, you can do something like this:

    \App\Login\user = "John Doe" 
    \App\Login\appid = "255"
    \App\Login\position = "127.0.0.1"

    These definitions will be included within the configuration database which you can access from code. Refer to the Examples/Consumer/ConsumerConfig.cpp for reference.

Answers

  • Hi @mktdata,

    The Session::acquire does accept a string (name) parameter but I'm thinking you are asking for something else. It would be more helpful if you were to describe what you are trying to do.

  • We have requirement to add parameter applicationKey to the data connection and make it configurable. Similar to DACS_APP_NAME that is used on dacs connections. Right now we provide session name to Session::acquire and function takes only one parameter.

  • we have Linux RFA client with custom config file, have found sample:

    ./HybridApp/RDMConsumerClient.cpp

    it uses MMT_LOGIN to send ApplicationId via rfa::message::AttribInfo

    element.setName( rfa::rdm::ENAME_APP_ID );

    RFA_String sAppId; sAppId.set( "256", 3, false );

    elementData.setFromString( sAppId, DataBuffer::StringAsciiEnum );

    element.setData( elementData );

    elwiter.bind( element );

    not sure that what we need, but will try. Thank you for your help.

  • @mktdata

    For OMM interface, there is a concept of Login interface which the application has to send a new Login request to the Provider server. It needs to set the login information in AttributeInfo so that there is no RFA configuration to support your requirement. As Nick said, you have to create a separate application's configuration to set the login information and then read the values from RFA application and pass it to the Login AttributeInfo.

    Anyway, in the new version of RFA such as 7.6.2 or 8.x, we have a simple RFA consumer example StarterConsumer which provide an application configuration in a file named "StarterConsumer.cfg". The user can set the login information in the file instead. If you want to see sample codes you can try the StarterConsumer example and see the implementation in StarterConsumer.cpp.