]>
Commit | Line | Data |
---|---|---|
12ec5482 | 1 | //-*- Mode: C++ -*- |
8a6d545f | 2 | // $Id: AliHLTPreprocessor.h 23318 2008-01-14 12:43:28Z hristov $ |
12ec5482 | 3 | |
4 | #ifndef ALIHLTPREPROCESSOR_H | |
5 | #define ALIHLTPREPROCESSOR_H | |
23bd5d2a | 6 | //* This file is property of and copyright by the * |
12ec5482 | 7 | //* ALICE Experiment at CERN, All rights reserved. * |
8 | //* See cxx source for full Copyright notice * | |
9 | ||
23bd5d2a | 10 | /// @file AliHLTPreprocessor.h |
11 | /// @author Matthias Richter | |
12 | /// @date 2008-01-22 | |
13 | /// @brief Container for HLT module preprocessors, acts to the outside as | |
14 | /// HLT preprocessor used by the Offline Shuttle | |
15 | /// | |
12ec5482 | 16 | |
17 | #include "TList.h" | |
18 | #include "AliPreprocessor.h" | |
310c7637 | 19 | #include "AliHLTShuttleInterface.h" |
12ec5482 | 20 | |
21 | /** | |
22 | * @class AliHLTPreprocessor | |
23 | * Implementation of the HLT version for the Shuttle Preprocessor. | |
24 | * Since HLT requires a more modular concept of the pre-processors, this | |
25 | * class acts as HLT pre-processor to the outside and container class for | |
26 | * the specific HLT module pre-processors to the inside. | |
27 | * | |
28 | * The base class for HLT module preprocessors is provided by the | |
29 | * AliHLTModulePreprocessor class, which implements the same interface as | |
30 | * the AliPreprocessor. | |
31 | * | |
32 | * The main purpose of the container class is to loop over all module | |
33 | * preprocessors and to make the AliPreprocessor interface methods | |
34 | * publicly available. | |
35 | */ | |
310c7637 | 36 | class AliHLTPreprocessor : public AliPreprocessor , public AliHLTShuttleInterface |
12ec5482 | 37 | { |
38 | public: | |
39 | /** | |
40 | * Constructor for AliHLTPreprocessor | |
41 | * | |
42 | * @param shuttle pointer to the hosting shuttle | |
43 | */ | |
44 | AliHLTPreprocessor(AliShuttleInterface* shuttle); | |
45 | /** Destructor */ | |
46 | virtual ~AliHLTPreprocessor(); | |
47 | ||
48 | /** | |
49 | * Initialize the Preprocessor. | |
50 | * | |
51 | * @param run run number | |
52 | * @param startTime start time of data | |
53 | * @param endTime end time of data | |
54 | */ | |
55 | virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime); | |
56 | ||
57 | /** | |
58 | * Function to process data. Inside the preparation and storing to OCDB | |
59 | * should be handled. | |
60 | * | |
61 | * @param dcsAliasMap the map containing aliases and corresponding DCS | |
62 | * values and timestamps | |
63 | * | |
64 | * @return 0 on success; a value greater than 0 refers to an error | |
65 | */ | |
66 | virtual UInt_t Process(TMap* dcsAliasMap); | |
67 | ||
68 | /** | |
69 | * Indicates if DCS data can be processed. | |
70 | * | |
71 | * @return true if DCS data can be processed, else false. | |
72 | */ | |
23bd5d2a | 73 | virtual Bool_t ProcessDCS() {return kFALSE;} |
12ec5482 | 74 | |
75 | /** Define for name of the HLT Preproc */ | |
76 | static const char* fgkHLTPreproc; // see above | |
77 | ||
78 | /** Get the run no which has been previously initialized */ | |
310c7637 | 79 | Int_t PreprocessorGetRun() {return fRun;} |
12ec5482 | 80 | |
81 | /** Get the start time no which has been previously initialized */ | |
310c7637 | 82 | UInt_t PreprocessorGetStartTime() {return fStartTime;} |
12ec5482 | 83 | |
84 | /** Get the end time no which has been previously initialized */ | |
310c7637 | 85 | UInt_t PreprocessorGetEndTime() {return fEndTime;} |
12ec5482 | 86 | |
12ec5482 | 87 | // AliPreprocessor methods made publicly available |
8a6d545f | 88 | // the subsequent functions map the AliPreprocessor interface functions in order |
89 | // to be used by the module proprocessors. | |
310c7637 | 90 | Bool_t PreprocessorStore(const char* pathLevel2, const char* pathLevel3, TObject* object, |
12ec5482 | 91 | AliCDBMetaData* metaData, Int_t validityStart = 0, Bool_t validityInfinite = kFALSE) { |
92 | return AliPreprocessor::Store(pathLevel2, pathLevel3, object, metaData, validityStart, validityInfinite); | |
93 | } | |
94 | ||
310c7637 | 95 | Bool_t PreprocessorStoreReferenceData(const char* pathLevel2, const char* pathLevel3, TObject* object, |
12ec5482 | 96 | AliCDBMetaData* metaData) { |
97 | return AliPreprocessor::StoreReferenceData(pathLevel2, pathLevel3, object, metaData); | |
98 | } | |
99 | ||
310c7637 | 100 | Bool_t PreprocessorStoreReferenceFile(const char* localFile, const char* gridFileName) { |
12ec5482 | 101 | return AliPreprocessor::StoreReferenceFile(localFile, gridFileName); |
102 | } | |
103 | ||
310c7637 | 104 | Bool_t PreprocessorStoreRunMetadataFile(const char* localFile, const char* gridFileName) { |
12ec5482 | 105 | return AliPreprocessor::StoreRunMetadataFile(localFile, gridFileName); |
106 | } | |
107 | ||
310c7637 | 108 | const char* PreprocessorGetFile(Int_t system, const char* id, const char* source) { |
12ec5482 | 109 | return AliPreprocessor::GetFile(system, id, source); |
110 | } | |
111 | ||
310c7637 | 112 | TList* PreprocessorGetFileSources(Int_t system, const char* id = 0) { |
12ec5482 | 113 | return AliPreprocessor::GetFileSources(system, id); |
114 | } | |
115 | ||
310c7637 | 116 | TList* PreprocessorGetFileIDs(Int_t system, const char* source) { |
12ec5482 | 117 | return AliPreprocessor::GetFileIDs(system, source); |
118 | } | |
119 | ||
310c7637 | 120 | const char* PreprocessorGetRunParameter(const char* param) { |
12ec5482 | 121 | return AliPreprocessor::GetRunParameter(param); |
122 | } | |
123 | ||
310c7637 | 124 | AliCDBEntry* PreprocessorGetFromOCDB(const char* pathLevel2, const char* pathLevel3) { |
12ec5482 | 125 | return AliPreprocessor::GetFromOCDB(pathLevel2, pathLevel3); |
126 | } | |
127 | ||
310c7637 | 128 | const char* PreprocessorGetRunType() { |
12ec5482 | 129 | return AliPreprocessor::GetRunType(); |
130 | } | |
131 | ||
310c7637 | 132 | void PreprocessorLog(const char* message) { |
12ec5482 | 133 | AliPreprocessor::Log(message); |
134 | } | |
135 | ||
136 | protected: | |
137 | ||
138 | private: | |
139 | /** copy constructor prohibited */ | |
140 | AliHLTPreprocessor(const AliHLTPreprocessor& preproc); | |
141 | /** assignment operator prohibited */ | |
142 | AliHLTPreprocessor& operator=(const AliHLTPreprocessor& rhs); | |
143 | ||
144 | /** list of HLT module processors */ | |
145 | TList fProcessors; //!transient | |
146 | ||
d83b59c6 | 147 | /** determine which which detectors were active */ |
148 | Int_t fActiveDetectors; // bit array of active detectors | |
149 | ||
12ec5482 | 150 | /** array of default libraries */ |
151 | static const char* fgkHLTDefaultShuttleLibs[]; //!transient | |
152 | ||
d83b59c6 | 153 | ClassDef(AliHLTPreprocessor, 1); |
12ec5482 | 154 | }; |
155 | #endif | |
156 | ||
157 |