![]() |
MAK RTIspy API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 2005 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: webLogger.h,v $ $Revision: 1.2 $ $State: Exp $ 00007 *******************************************************************************/ 00010 00011 #ifndef DtWebLogger_H_ 00012 #define DtWebLogger_H_ 00013 00014 #include <vlString.h> 00015 #include <vlPrint.h> 00016 00017 class DtWebLogger 00018 { 00019 public: 00020 00022 inline DtWebLogger( const DtString& logFileName = "Webspy.log" ); 00024 inline DtWebLogger( std::auto_ptr<DtPrinter> printer ); 00025 virtual inline ~DtWebLogger(); 00026 00027 protected: 00029 DtWebLogger( const DtWebLogger& ); 00030 DtWebLogger& operator=( const DtWebLogger& ); 00031 00033 virtual inline void attachFileStreams(); 00034 00036 virtual inline void detachFileStreams(); 00037 00038 protected: 00039 00040 std::auto_ptr<DtPrinter> myLogPrinter; 00041 }; 00042 00043 DtWebLogger::DtWebLogger( const DtString& logFileName ) : 00044 myLogPrinter( new DtFilePrinter( logFileName.string() )) 00045 { 00046 attachFileStreams(); 00047 } 00048 00049 DtWebLogger::DtWebLogger( std::auto_ptr<DtPrinter> printer ) : 00050 myLogPrinter( printer ) 00051 { 00052 attachFileStreams(); 00053 } 00054 00055 DtWebLogger::~DtWebLogger() 00056 { 00057 detachFileStreams(); 00058 } 00059 00060 void DtWebLogger::attachFileStreams() 00061 { 00062 DtFatal.attachPrinter(myLogPrinter.get()); 00063 DtWarn.attachPrinter(myLogPrinter.get()); 00064 DtInfo.attachPrinter(myLogPrinter.get()); 00065 DtVerbose.attachPrinter(myLogPrinter.get()); 00066 DtDebug.attachPrinter(myLogPrinter.get()); 00067 } 00068 00069 void DtWebLogger::detachFileStreams() 00070 { 00071 DtFatal.detachPrinter(myLogPrinter.get()); 00072 DtWarn.detachPrinter(myLogPrinter.get()); 00073 DtInfo.detachPrinter(myLogPrinter.get()); 00074 DtVerbose.detachPrinter(myLogPrinter.get()); 00075 DtDebug.detachPrinter(myLogPrinter.get()); 00076 } 00077 00078 00079 #endif //! DtWebLogger_H_ 00080