2 // @(#) $Id: AliHLTModulePreprocessor.h 23318 2008-01-14 12:43:28Z hristov $
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 *
11 * @file AliHLTModulePreprocessor.h
12 * @author Matthias Richter
14 * @brief Base class for HLT module preprocessors
17 // see below for class documentation
19 // refer to README to build package
21 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
25 class AliHLTPreprocessor;
29 class AliHLTShuttleInterface;
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
40 * @author Matthias Richter
42 class AliHLTModulePreprocessor : public TObject
46 AliHLTModulePreprocessor();
48 virtual ~AliHLTModulePreprocessor();
51 * Set the container class which is the gateway to the shuttle.
53 void SetShuttleInterface(AliHLTShuttleInterface* pInterface);
56 * Initialize the Preprocessor.
58 * @param run run number
59 * @param startTime start time of data
60 * @param endTime end time of data
62 virtual void Initialize(Int_t run, UInt_t startTime, UInt_t endTime) = 0;
65 * Function to process data. Inside the preparation and storing to OCDB
68 * @param dcsAliasMap the map containing aliases and corresponding DCS
69 * values and timestamps
71 * @return 0 on success; error code otherwise
73 virtual UInt_t Process(TMap* dcsAliasMap) = 0;
78 /** Get the start time */
79 UInt_t GetStartTime();
81 /** Get the end time */
85 // the AliPreprocessor interface, all functions redirected via the
86 // AliHLTShuttleInterface to the AliHLTPreprocessor
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);
93 Bool_t StoreRunMetadataFile(const char* localFile, const char* gridFileName);
95 const char* GetFile(Int_t system, const char* id, const char* source);
97 TList* GetFileSources(Int_t system, const char* id = 0);
99 TList* GetFileIDs(Int_t system, const char* source);
101 const char* GetRunParameter(const char* param);
103 AliCDBEntry* GetFromOCDB(const char* pathLevel2, const char* pathLevel3);
105 const char* GetRunType();
107 void Log(const char* message);
110 /** copy constructor prohibited */
111 AliHLTModulePreprocessor(const AliHLTModulePreprocessor& preproc);
112 /** assignment operator prohibited */
113 AliHLTModulePreprocessor& operator=(const AliHLTModulePreprocessor& rhs);
115 /** the interface class which is the gateway to the shuttle */
116 AliHLTShuttleInterface* fpInterface; //! transient
118 ClassDef(AliHLTModulePreprocessor, 0);