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

/home/orenmnero/autobuild/quickfix/src/C++/MessageCracker.h

Go to the documentation of this file.
00001 /* -*- C++ -*- */
00002 
00003 /****************************************************************************
00004 ** Copyright (c) quickfixengine.org  All rights reserved.
00005 **
00006 ** This file is part of the QuickFIX FIX Engine
00007 **
00008 ** This file may be distributed under the terms of the quickfixengine.org
00009 ** license as defined by quickfixengine.org and appearing in the file
00010 ** LICENSE included in the packaging of this file.
00011 **
00012 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00013 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00014 **
00015 ** See http://www.quickfixengine.org/LICENSE for licensing information.
00016 **
00017 ** Contact ask@quickfixengine.org if any conditions of this licensing are
00018 ** not clear to you.
00019 **
00020 ****************************************************************************/
00021 
00022 #ifndef FIX_MESSAGECRACKER_H
00023 #define FIX_MESSAGECRACKER_H
00024 
00025 #include "fix40/MessageCracker.h"
00026 #include "fix41/MessageCracker.h"
00027 #include "fix42/MessageCracker.h"
00028 #include "fix43/MessageCracker.h"
00029 #include "fix44/MessageCracker.h"
00030 #include "Values.h"
00031 
00032 namespace FIX
00033 {
00037 class MessageCracker
00038       : public FIX40::MessageCracker,
00039       public FIX41::MessageCracker,
00040       public FIX42::MessageCracker,
00041       public FIX43::MessageCracker,
00042       public FIX44::MessageCracker
00043 {
00044 public:
00045   void crack( const Message& message,
00046               const SessionID& sessionID )
00047   {
00048     FIX::BeginString beginString;
00049     message.getHeader().getField( beginString );
00050     if ( beginString == BeginString_FIX40 )
00051     {
00052       ( ( FIX40::MessageCracker& ) ( *this ) )
00053       .crack( ( const FIX40::Message& ) message, sessionID );
00054     }
00055     else if ( beginString == BeginString_FIX41 )
00056     {
00057       ( ( FIX41::MessageCracker& ) ( *this ) )
00058       .crack( ( const FIX41::Message& ) message, sessionID );
00059     }
00060     else if ( beginString == BeginString_FIX42 )
00061     {
00062       ( ( FIX42::MessageCracker& ) ( *this ) )
00063       .crack( ( const FIX42::Message& ) message, sessionID );
00064     }
00065     else if ( beginString == BeginString_FIX43 )
00066     {
00067       ( ( FIX43::MessageCracker& ) ( *this ) )
00068       .crack( ( const FIX43::Message& ) message, sessionID );
00069     }
00070     else if ( beginString == BeginString_FIX44 )
00071     {
00072       ( ( FIX44::MessageCracker& ) ( *this ) )
00073       .crack( ( const FIX44::Message& ) message, sessionID );
00074     }
00075   }
00076 
00077   void crack( Message& message,
00078               const SessionID& sessionID )
00079   {
00080     FIX::BeginString beginString;
00081     message.getHeader().getField( beginString );
00082     if ( beginString == BeginString_FIX40 )
00083     {
00084       ( ( FIX40::MessageCracker& ) ( *this ) )
00085       .crack( ( FIX40::Message& ) message, sessionID );
00086     }
00087     else if ( beginString == BeginString_FIX41 )
00088     {
00089       ( ( FIX41::MessageCracker& ) ( *this ) )
00090       .crack( ( FIX41::Message& ) message, sessionID );
00091     }
00092     else if ( beginString == BeginString_FIX42 )
00093     {
00094       ( ( FIX42::MessageCracker& ) ( *this ) )
00095       .crack( ( FIX42::Message& ) message, sessionID );
00096     }
00097     else if ( beginString == BeginString_FIX43 )
00098     {
00099       ( ( FIX43::MessageCracker& ) ( *this ) )
00100       .crack( ( FIX43::Message& ) message, sessionID );
00101     }
00102     else if ( beginString == BeginString_FIX44 )
00103     {
00104       ( ( FIX44::MessageCracker& ) ( *this ) )
00105       .crack( ( FIX44::Message& ) message, sessionID );
00106     }
00107   }
00108 };
00109 }
00110 
00111 #endif //FIX_MESSAGECRACKER_H

Generated on Mon Jul 24 19:36:29 2006 for QuickFIX by doxygen 1.3.6-20040222 written by Dimitri van Heesch, © 1997-2001