LCOV - code coverage report
Current view: top level - HLT/TPCLib - AliHLTTPCLog.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 2 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 2 0.0 %

          Line data    Source code
       1             : // @(#) $Id$
       2             : // Original: AliHLTLog.h,v 1.2 2004/06/11 16:06:33 loizides Exp $
       3             : 
       4             : //* This file is property of and copyright by the ALICE HLT Project        * 
       5             : //* ALICE Experiment at CERN, All rights reserved.                         *
       6             : //* See cxx source for full Copyright notice                               *
       7             : 
       8             : #ifndef ALIHLTTPCLOG_H
       9             : #define ALIHLTTPCLOG_H
      10             : 
      11             : #include <sstream>
      12             : #include <iostream>
      13             : #include "AliHLTLogging.h"
      14             : 
      15             : using namespace std;
      16             : 
      17             : /** key to indicate the origin part */
      18             : #define AliHLTTPCLogKeyOrigin  "__origin"
      19             : /** key to indicate the keyword part */
      20             : #define AliHLTTPCLogKeyKeyword "__key" 
      21             : /** key to indicate the message part */
      22             : #define AliHLTTPCLogKeyMessage "__message"
      23             : 
      24             : /**
      25             :  * @class AliHLTTPCLog
      26             :  * This class implements the old HLT TPC logging mechanism.
      27             :  * Logging messages are now forwarded to the HLT logging system
      28             :  * \em Note: the old LOG and ENDLOG macros should be used any longer,
      29             :  * use the HLT logging macros or AliRoot logging macros instead. 
      30             :  * @see AliHLTLogging
      31             :  *
      32             :  * @ingroup alihlt_tpc
      33             :  */
      34             : class AliHLTTPCLog  {
      35             :   public:
      36             :   enum TLogLevel { kNone = 0, kBenchmark=0x01,kDebug= 0x02, kInformational = 0x04, kWarning = 0x08, kError = 0x10 , kFatal = 0x20, kPrimary = 0x80, kAll = 0xBF };
      37             : 
      38             :  private:
      39             :   /** not used */
      40             :   static const char* kEnd;                                         //! transient
      41             :   /** not used */
      42             :   static const char* kPrec;                                        //! transient
      43             :  public:
      44             :   /** stream manipulator for hex output, but empty in the implementation */
      45             :   static const char* kHex;                                         //! transient
      46             :   /** stream manipulator for decimal output, but empty in the implementation */
      47             :   static const char* kDec;                                         //! transient
      48             : 
      49             :   /**
      50             :    * Flush the stringstream and print output to the HLT logging system.
      51             :    * The attributes are set before the message is streamed into the
      52             :    * stringstream.<br>
      53             :    * The LOG macro sets the attributes from the macro arguments and provides
      54             :    * the stringstream.<br>
      55             :    * The ENDLOG macro calls the Flush method after the message was streamed
      56             :    * into the stringstream.
      57             :    */
      58             :   static const char* Flush();
      59             : 
      60             :   /**
      61             :    * Get the stream.
      62             :    */
      63           0 :   static stringstream& GetStream() {return fgStream;}
      64             : 
      65             :   /**
      66             :    * Get the logging level.
      67             :    */
      68           0 :   static TLogLevel GetLevel() {return fgLevel;}
      69             : 
      70             :  private:
      71             :   /** a stringstream to receive the output */
      72             :   static stringstream fgStream;                                    // see above
      73             : 
      74             :   /** the logging filter */
      75             :   static TLogLevel fgLevel;                                        // see above
      76             : 
      77             :   /** HLT logging instance */
      78             :   static AliHLTLogging fgHLTLogging;                               // see above
      79             : 
      80             :   /** copy constructor prohibited */
      81             :   AliHLTTPCLog(const AliHLTTPCLog&);
      82             :   /** assignment operator prohibited */
      83             :   AliHLTTPCLog& operator=(const AliHLTTPCLog&);
      84             : 
      85             : };
      86             : 
      87             : /** LOG macro to be used by the TPC code 
      88             :  * \em Note: this macro should be used any longer 
      89             :  */
      90             : #define LOG( lvl, origin, keyword ) \
      91             :   if (lvl>=AliHLTTPCLog::GetLevel()) AliHLTTPCLog::GetStream() << lvl  \
      92             :                            << " " << AliHLTTPCLogKeyOrigin  << " " << origin \
      93             :                            << " " << AliHLTTPCLogKeyKeyword << " " << keyword \
      94             :                            << " " << AliHLTTPCLogKeyMessage << " "
      95             : 
      96             : /** ENDLOG macro calls the Flush method 
      97             :  * \em Note: this macro should be used any longer 
      98             :  */
      99             : #define ENDLOG AliHLTTPCLog::Flush()
     100             : 
     101             : #endif /* ALIHLTTPCLOG_H */

Generated by: LCOV version 1.11