Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id: AliHLTPreprocessor.h 23318 2008-01-14 12:43:28Z hristov $
3 :
4 : #ifndef ALIHLTPREPROCESSOR_H
5 : #define ALIHLTPREPROCESSOR_H
6 : //* This file is property of and copyright by the *
7 : //* ALICE Experiment at CERN, All rights reserved. *
8 : //* See cxx source for full Copyright notice *
9 :
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 : ///
16 :
17 : #include "TList.h"
18 : #include "AliPreprocessor.h"
19 : #include "AliHLTShuttleInterface.h"
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 : */
36 : class AliHLTPreprocessor : public AliPreprocessor , public AliHLTShuttleInterface
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 : */
73 0 : virtual Bool_t ProcessDCS() {return kFALSE;}
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 */
79 0 : Int_t PreprocessorGetRun() {return fRun;}
80 :
81 : /** Get the start time no which has been previously initialized */
82 0 : UInt_t PreprocessorGetStartTime() {return fStartTime;}
83 :
84 : /** Get the end time no which has been previously initialized */
85 0 : UInt_t PreprocessorGetEndTime() {return fEndTime;}
86 :
87 : // AliPreprocessor methods made publicly available
88 : // the subsequent functions map the AliPreprocessor interface functions in order
89 : // to be used by the module proprocessors.
90 0 : Bool_t PreprocessorStore(const char* pathLevel2, const char* pathLevel3, TObject* object,
91 : AliCDBMetaData* metaData, Int_t validityStart = 0, Bool_t validityInfinite = kFALSE) {
92 0 : return AliPreprocessor::Store(pathLevel2, pathLevel3, object, metaData, validityStart, validityInfinite);
93 : }
94 :
95 0 : Bool_t PreprocessorStoreReferenceData(const char* pathLevel2, const char* pathLevel3, TObject* object,
96 : AliCDBMetaData* metaData) {
97 0 : return AliPreprocessor::StoreReferenceData(pathLevel2, pathLevel3, object, metaData);
98 : }
99 :
100 0 : Bool_t PreprocessorStoreReferenceFile(const char* localFile, const char* gridFileName) {
101 0 : return AliPreprocessor::StoreReferenceFile(localFile, gridFileName);
102 : }
103 :
104 0 : Bool_t PreprocessorStoreRunMetadataFile(const char* localFile, const char* gridFileName) {
105 0 : return AliPreprocessor::StoreRunMetadataFile(localFile, gridFileName);
106 : }
107 :
108 0 : const char* PreprocessorGetFile(Int_t system, const char* id, const char* source) {
109 0 : return AliPreprocessor::GetFile(system, id, source);
110 : }
111 :
112 0 : TList* PreprocessorGetFileSources(Int_t system, const char* id = 0) {
113 0 : return AliPreprocessor::GetFileSources(system, id);
114 : }
115 :
116 0 : TList* PreprocessorGetFileIDs(Int_t system, const char* source) {
117 0 : return AliPreprocessor::GetFileIDs(system, source);
118 : }
119 :
120 0 : const char* PreprocessorGetRunParameter(const char* param) {
121 0 : return AliPreprocessor::GetRunParameter(param);
122 : }
123 :
124 0 : AliCDBEntry* PreprocessorGetFromOCDB(const char* pathLevel2, const char* pathLevel3) {
125 0 : return AliPreprocessor::GetFromOCDB(pathLevel2, pathLevel3);
126 : }
127 :
128 0 : const char* PreprocessorGetRunType() {
129 0 : return AliPreprocessor::GetRunType();
130 : }
131 :
132 0 : void PreprocessorLog(const char* message) {
133 0 : AliPreprocessor::Log(message);
134 0 : }
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 :
147 : /** determine which which detectors were active */
148 : Int_t fActiveDetectors; // bit array of active detectors
149 :
150 : /** array of default libraries */
151 : static const char* fgkHLTDefaultShuttleLibs[]; //!transient
152 :
153 12 : ClassDef(AliHLTPreprocessor, 1);
154 : };
155 : #endif
156 :
157 :
|