This example shows the complete stub generated from the Bond History message definition in the sample RAP Messages model.
typedef enum {FALSE=0, TRUE} bool;
#define true 1
#define false 0
#include <stdint.h>
#include "publisher_api.h"
#include "publisher_errors.h"
uint16_t publish_Bond_Quote_Message();
int main( int argc, char ** argv )
{
PUB_STARTUP startup_settings;
uint16_t errorCode;
// Set the startup_settings
errorCode = pub_initialize( &startup_settings );
if( errorCode != ERR_NONE ) {
// Add error handling code.
}
errorCode = publish_Bond_Quote_Message();
if( errorCode != ERR_NONE ) {
// Add error handling code.
}
errorCode = pub_shutdown( true );
if( errorCode != ERR_NONE ) {
// Add error handling code.
}
return 0;
}
uint16_t publish_Bond_Quote_Message()
{
PUB_SEND_MESSAGE_CONTEXT ctx;
uchar * Instrument;
uint32_t Quote_Date;
int32_t Quote_Sequence_Number;
uint32_t Quote_Time_Date;
uint32_t Quote_Time_Time;
double Ask_Price;
int32_t Ask_Size;
double Bid_Price;
int32_t Bid_Size;
double Yield;
uint16_t errorCode;
// Parse your message here.
// Start a new message.
errorCode = pub_beginMessage( 8, &ctx );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Add the Instrument field to the message.
errorCode = pub_setStringField( &ctx, "Instrument", Instrument );
// errorCode = pub_setNullField( &ctx, "Instrument" );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Add the Quote Date field to the message.
errorCode = pub_setDateField( &ctx, "Quote Date", Quote_Date );
// errorCode = pub_setNullField( &ctx, "Quote Date" );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Add the Quote Sequence Number field to the message.
errorCode = pub_setInt32Field( &ctx, "Quote Sequence Number", Quote_Sequence_Number );
// errorCode = pub_setNullField( &ctx, "Quote Sequence Number" );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Add the Quote Time field to the message.
errorCode = pub_setDateTimeField( &ctx, "Quote Time", Quote_Time_Date, Quote_Time_Time );
// errorCode = pub_setNullField( &ctx, "Quote Time" );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Add the Ask Price field to the message.
errorCode = pub_setDecimalField( &ctx, "Ask Price", Ask_Price );
// errorCode = pub_setDecimalFieldFromMantissa( &ctx, "Ask Price", Ask_Price_Mantissa, Ask_Price_Exponent );
// errorCode = pub_setDecimalFieldFromString( &ctx, "Ask Price", Ask_Price_String );
// errorCode = pub_setNullField( &ctx, "Ask Price" );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Add the Ask Size field to the message.
errorCode = pub_setInt32Field( &ctx, "Ask Size", Ask_Size );
// errorCode = pub_setNullField( &ctx, "Ask Size" );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Add the Bid Price field to the message.
errorCode = pub_setDecimalField( &ctx, "Bid Price", Bid_Price );
// errorCode = pub_setDecimalFieldFromMantissa( &ctx, "Bid Price", Bid_Price_Mantissa, Bid_Price_Exponent );
// errorCode = pub_setDecimalFieldFromString( &ctx, "Bid Price", Bid_Price_String );
// errorCode = pub_setNullField( &ctx, "Bid Price" );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Add the Bid Size field to the message.
errorCode = pub_setInt32Field( &ctx, "Bid Size", Bid_Size );
// errorCode = pub_setNullField( &ctx, "Bid Size" );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Add the Yield field to the message.
errorCode = pub_setDecimalField( &ctx, "Yield", Yield );
// errorCode = pub_setDecimalFieldFromMantissa( &ctx, "Yield", Yield_Mantissa, Yield_Exponent );
// errorCode = pub_setDecimalFieldFromString( &ctx, "Yield", Yield_String );
// errorCode = pub_setNullField( &ctx, "Yield" );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
return errorCode;
}
// Send the completed message.
errorCode = pub_sendMessage( &ctx );
if( errorCode != ERR_NONE ) {
pub_cancelMessage( &ctx );
// Add error handling code.
}
return errorCode;
}