]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - SHUTTLE/AliShuttleTrigger.h
Moving misalignment macro to AD/macros
[u/mrichter/AliRoot.git] / SHUTTLE / AliShuttleTrigger.h
... / ...
CommitLineData
1#ifndef ALI_SHUTTLE_TRIGGER_H
2#define ALI_SHUTTLE_TRIGGER_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9//
10// This class is to deal with DAQ LogBook and DAQ end run notification.
11// It executes AliShuttle for retrieval of conditions data.
12// For more info see AliShuttleTrigger.cxx
13//
14
15#include <TObject.h>
16#include <TSysEvtHandler.h>
17#include <TMutex.h>
18#include <TCondition.h>
19
20
21class AliShuttle;
22class AliShuttleConfig;
23
24class AliShuttleTrigger;
25class DATENotifier;
26
27class TerminateSignalHandler: public TSignalHandler {
28
29public:
30 TerminateSignalHandler(): TSignalHandler((ESignals) 0,0), fTrigger(0) { }
31 TerminateSignalHandler(AliShuttleTrigger* trigger, ESignals signal):
32 TSignalHandler(signal, kFALSE), fTrigger(trigger) {}
33
34 virtual ~TerminateSignalHandler() { }
35 virtual Bool_t Notify();
36
37private:
38 TerminateSignalHandler(const TerminateSignalHandler& other);
39 TerminateSignalHandler& operator= (const TerminateSignalHandler& other);
40
41 AliShuttleTrigger* fTrigger; // pointer to the current AliShuttleTrigger
42
43 ClassDef(TerminateSignalHandler, 0)
44};
45
46class AliShuttleTrigger: public TObject {
47
48public:
49 AliShuttleTrigger(const AliShuttleConfig* config);
50 ~AliShuttleTrigger();
51
52 AliShuttle* GetShuttle() {return fShuttle;}
53
54 Bool_t Collect(Int_t run = -1);
55
56 virtual Bool_t Notify();
57 void Terminate();
58
59 void Run();
60
61private:
62 AliShuttleTrigger(const AliShuttleTrigger& other);
63 AliShuttleTrigger& operator= (const AliShuttleTrigger& other);
64
65 Bool_t SendMailDiskSpace(Short_t percentage);
66 void CheckTerminate();
67
68 const AliShuttleConfig* fConfig;
69
70 AliShuttle* fShuttle; // Pointer to the actual Shuttle instance
71
72 Bool_t fNotified; // Notified flag
73 Bool_t fTerminate; // Terminate flag
74
75 TMutex fMutex; // Mutex
76 TCondition fCondition; // Condition
77
78 TerminateSignalHandler* fQuitSignalHandler; // Quit signal
79 TerminateSignalHandler* fInterruptSignalHandler; // Interrupt signal
80
81 time_t fLastMailDiskSpace; // timestamp when the last mail was sent
82
83
84 ClassDef(AliShuttleTrigger, 0)
85};
86
87#endif