FieldList C++ SDK

Hi ,

Is it possible to test for the existence of a particular field and extract only that item or is

it necessary to always iterate through the whole field list?


Thanks

Best Answer

  • Hi @epfeuffer

    You can also refer to the 121__MarketPrice__FieldListSearchByName example which you may find a bit more helpful.

    while ( fl.forth( "BID" ) )    // look for a fid with matching name
            cout << "Fid: " << fl.getEntry().getFieldId() << " Name: " << fl.getEntry().getName() << " value: " << fl.getEntry().getLoad().toString() << endl;

    In the snippet above, we are checking for the existence of the BID field.

    You should be able to use a FieldName or a FieldID e.g. 22 for BID.

    If you want to find multiple Fields, you can pass in an ElementList of field IDs too as demonstrated in example 260__MarketPrice__FieldListSearchByList

    ElementList searchList;
        // specify the set of fids to search for; use fid #s
        searchList.addArray( "", OmmArray().addInt( 3 ).addInt( 15 ).addInt( 21 ).addInt( 22 ).addInt( 25 ).complete() ).complete();

        while ( fl.forth( searchList ) )        // search for a set of matching fids
        {
            const FieldEntry& fe = fl.getEntry();

    So, in the above example we are looking for a few fields including CURRENCY,HST_CLOSE, BID etc.

Answers

  • Hi @epfeuffer, OMM Field list object behaves like field list in other languages like Python and Java and does not allow map like access to key/value pairs.

    Please see an example 120__MarketPrice__FieldListWalk from EMA consumer samples on how to use this iteration.

  • Hi @epfeuffer

    I forgot to mention, if you are not already doing so, I would recommend you use a View request to ask the server to filter out unnecessary Fields that you are not interested. This should further reduce the amount of fields you need to process - in terms of searching through / iterating through.

    Consumer Example 360 demonstrates how to make View requests.