ROOT logo
#ifndef ALIMUONLOGGER_H
#define ALIMUONLOGGER_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup core
/// \class AliMUONLogger
/// \brief A logger that keeps track of the number of times a message appeared
/// 
//  Author Laurent Aphecetche

#include <Riostream.h>

#ifndef ROOT_TObject
#  include "TObject.h"
#endif

#ifndef ROOT_TString
#  include "TString.h"
#endif

class AliMUONStringIntMap;

using std::ofstream;

class AliMUONLogger : public TObject
{
public:
  AliMUONLogger(Int_t maxNumberOfEntries=-1);
  virtual ~AliMUONLogger();
  
  Int_t  Log(const char* message);
  
  void   Print(Option_t* opt="") const;
  
  void   Print(TString& key, ofstream& out) const;
  
  void   Clear(Option_t* /*option*/ ="");
  
  Bool_t Next(TString& msg, Int_t& occurance);
  
  void   ResetItr();
  
  Int_t NumberOfEntries() const;
  
private:
  /// Not implemented
  AliMUONLogger(const AliMUONLogger& rhs); // not implemented
  /// Not implemented
  AliMUONLogger& operator=(const AliMUONLogger& rhs); // not implemented
  
private:
  
  Int_t fMaxNumberOfEntries; //!< after this number, print and reset
  AliMUONStringIntMap* fLog; //!< map from message to number of times the message was issued
  
  ClassDef(AliMUONLogger,1) // A logger that keeps track of the number of times a message appeared
};

#endif
 AliMUONLogger.h:1
 AliMUONLogger.h:2
 AliMUONLogger.h:3
 AliMUONLogger.h:4
 AliMUONLogger.h:5
 AliMUONLogger.h:6
 AliMUONLogger.h:7
 AliMUONLogger.h:8
 AliMUONLogger.h:9
 AliMUONLogger.h:10
 AliMUONLogger.h:11
 AliMUONLogger.h:12
 AliMUONLogger.h:13
 AliMUONLogger.h:14
 AliMUONLogger.h:15
 AliMUONLogger.h:16
 AliMUONLogger.h:17
 AliMUONLogger.h:18
 AliMUONLogger.h:19
 AliMUONLogger.h:20
 AliMUONLogger.h:21
 AliMUONLogger.h:22
 AliMUONLogger.h:23
 AliMUONLogger.h:24
 AliMUONLogger.h:25
 AliMUONLogger.h:26
 AliMUONLogger.h:27
 AliMUONLogger.h:28
 AliMUONLogger.h:29
 AliMUONLogger.h:30
 AliMUONLogger.h:31
 AliMUONLogger.h:32
 AliMUONLogger.h:33
 AliMUONLogger.h:34
 AliMUONLogger.h:35
 AliMUONLogger.h:36
 AliMUONLogger.h:37
 AliMUONLogger.h:38
 AliMUONLogger.h:39
 AliMUONLogger.h:40
 AliMUONLogger.h:41
 AliMUONLogger.h:42
 AliMUONLogger.h:43
 AliMUONLogger.h:44
 AliMUONLogger.h:45
 AliMUONLogger.h:46
 AliMUONLogger.h:47
 AliMUONLogger.h:48
 AliMUONLogger.h:49
 AliMUONLogger.h:50
 AliMUONLogger.h:51
 AliMUONLogger.h:52
 AliMUONLogger.h:53
 AliMUONLogger.h:54
 AliMUONLogger.h:55
 AliMUONLogger.h:56
 AliMUONLogger.h:57
 AliMUONLogger.h:58
 AliMUONLogger.h:59
 AliMUONLogger.h:60
 AliMUONLogger.h:61
 AliMUONLogger.h:62
 AliMUONLogger.h:63