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

Log.cpp

Go to the documentation of this file.
00001 /****************************************************************************
00002 ** Copyright (c) quickfixengine.org  All rights reserved.
00003 **
00004 ** This file is part of the QuickFIX FIX Engine
00005 **
00006 ** This file may be distributed under the terms of the quickfixengine.org
00007 ** license as defined by quickfixengine.org and appearing in the file
00008 ** LICENSE included in the packaging of this file.
00009 **
00010 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00011 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00012 **
00013 ** See http://www.quickfixengine.org/LICENSE for licensing information.
00014 **
00015 ** Contact ask@quickfixengine.org if any conditions of this licensing are
00016 ** not clear to you.
00017 **
00018 ****************************************************************************/
00019 
00020 #ifdef _MSC_VER
00021 #include "stdafx.h"
00022 #else
00023 #include "config.h"
00024 #endif
00025 #include "CallStack.h"
00026 
00027 #include "Log.h"
00028 
00029 namespace FIX
00030 {
00031 Mutex ScreenLog::s_mutex;
00032 
00033 Log* ScreenLogFactory::create()
00034 { QF_STACK_PUSH(ScreenLogFactory::create)
00035 
00036   bool incoming, outgoing, event;
00037   init( m_settings.get(), incoming, outgoing, event );
00038   return new ScreenLog( incoming, outgoing, event );
00039 
00040   QF_STACK_POP
00041 }
00042 
00043 Log* ScreenLogFactory::create( const SessionID& sessionID )
00044 { QF_STACK_PUSH(ScreenLogFactory::create)
00045 
00046   Dictionary settings;
00047   if( m_settings.has(sessionID) ) 
00048           settings = m_settings.get( sessionID );
00049 
00050   bool incoming, outgoing, event;
00051   init( settings, incoming, outgoing, event );
00052   return new ScreenLog( sessionID, incoming, outgoing, event );
00053 
00054   QF_STACK_POP
00055 }
00056 
00057 void ScreenLogFactory::init( const Dictionary& settings, bool& incoming, bool& outgoing, bool& event )
00058 { QF_STACK_PUSH(ScreenLogFactory::init)
00059         
00060   if( m_useSettings )
00061   {
00062     incoming = true;
00063     outgoing = true;
00064     event = true;
00065 
00066     if( settings.has(SCREEN_LOG_SHOW_INCOMING) )
00067       incoming = settings.getBool(SCREEN_LOG_SHOW_INCOMING);
00068     if( settings.has(SCREEN_LOG_SHOW_OUTGOING) )
00069       outgoing = settings.getBool(SCREEN_LOG_SHOW_OUTGOING);
00070     if( settings.has(SCREEN_LOG_SHOW_EVENTS) )
00071       event = settings.getBool(SCREEN_LOG_SHOW_EVENTS);
00072   }
00073   else
00074   {
00075         incoming = m_incoming;
00076         outgoing = m_outgoing;
00077         event = m_event;
00078   }
00079 
00080   QF_STACK_POP
00081 }
00082 
00083 void ScreenLogFactory::destroy( Log* pLog )
00084 { QF_STACK_PUSH(ScreenLogFactory::destroy)
00085   delete pLog;
00086   QF_STACK_POP
00087 }
00088 } //namespace FIX

Generated on Mon Apr 5 20:59:50 2010 for QuickFIX by doxygen 1.6.1 written by Dimitri van Heesch, © 1997-2001