Line data Source code
1 : //-*- Mode: C++ -*-
2 : // @(#) $Id$
3 :
4 : #ifndef ALIHLTSHUTTLEINTERFACE_H
5 : #define ALIHLTSHUTTLEINTERFACE_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 AliHLTShuttleInterface.h
12 : * @author Matthias Richter
13 : * @date 2008-01-22
14 : * @brief Pure virtual interface to the HLT shuttle methods
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;
29 :
30 : /**
31 : * @class AliHLTShuttleInterface
32 : * This class implements the redirection of the shuttle access methods for
33 : * AliHLTModulePreprocessor classes. The AliHLTShuttleInterface has been
34 : * declared pure virtual to avoid dependencies between the libHLTshuttle and
35 : * the component libraries. It implements the same interface to the shuttle
36 : * as the AliPreprocessor.
37 : *
38 : * The AliHLTPreprocessor initializes each AliHLTModulePreprocessor with this
39 : * interface. From the interface methods of AliHLTModulePreprocessor classes,
40 : * the call is redirected via AliHLTShuttleInterface to the AliHLTPreprocessor,
41 : * which makes the methods publicly available AliPreprocessor.
42 : *
43 : * @author Matthias Richter
44 : */
45 : class AliHLTShuttleInterface
46 : {
47 : public:
48 : /** Constructor*/
49 : AliHLTShuttleInterface();
50 : /** Destructor */
51 : virtual ~AliHLTShuttleInterface();
52 :
53 : /** Get the run no */
54 : virtual Int_t PreprocessorGetRun() = 0;
55 :
56 : /** Get the start time */
57 : virtual UInt_t PreprocessorGetStartTime() = 0;
58 :
59 : /** Get the end time */
60 : virtual UInt_t PreprocessorGetEndTime() = 0;
61 :
62 : // the AliPreprocessor interface, all functions redirected via the
63 : // AliHLTPreprocessor
64 : virtual Bool_t PreprocessorStore(const char* pathLevel2, const char* pathLevel3, TObject* object,
65 : AliCDBMetaData* metaData, Int_t validityStart = 0, Bool_t validityInfinite = kFALSE) = 0;
66 : virtual Bool_t PreprocessorStoreReferenceData(const char* pathLevel2, const char* pathLevel3, TObject* object,
67 : AliCDBMetaData* metaData) = 0;
68 : virtual Bool_t PreprocessorStoreReferenceFile(const char* localFile, const char* gridFileName) = 0;
69 :
70 : virtual Bool_t PreprocessorStoreRunMetadataFile(const char* localFile, const char* gridFileName) = 0;
71 :
72 : virtual const char* PreprocessorGetFile(Int_t system, const char* id, const char* source) = 0;
73 :
74 : virtual TList* PreprocessorGetFileSources(Int_t system, const char* id = 0) = 0;
75 :
76 : virtual TList* PreprocessorGetFileIDs(Int_t system, const char* source) = 0;
77 :
78 : virtual const char* PreprocessorGetRunParameter(const char* param) = 0;
79 :
80 : virtual AliCDBEntry* PreprocessorGetFromOCDB(const char* pathLevel2, const char* pathLevel3) = 0;
81 :
82 : virtual const char* PreprocessorGetRunType() = 0;
83 :
84 : virtual void PreprocessorLog(const char* message) = 0;
85 :
86 : protected:
87 :
88 : private:
89 : /** copy constructor prohibited */
90 : AliHLTShuttleInterface(const AliHLTShuttleInterface&);
91 : /** assignment operator prohibited */
92 : AliHLTShuttleInterface& operator=(const AliHLTShuttleInterface&);
93 :
94 126 : ClassDef(AliHLTShuttleInterface, 0);
95 : };
96 : #endif
|