ALIROOT-5600 - skip non-participating detector modules
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTShuttleInterface.h
CommitLineData
310c7637 1//-*- Mode: C++ -*-
3dd8541e 2// @(#) $Id$
310c7637 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
25class AliHLTPreprocessor;
26class TMap;
27class AliCDBMetaData;
28class 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 */
45class AliHLTShuttleInterface
46{
47public:
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
86protected:
87
88private:
89 /** copy constructor prohibited */
90 AliHLTShuttleInterface(const AliHLTShuttleInterface&);
91 /** assignment operator prohibited */
92 AliHLTShuttleInterface& operator=(const AliHLTShuttleInterface&);
93
94 ClassDef(AliHLTShuttleInterface, 0);
95};
96#endif