AliFatal added in SetAlignable
[u/mrichter/AliRoot.git] / SHUTTLE / AliShuttleTrigger.h
CommitLineData
d477ad88 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.
58bc3020 12// For more info see AliShuttleTrigger.cxx
d477ad88 13//
14
15#include <TObject.h>
16#include <TSysEvtHandler.h>
17#include <TMutex.h>
18#include <TCondition.h>
19
20
d477ad88 21class AliShuttle;
22class AliShuttleConfig;
23
24class AliShuttleTrigger;
25class DATENotifier;
26
27class TerminateSignalHandler: public TSignalHandler {
28
d477ad88 29public:
58bc3020 30 TerminateSignalHandler(): TSignalHandler((ESignals) 0,0), fTrigger(0) { }
d477ad88 31 TerminateSignalHandler(AliShuttleTrigger* trigger, ESignals signal):
32 TSignalHandler(signal, kFALSE), fTrigger(trigger) {}
33
58bc3020 34 virtual ~TerminateSignalHandler() { }
d477ad88 35 virtual Bool_t Notify();
36
58bc3020 37private:
38
39 TerminateSignalHandler(const TerminateSignalHandler& other);
40 TerminateSignalHandler& operator= (const TerminateSignalHandler& other);
41
42 AliShuttleTrigger* fTrigger; // pointer to the current AliShuttleTrigger
43
d477ad88 44 ClassDef(TerminateSignalHandler, 0)
45};
46
47class AliShuttleTrigger: public TObject {
2bb7b766 48
d477ad88 49public:
b948db8d 50 AliShuttleTrigger(const AliShuttleConfig* config, UInt_t timeout = 5000, Int_t retries = 5);
d477ad88 51 ~AliShuttleTrigger();
52
53 AliShuttle* GetShuttle() {return fShuttle;}
54
55 Bool_t Collect(Int_t run);
56 Bool_t CollectNew();
57 Bool_t CollectAll();
7bfb2090 58
d477ad88 59 virtual Bool_t Notify();
60 void Terminate();
61
62 void Run();
63
64private:
58bc3020 65 AliShuttleTrigger(const AliShuttleTrigger& other);
66 AliShuttleTrigger& operator= (const AliShuttleTrigger& other);
67
d477ad88 68 const AliShuttleConfig* fConfig;
d477ad88 69
58bc3020 70 AliShuttle* fShuttle; // Pointer to the actual Shuttle instance
d477ad88 71
58bc3020 72 Bool_t fNotified; // Notified flag
73 Bool_t fTerminate; // Terminate flag
d477ad88 74
58bc3020 75 TMutex fMutex; // Mutex
76 TCondition fCondition; // Condition
d477ad88 77
58bc3020 78 TerminateSignalHandler fQuitSignalHandler; // Quit signal
79 TerminateSignalHandler fInterruptSignalHandler; // Interrupt signal
d477ad88 80
81
82 ClassDef(AliShuttleTrigger, 0)
83};
84
85#endif