]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliShuttleInterface.h
added GRP preprocessor
[u/mrichter/AliRoot.git] / STEER / AliShuttleInterface.h
1 #ifndef ALI_SHUTTLE_INTERFACE_H
2 #define ALI_SHUTTLE_INTERFACE_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 // abstract interface class to AliShuttle
11 //
12
13 #include <TObject.h>
14
15 class TList;
16 class AliCDBMetaData;
17 class AliPreprocessor;
18 class AliCDBPath;
19
20 class AliShuttleInterface : public TObject
21 {
22   public:
23     enum System { kDAQ = 0, kDCS, kHLT };
24     enum { kNDetectors = 18 }; // number of subdetectors in ALICE
25
26     virtual UInt_t Store(const AliCDBPath& path, TObject* object, AliCDBMetaData* metaData,
27                                 Int_t validityStart = 0, Bool_t validityInfinite = kFALSE) = 0;
28     virtual UInt_t StoreReferenceData(const AliCDBPath& path, TObject* object, AliCDBMetaData* metaData) = 0;
29     virtual const char* GetFile(Int_t system, const char* detector, const char* id, const char* source) = 0;
30     virtual TList* GetFileSources(Int_t system, const char* detector, const char* id) = 0;
31     virtual const char* GetRunParameter(const char* lbEntry) = 0;
32     virtual void Log(const char* detector, const char* message) = 0;
33
34     virtual void RegisterPreprocessor(AliPreprocessor* preprocessor) = 0;
35
36     static const char* GetSystemName(UInt_t system) {return (system < 3) ? fkSystemNames[system] : 0;}
37
38     static const char* GetOfflineDetName(const char* detName);
39     static const char* GetDetName(UInt_t detPos);
40     static const Int_t GetDetPos(const char* detName);
41     static const UInt_t NDetectors() {return kNDetectors;}
42
43   protected:
44     static const char* fkSystemNames[3];                // names of the systems providing data to the shuttle
45     static const char* fgkDetName[kNDetectors];         //! names of detectors' preprocessors (3-letter code convention)
46     static const char* fgkOfflineDetName[kNDetectors];  //! names of detectors in OCDB (AliRoot naming convention)
47
48   private:
49     ClassDef(AliShuttleInterface, 0);
50 };
51
52 #endif