Index  Source Files  Annotated Class List  Alphabetical Class List  Class Hierarchy  Graphical Class Hierarchy 

FIX::MessageCracker Class Reference

Takes in a generic Message and produces an object that represents its specific version and message type. More...

#include <MessageCracker.h>

List of all members.

Public Member Functions

void crack (const Message &message, const SessionID &sessionID)
void crack (const Message &message, const SessionID &sessionID, const BeginString &beginString)
void crack (Message &message, const SessionID &sessionID)
void crack (Message &message, const SessionID &sessionID, const BeginString &beginString)

Detailed Description

Takes in a generic Message and produces an object that represents its specific version and message type.

Definition at line 40 of file MessageCracker.h.


Member Function Documentation

void FIX::MessageCracker::crack ( Message message,
const SessionID sessionID,
const BeginString &  beginString 
) [inline]

Definition at line 109 of file MessageCracker.h.

References FIX::FIELD::ApplVerID, FIX::BeginString_FIX40, FIX::BeginString_FIX41, FIX::BeginString_FIX42, FIX::BeginString_FIX43, FIX::BeginString_FIX44, FIX::BeginString_FIX50, FIX::BeginString_FIXT11, crack(), FIX::FieldMap::getField(), FIX::Message::getHeader(), FIX::Session::getSenderDefaultApplVerID(), FIX::Message::isAdmin(), FIX::FieldMap::isSetField(), FIX::Session::lookupSession(), and FIX::Message::toBeginString().

00112   {
00113     if ( beginString == BeginString_FIX40 )
00114       ((FIX40::MessageCracker&)(*this)).crack((const FIX40::Message&) message, sessionID);
00115     else if ( beginString == BeginString_FIX41 )
00116       ((FIX41::MessageCracker&)(*this)).crack((const FIX41::Message&) message, sessionID);
00117     else if ( beginString == BeginString_FIX42 )
00118       ((FIX42::MessageCracker&)(*this)).crack((const FIX42::Message&) message, sessionID);
00119     else if ( beginString == BeginString_FIX43 )
00120       ((FIX43::MessageCracker&)(*this)).crack((const FIX43::Message&) message, sessionID);
00121     else if ( beginString == BeginString_FIX44 )
00122       ((FIX44::MessageCracker&)(*this)).crack((const FIX44::Message&) message, sessionID);
00123     else if ( beginString == BeginString_FIX50 )
00124       ((FIX50::MessageCracker&)(*this)).crack((const FIX50::Message&) message, sessionID);
00125     else if ( beginString == BeginString_FIXT11 )
00126     {
00127       if( message.isAdmin() )
00128       {
00129         ((FIXT11::MessageCracker&)(*this)).crack((const FIXT11::Message&) message, sessionID);
00130       }
00131       else
00132       {
00133         ApplVerID applVerID;
00134         if(!message.getHeader().isSetField(applVerID))
00135         {
00136           Session* pSession = Session::lookupSession( sessionID );
00137           applVerID = pSession->getSenderDefaultApplVerID();
00138         }
00139         else
00140         {
00141           message.getHeader().getField( applVerID );
00142         }
00143 
00144         crack( message, sessionID, Message::toBeginString(applVerID) );
00145       }
00146     }
00147   }

void FIX::MessageCracker::crack ( Message message,
const SessionID sessionID 
) [inline]

Definition at line 100 of file MessageCracker.h.

References FIX::FIELD::BeginString, crack(), FIELD_GET_REF, and FIX::Message::getHeader().

00102   {
00103     const FIX::BeginString& beginString = 
00104       FIELD_GET_REF( message.getHeader(), BeginString );
00105 
00106     crack( message, sessionID, beginString );
00107   }

void FIX::MessageCracker::crack ( const Message message,
const SessionID sessionID,
const BeginString &  beginString 
) [inline]

Definition at line 60 of file MessageCracker.h.

References FIX::FIELD::ApplVerID, FIX::BeginString_FIX40, FIX::BeginString_FIX41, FIX::BeginString_FIX42, FIX::BeginString_FIX43, FIX::BeginString_FIX44, FIX::BeginString_FIX50, FIX::BeginString_FIXT11, crack(), FIX::FieldMap::getField(), FIX::Message::getHeader(), FIX::Session::getSenderDefaultApplVerID(), FIX::Message::isAdmin(), FIX::FieldMap::isSetField(), FIX::Session::lookupSession(), and FIX::Message::toBeginString().

00063   {
00064     if ( beginString == BeginString_FIX40 )
00065       ((FIX40::MessageCracker&)(*this)).crack((const FIX40::Message&) message, sessionID);
00066     else if ( beginString == BeginString_FIX41 )
00067       ((FIX41::MessageCracker&)(*this)).crack((const FIX41::Message&) message, sessionID);
00068     else if ( beginString == BeginString_FIX42 )
00069       ((FIX42::MessageCracker&)(*this)).crack((const FIX42::Message&) message, sessionID);
00070     else if ( beginString == BeginString_FIX43 )
00071       ((FIX43::MessageCracker&)(*this)).crack((const FIX43::Message&) message, sessionID);
00072     else if ( beginString == BeginString_FIX44 )
00073       ((FIX44::MessageCracker&)(*this)).crack((const FIX44::Message&) message, sessionID);
00074     else if ( beginString == BeginString_FIX50 )
00075       ((FIX50::MessageCracker&)(*this)).crack((const FIX50::Message&) message, sessionID);
00076     else if ( beginString == BeginString_FIXT11 )
00077     {
00078       if( message.isAdmin() )
00079       {
00080         ((FIXT11::MessageCracker&)(*this)).crack((const FIXT11::Message&) message, sessionID);
00081       }
00082       else
00083       {
00084         ApplVerID applVerID;
00085         if(!message.getHeader().isSetField(applVerID))
00086         {
00087           Session* pSession = Session::lookupSession( sessionID );
00088           applVerID = pSession->getSenderDefaultApplVerID();
00089         }
00090         else
00091         {
00092           message.getHeader().getField( applVerID );
00093         }
00094 
00095         crack( message, sessionID, Message::toBeginString(applVerID) );
00096       }
00097     }
00098   }

void FIX::MessageCracker::crack ( const Message message,
const SessionID sessionID 
) [inline]

Definition at line 51 of file MessageCracker.h.

References FIX::FIELD::BeginString, FIELD_GET_REF, and FIX::Message::getHeader().

Referenced by crack().

00053   {
00054     const FIX::BeginString& beginString = 
00055       FIELD_GET_REF( message.getHeader(), BeginString );
00056 
00057     crack( message, sessionID, beginString );
00058   }


The documentation for this class was generated from the following file:

Generated on Mon Apr 5 21:00:08 2010 for QuickFIX by doxygen 1.6.1 written by Dimitri van Heesch, © 1997-2001