X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=SHUTTLE%2FAliShuttleTrigger.h;h=e79f43251a71503b222b9b004e9ce20e7d693d1d;hb=dd3e5e61c64dadc9a2d3d72f6337d0a396b8e1b7;hp=7d88b6c1e6b7d7d975fdf01bdb07bd82316cadb2;hpb=b948db8dbd3b42d537e958bfbe63897a28569f65;p=u%2Fmrichter%2FAliRoot.git diff --git a/SHUTTLE/AliShuttleTrigger.h b/SHUTTLE/AliShuttleTrigger.h index 7d88b6c1e6b..e79f43251a7 100644 --- a/SHUTTLE/AliShuttleTrigger.h +++ b/SHUTTLE/AliShuttleTrigger.h @@ -9,6 +9,7 @@ // // This class is to deal with DAQ LogBook and DAQ end run notification. // It executes AliShuttle for retrieval of conditions data. +// For more info see AliShuttleTrigger.cxx // #include @@ -17,7 +18,6 @@ #include -class AliCDBStorage; class AliShuttle; class AliShuttleConfig; @@ -26,66 +26,59 @@ class DATENotifier; class TerminateSignalHandler: public TSignalHandler { - AliShuttleTrigger* fTrigger; public: + TerminateSignalHandler(): TSignalHandler((ESignals) 0,0), fTrigger(0) { } TerminateSignalHandler(AliShuttleTrigger* trigger, ESignals signal): - TSignalHandler(signal, kFALSE), fTrigger(trigger) {} + TSignalHandler(signal, kFALSE), fTrigger(trigger) {} + virtual ~TerminateSignalHandler() { } virtual Bool_t Notify(); +private: + TerminateSignalHandler(const TerminateSignalHandler& other); + TerminateSignalHandler& operator= (const TerminateSignalHandler& other); + + AliShuttleTrigger* fTrigger; // pointer to the current AliShuttleTrigger + ClassDef(TerminateSignalHandler, 0) }; class AliShuttleTrigger: public TObject { + public: - AliShuttleTrigger(const AliShuttleConfig* config, UInt_t timeout = 5000, Int_t retries = 5); + AliShuttleTrigger(const AliShuttleConfig* config); ~AliShuttleTrigger(); AliShuttle* GetShuttle() {return fShuttle;} - Bool_t Collect(Int_t run); - Bool_t CollectNew(); - Bool_t CollectAll(); - + Bool_t Collect(Int_t run = -1); + virtual Bool_t Notify(); void Terminate(); void Run(); private: + AliShuttleTrigger(const AliShuttleTrigger& other); + AliShuttleTrigger& operator= (const AliShuttleTrigger& other); - class DATEEntry: public TObject { - Int_t fRun; - UInt_t fStartTime; - UInt_t fEndTime; - public: - DATEEntry(Int_t run, UInt_t startTime, UInt_t endTime): - fRun(run), fStartTime(startTime), fEndTime(endTime) {} - - Int_t GetRun() {return fRun;} - UInt_t GetStartTime() {return fStartTime;} - UInt_t GetEndTime() {return fEndTime;} - - ClassDef(DATEEntry, 0) - }; - - Bool_t RetrieveDATEEntries(const char* whereClause, TObjArray& entries, - Int_t& lastRun); - Bool_t RetrieveConditionsData(const TObjArray& dateEntries); + Bool_t SendMailDiskSpace(Short_t percentage); + void CheckTerminate(); const AliShuttleConfig* fConfig; - //AliCDBStorage* fLocalStorage; - AliShuttle* fShuttle; + AliShuttle* fShuttle; // Pointer to the actual Shuttle instance + + Bool_t fNotified; // Notified flag + Bool_t fTerminate; // Terminate flag - Bool_t fNotified; - Bool_t fTerminate; + TMutex fMutex; // Mutex + TCondition fCondition; // Condition - TMutex fMutex; - TCondition fCondition; + TerminateSignalHandler* fQuitSignalHandler; // Quit signal + TerminateSignalHandler* fInterruptSignalHandler; // Interrupt signal - TerminateSignalHandler fQuitSignalHandler; - TerminateSignalHandler fInterruptSignalHandler; + time_t fLastMailDiskSpace; // timestamp when the last mail was sent ClassDef(AliShuttleTrigger, 0)