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.
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;
}