]>
Commit | Line | Data |
---|---|---|
12ec5482 | 1 | //-*- Mode: C++ -*- |
2 | // @(#) $Id: AliHLTModulePreprocessor.h 23318 2008-01-14 12:43:28Z hristov $ | |
3 | ||
4 | #ifndef ALIHLTMODULEPREPROCESSOR_H | |
5 | #define ALIHLTMODULEPREPROCESSOR_H | |
6 | //* This file is property of and copyright by the ALICE HLT Project * | |
7 | //* ALICE Experiment at CERN, All rights reserved. * | |
8 | //* See cxx source for full Copyright notice * | |
9 | ||
10 | /** | |
11 | * @file AliHLTModulePreprocessor.h | |
12 | * @author Matthias Richter | |
13 | * @date 2008-01-22 | |
14 | * @brief Base class for HLT module preprocessors | |
15 | */ | |
16 | ||
17 | // see below for class documentation | |
18 | // or | |
19 | // refer to README to build package | |
20 | // or | |
21 | // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt | |
22 | ||
23 | #include "TObject.h" | |
24 | ||
25 | class AliHLTPreprocessor; | |
26 | class TMap; | |
27 | class AliCDBMetaData; | |
28 | class AliCDBEntry; | |
310c7637 | 29 | class AliHLTShuttleInterface; |
12ec5482 | 30 | |
31 | /** | |
32 | * @class AliHLTModulePreprocessor | |
33 | * Implementation of the HLT version for the Shuttle Preprocessor. | |
34 | * This class implements the same interface as the AliPreprocessor and | |
35 | * allows multiple preprocessors for the HLT. All methods are redirected | |
36 | * to the AliHLTPreprocessor, which acts as the HLT preprocessor | |
37 | * to the outside, and a container for all module preprocessors to the | |
38 | * inside. | |
39 | * | |
40 | * @author Matthias Richter | |
41 | */ | |
42 | class AliHLTModulePreprocessor : public TObject | |
43 | { | |
44 | public: | |
45 | /** Constructor*/ | |
46 | AliHLTModulePreprocessor(); | |
47 | /** Destructor */ | |
48 | virtual ~AliHLTModulePreprocessor(); | |
49 | ||
50 | /** | |
51 | * Set the container class which is the gateway to the shuttle. | |
52 | */ | |
310c7637 | 53 | void SetShuttleInterface(AliHLTShuttleInterface* pInterface); |
12ec5482 | 54 | |
55 | /** | |
56 | * Initialize the Preprocessor. | |
57 | * | |
58 | * @param run run number | |
59 | * @param startTime start time of data | |
60 | * @param endTime end time of data | |
61 | */ | |
62 | virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime) = 0; | |
63 | ||
64 | /** | |
65 | * Function to process data. Inside the preparation and storing to OCDB | |
66 | * should be handled. | |
67 | * | |
68 | * @param dcsAliasMap the map containing aliases and corresponding DCS | |
69 | * values and timestamps | |
70 | * | |
71 | * @return 0 on success; error code otherwise | |
72 | */ | |
73 | virtual UInt_t Process(TMap* dcsAliasMap) = 0; | |
74 | ||
75 | /** Get the run no */ | |
76 | Int_t GetRun(); | |
77 | ||
78 | /** Get the start time */ | |
79 | UInt_t GetStartTime(); | |
80 | ||
81 | /** Get the end time */ | |
82 | UInt_t GetEndTime(); | |
83 | ||
84 | protected: | |
85 | // the AliPreprocessor interface, all functions redirected via the | |
310c7637 | 86 | // AliHLTShuttleInterface to the AliHLTPreprocessor |
12ec5482 | 87 | Bool_t Store(const char* pathLevel2, const char* pathLevel3, TObject* object, |
88 | AliCDBMetaData* metaData, Int_t validityStart = 0, Bool_t validityInfinite = kFALSE); | |
89 | Bool_t StoreReferenceData(const char* pathLevel2, const char* pathLevel3, TObject* object, | |
90 | AliCDBMetaData* metaData); | |
91 | Bool_t StoreReferenceFile(const char* localFile, const char* gridFileName); | |
92 | ||
93 | Bool_t StoreRunMetadataFile(const char* localFile, const char* gridFileName); | |
94 | ||
95 | const char* GetFile(Int_t system, const char* id, const char* source); | |
96 | ||
97 | TList* GetFileSources(Int_t system, const char* id = 0); | |
98 | ||
99 | TList* GetFileIDs(Int_t system, const char* source); | |
100 | ||
101 | const char* GetRunParameter(const char* param); | |
102 | ||
103 | AliCDBEntry* GetFromOCDB(const char* pathLevel2, const char* pathLevel3); | |
104 | ||
105 | const char* GetRunType(); | |
106 | ||
107 | void Log(const char* message); | |
108 | ||
109 | private: | |
110 | /** copy constructor prohibited */ | |
111 | AliHLTModulePreprocessor(const AliHLTModulePreprocessor& preproc); | |
112 | /** assignment operator prohibited */ | |
113 | AliHLTModulePreprocessor& operator=(const AliHLTModulePreprocessor& rhs); | |
114 | ||
310c7637 | 115 | /** the interface class which is the gateway to the shuttle */ |
116 | AliHLTShuttleInterface* fpInterface; //! transient | |
12ec5482 | 117 | |
118 | ClassDef(AliHLTModulePreprocessor, 0); | |
119 | }; | |
12ec5482 | 120 | #endif |