1 #ifndef ALI_SHUTTLE_TRIGGER_H
2 #define ALI_SHUTTLE_TRIGGER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
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
16 #include <TSysEvtHandler.h>
18 #include <TCondition.h>
22 class AliShuttleConfig;
24 class AliShuttleTrigger;
27 class TerminateSignalHandler: public TSignalHandler {
30 TerminateSignalHandler(): TSignalHandler((ESignals) 0,0), fTrigger(0) { }
31 TerminateSignalHandler(AliShuttleTrigger* trigger, ESignals signal):
32 TSignalHandler(signal, kFALSE), fTrigger(trigger) {}
34 virtual ~TerminateSignalHandler() { }
35 virtual Bool_t Notify();
38 TerminateSignalHandler(const TerminateSignalHandler& other);
39 TerminateSignalHandler& operator= (const TerminateSignalHandler& other);
41 AliShuttleTrigger* fTrigger; // pointer to the current AliShuttleTrigger
43 ClassDef(TerminateSignalHandler, 0)
46 class AliShuttleTrigger: public TObject {
49 AliShuttleTrigger(const AliShuttleConfig* config);
52 AliShuttle* GetShuttle() {return fShuttle;}
54 Bool_t Collect(Int_t run = -1);
56 virtual Bool_t Notify();
62 AliShuttleTrigger(const AliShuttleTrigger& other);
63 AliShuttleTrigger& operator= (const AliShuttleTrigger& other);
65 Bool_t SendMailDiskSpace(Short_t percentage);
67 const AliShuttleConfig* fConfig;
69 AliShuttle* fShuttle; // Pointer to the actual Shuttle instance
71 Bool_t fNotified; // Notified flag
72 Bool_t fTerminate; // Terminate flag
74 TMutex fMutex; // Mutex
75 TCondition fCondition; // Condition
77 TerminateSignalHandler* fQuitSignalHandler; // Quit signal
78 TerminateSignalHandler* fInterruptSignalHandler; // Interrupt signal
80 time_t fLastMailDiskSpace; // timestamp when the last mail was sent
83 ClassDef(AliShuttleTrigger, 0)