]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTDAQ.h
adding support for EventDoneData to AliHLTSystem
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTDAQ.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTDAQ_H
5 #define ALIHLTDAQ_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 /** @file   AliHLTDAQ.h
11     @author Matthias Richter
12     @date   24.10.2008
13     @brief  Virtual Interface to the AliDAQ class.
14 */
15
16 #include "Rtypes.h"
17
18 /**
19  * Virtual interface to the AliDAQ class.
20  * In order to keep the libHLTbase free of AliRoot dependencies, the
21  * implementation has been separated from libHLTbase.
22  * Implementation in libHLTrec.
23  */
24 class AliHLTDAQ {
25  public:
26   AliHLTDAQ();
27   virtual ~AliHLTDAQ();
28   static  Int_t       NumberOfDetectors();
29
30   static  Int_t       DetectorID(const char *detectorName);
31   static  const char *DetectorName(Int_t detectorID);
32
33   static  Int_t       DdlIDOffset(const char *detectorName);
34   static  Int_t       DdlIDOffset(Int_t detectorID);
35
36   static  const char *DetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex);
37   static  Int_t       DetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex);
38
39   static  Int_t       DdlID(const char *detectorName, Int_t ddlIndex);
40   static  Int_t       DdlID(Int_t detectorID, Int_t ddlIndex);
41   static  const char *DdlFileName(const char *detectorName, Int_t ddlIndex);
42   static  const char *DdlFileName(Int_t detectorID, Int_t ddlIndex);
43
44   static  Int_t       NumberOfDdls(const char *detectorName);
45   static  Int_t       NumberOfDdls(Int_t detectorID);
46
47   static const char *ListOfTriggeredDetectors(UInt_t detectorPattern);
48   static UInt_t      DetectorPattern(const char *detectorList);
49
50   static const char *OfflineModuleName(const char *detectorName);
51   static const char *OfflineModuleName(Int_t detectorID);
52
53   static const char *OnlineName(const char *detectorName);
54   static const char *OnlineName(Int_t detectorID);
55
56   static AliHLTDAQ* GetInstance();
57
58  private:
59   virtual  Int_t       VirtNumberOfDetectors()=0;
60
61   virtual  Int_t       VirtDetectorID(const char *detectorName)=0;
62   virtual  const char *VirtDetectorName(Int_t detectorID)=0;
63
64   virtual  Int_t       VirtDdlIDOffset(const char *detectorName)=0;
65   virtual  Int_t       VirtDdlIDOffset(Int_t detectorID)=0;
66
67   virtual  const char *VirtDetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
68   virtual  Int_t       VirtDetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
69
70   virtual  Int_t       VirtDdlID(const char *detectorName, Int_t ddlIndex)=0;
71   virtual  Int_t       VirtDdlID(Int_t detectorID, Int_t ddlIndex)=0;
72   virtual  const char *VirtDdlFileName(const char *detectorName, Int_t ddlIndex)=0;
73   virtual  const char *VirtDdlFileName(Int_t detectorID, Int_t ddlIndex)=0;
74
75   virtual  Int_t       VirtNumberOfDdls(const char *detectorName)=0;
76   virtual  Int_t       VirtNumberOfDdls(Int_t detectorID)=0;
77
78   virtual  const char *VirtListOfTriggeredDetectors(UInt_t detectorPattern)=0;
79   virtual  UInt_t      VirtDetectorPattern(const char *detectorList)=0;
80
81   virtual  const char *VirtOfflineModuleName(const char *detectorName)=0;
82   virtual  const char *VirtOfflineModuleName(Int_t detectorID)=0;
83
84   virtual  const char *VirtOnlineName(const char *detectorName)=0;
85   virtual  const char *VirtOnlineName(Int_t detectorID)=0;
86
87   /** global instance */
88   static AliHLTDAQ* fgpInstance; //!
89
90   /** the name of the actual implementation */
91   static const char* fgkImplName; //!
92
93   /** the library of the implementation */
94   static const char* fgkImplLibrary; //!
95 };
96
97 #endif //AliHLTDAQ