Transition to NewIO
[u/mrichter/AliRoot.git] / PHOS / AliPHOSQAChecker.h
1 #ifndef ALIPHOSQACHECKER_H
2 #define ALIPHOSQACHECKER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //_________________________________________________________________________
9 //  Base class of a checker, to be instanciated as a task container  
10 //                  
11 //*-- Author: Yves Schutz (SUBATECH)
12
13
14 // --- ROOT system ---
15
16 class TString ; 
17 #include "TTask.h"
18
19 // --- Standard library ---
20
21 #include <assert.h>
22
23 // --- AliRoot header files ---
24
25 #include "AliPHOSQAVirtualCheckable.h"
26
27 class AliPHOSQAChecker : public TTask {
28
29 public:
30
31   AliPHOSQAChecker(){
32     fCheckablesList = 0;
33     fCheckable = 0;
34   } ;          // default ctor (not to be used)
35   AliPHOSQAChecker(const char * name, const char * title) ; // ctor
36   AliPHOSQAChecker(AliPHOSQAChecker& obj) {assert(0==1);}
37   virtual ~AliPHOSQAChecker() ; // dtor
38
39   void Alarms() { ExecuteTask("A") ; }  
40   virtual TString CheckingOperation(){ return TString(""); } // where the checking operation must be implemented
41   void CheckIt() ; 
42   void CheckIt(AliPHOSQAVirtualCheckable *ca)  ;
43   void Delete() { delete this ; } // Hara-Kiri
44   TList * GetListOfCheckables() const { return fCheckablesList ; } 
45   virtual void  Exec(Option_t *option) ;   
46   virtual void Print() ;
47   void PrintAlarms() ; 
48   void PrintAll() { ExecuteTask("P") ; } 
49   void Remove(AliPHOSQAChecker * ch) {GetListOfTasks()->Remove(ch); }  
50   void Status() ; 
51   void StatusAll() { ExecuteTask("S") ; } 
52
53   friend void AliPHOSQAVirtualCheckable::AddChecker(AliPHOSQAChecker * ch) ;
54   friend AliPHOSQAVirtualCheckable::AliPHOSQAVirtualCheckable(const char * name) ;
55
56
57  private:
58
59   void SetCheckable(AliPHOSQAVirtualCheckable * ca) { fCheckable = ca ; } 
60
61  protected:
62
63   void AddCheckable(AliPHOSQAVirtualCheckable *ca) {fCheckablesList->Add(ca) ;}
64     
65   AliPHOSQAVirtualCheckable * fCheckable ; // current checkable 
66   TList * fCheckablesList ;     // list of checkable objects to be checked 
67
68   ClassDef(AliPHOSQAChecker,1)  // description 
69
70 };
71
72 #endif // ALIPHOSQAChecker_H