The message handler plug-in process function (ffh_mh_process_function) for the message handler processes a decoded FAST message by mapping it into the publisher API.
Based on the message type, use the publisher API to publish the message contents as described in steps four and five.
This notifies the FAST feed handler that it can release any resources associated with the given ffh_fast_message.
In the event of an error from the publisher API or missing or incorrect data, log the error and call the publisher’s pub_cancelMessage API.
extern "C“ int32_t process( ffh_mh_event * event ) { return (( FIXMessageHandler* ) event->info->user_data)->receiveMessage( event->info, event->message ); } int32_t FIXMessageHandler::receiveMessage( ffh_mh_info * info, ffh_fast_message * fastMsg ) { uint32_t error_code = ERR_NONE; // switch based on template id of incoming FAST message switch( fastMsg->template_id ) { case QUOTE_TEMPLATE_ID: // start creating a RDS Stock Quote message pub_beginMessage( STOCK_QUOTE_MSG, _msg_ctx ); // use Publisher API pub_setXXXField() calls // to populate its fields based on fastMsg // contents ... break; // handle other message types here case ... } if( error_code != ERR_NONE ) { // error processing the FAST message, cancel it pub_cancelMessage( _msg_ctx ); } else { // successfully processed the FAST message, // publish it error_code = pub_sendMessage( _msg_ctx ); } // release no longer needed FAST message info->release_message( info, fastMsg ); return error_code; }