]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MONITOR/AliOnlineRecoTrigger.h
Event Server can now run without GUI.
[u/mrichter/AliRoot.git] / MONITOR / AliOnlineRecoTrigger.h
1 #ifndef ALIONLINERECOTRIGGER_H
2 #define ALIONLINERECOTRIGGER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 #include <TObject.h>
8 #include <TSysEvtHandler.h>
9 #include <TMutex.h>
10 #include <TCondition.h>
11
12
13 class AliOnlineRecoTrigger;
14 class SORNotifier;
15
16 class TerminateSignalHandler: public TSignalHandler {
17         
18 public:
19         TerminateSignalHandler(): TSignalHandler((ESignals) 0,0), fTrigger(0) { }
20         TerminateSignalHandler(AliOnlineRecoTrigger* trigger, ESignals signal):
21         TSignalHandler(signal, kFALSE), fTrigger(trigger) {}
22
23         virtual ~TerminateSignalHandler() { }
24         virtual Bool_t Notify();
25
26 private:
27         TerminateSignalHandler(const TerminateSignalHandler& other);
28         TerminateSignalHandler& operator= (const TerminateSignalHandler& other);
29   
30         AliOnlineRecoTrigger* fTrigger;  // pointer to the current AliOnlineRecoTrigger
31
32         ClassDef(TerminateSignalHandler, 0)
33 };
34
35 class AliOnlineRecoTrigger: public TObject {
36
37 public:
38         AliOnlineRecoTrigger();
39         virtual ~AliOnlineRecoTrigger();
40
41         virtual Bool_t Notify();
42         void Terminate();
43
44         Int_t Run();
45
46 private:
47         AliOnlineRecoTrigger(const AliOnlineRecoTrigger& other);
48         AliOnlineRecoTrigger& operator= (const AliOnlineRecoTrigger& other);
49
50         Bool_t fNotified;               // Notified flag
51         Bool_t fTerminate;              // Terminate flag
52
53         TMutex fMutex;                  // Mutex
54         TCondition fCondition;          // Condition 
55
56         TerminateSignalHandler* fQuitSignalHandler;             // Quit signal
57         TerminateSignalHandler* fInterruptSignalHandler;        // Interrupt signal
58
59         ClassDef(AliOnlineRecoTrigger, 0)
60 };
61
62 #endif