New version (B.Yordanov)
[u/mrichter/AliRoot.git] / SHUTTLE / AliShuttle.h
1 #ifndef ALI_SHUTTLE_H
2 #define ALI_SHUTTLE_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 //
11 // This class is the main manager for 
12 // AliShuttle. It organizes the data retrieval
13 // from DCS and call the interface methods of
14 // AliCDBPreProcessor.
15 //
16
17 #include <TObject.h>
18 #include <TMap.h>
19
20 class AliShuttleConfig;
21 class AliCDBStorage;
22 class AliCDBMetaData;
23 class AliCDBParam;
24 class AliCDBPreProcessor;
25
26 class AliShuttle: public TObject {
27 public:
28         AliShuttle(const AliShuttleConfig* config, AliCDBStorage* cdbStorage,
29                 UInt_t timeout = 5000, Int_t retries = 5);
30         virtual ~AliShuttle();
31
32         void RegisterCDBPreProcessor(AliCDBPreProcessor* processor);
33         
34         Bool_t Process(Int_t run, UInt_t startTime, UInt_t endTime);
35         Bool_t Process(Int_t run, UInt_t startTime, UInt_t endTime,
36                 const char* detector);
37
38         Int_t GetCurrentRun() const {return fCurrentRun;};
39         UInt_t GetCurrentStartTime() const {return fCurrentStartTime;};
40         UInt_t GetCurrentEndTime() const {return fCurrentEndTime;};
41
42         Bool_t Store(const char* detector, const char* detSpec,
43                         TObject* object, AliCDBMetaData* metaData);
44
45 private:
46         const AliShuttleConfig* fConfig;
47         AliCDBStorage* fStorage;
48         UInt_t fTimeout;
49         Int_t fRetries;
50         
51         TMap fPreProcessorMap;  
52
53         Int_t fCurrentRun;
54         UInt_t fCurrentStartTime;
55         UInt_t fCurrentEndTime;
56
57         Bool_t GetValueSet(const char* host, Int_t port, const char* alias,
58                         TObjArray& result);
59         
60         ClassDef(AliShuttle, 0);
61 };
62
63 #endif