EMA C++ Developers Guide : 3 OMM Containers and Messages : 3.3 Working with OMM Containers : 3.3.6 Example: Extracting FieldList information using a Downcast Operation
 
3.3.6 Example: Extracting FieldList information using a Downcast Operation
The following example illustrates how to extract information from a FieldList object using the down-cast operation.
 
 
void AppClient::decodeFieldList( const FieldList& fl )
{
if ( fl.hasInfo() )
cout << "FieldListNum: " << fl.getInfoFieldListNum() << " DictionaryId: " << fl
fl.getInfoDictionaryId() << endl;
 
while ( fl.forth() )
}
cout << "Load" << endl;
decode( fl.getEntry().getLoad() );
}
}
 
void AppClient::decode( const Data& data )
{
if ( data.getCode() == Data::BlankEnum )
cout << "Blank data" << endl;
else
switch ( data.getDataType() )
{
case DataType::RefreshMsgEnum :
decodeRefreshMsg( static_cast<const RefreshMsg&>( data ) );
break;
case DataType::UpdateMsgEnum :
decodeUpdateMsg( static_cast<const UpdateMsg&>( data ) );
break;
case DataType::FieldListEnum :
decodeFieldList( static_cast<const FieldList&>( data ) );
break;
case DataType::MapEnum :
decodeMap( static_cast<const Map&>( data ) );
break;
case DataType::NoDataEnum :
cout << "NoData" << endl;
break;
case DataType::TimeEnum :
cout << "OmmTime: " << static_cast<const OmmTime&>( data ).toString() << endl;
break;
case DataType::DateEnum :
cout << "OmmDate: " << static_cast<const OmmDate&>( data ).toString() << endl;
break;
case DataType::RealEnum :
cout << "OmmReal::getAsDouble: " << static_cast<const OmmReal&>( data
).getAsDouble() << endl;
break;
case DataType::IntEnum :
cout << "OmmInt: " << static_cast<const OmmInt&>( data ).getInt() << endl;
break;
case DataType::UIntEnum :
cout << "OmmUInt: " << static_cast<const OmmUInt&>( data ).getUInt() << endl;
break;
case DataType::EnumEnum :
cout << "OmmEnum: " << static_cast<const OmmEnum&>( data ).getEnum() << endl;
break;
case DataType::AsciiEnum :
cout << "OmmAscii: " << static_cast<const OmmAscii&>( data ).toString() << endl;
break;
case DataType::ErrorEnum :
cout << "Decoding error: " << static_cast<const OmmError&>( data
).getErrorCodeAsString() << endl;
break;
default :
break;
}
}