Line data Source code
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 : #include <string>
18 :
19 : /**
20 : * Virtual interface to the AliDAQ class.
21 : * In order to keep the libHLTbase free of AliRoot dependencies, the
22 : * implementation has been separated from libHLTbase.
23 : * Implementation in libHLTrec.
24 : *
25 : * @author Matthias.Richter@ift.uib.no
26 : * @ingroup alihlt_system
27 : */
28 0 : class AliHLTDAQ {
29 : public:
30 : AliHLTDAQ();
31 : virtual ~AliHLTDAQ();
32 : static Int_t NumberOfDetectors();
33 :
34 : static Int_t DetectorID(const char *detectorName);
35 : static Int_t HLTId();
36 : static const char *DetectorName(Int_t detectorID);
37 : // Note: use specific number instead of kAliHLTComponentDataTypefOriginSize to avoid including AliHLTDataTypes.h
38 : static Int_t DetectorIDFromHLTOrigin(const char dataorigin[4]);
39 : static const char *DetectorName(const char dataorigin[4]);
40 :
41 : static Int_t DdlIDOffset(const char *detectorName);
42 : static Int_t DdlIDOffset(Int_t detectorID);
43 :
44 : static const char *DetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex);
45 : static Int_t DetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex);
46 :
47 : static Int_t DdlID(const char *detectorName, Int_t ddlIndex);
48 : static Int_t DdlID(Int_t detectorID, Int_t ddlIndex);
49 : static const char *DdlFileName(const char *detectorName, Int_t ddlIndex);
50 : static const char *DdlFileName(Int_t detectorID, Int_t ddlIndex);
51 :
52 : static Int_t NumberOfDdls(const char *detectorName);
53 : static Int_t NumberOfDdls(Int_t detectorID);
54 :
55 : static const char *ListOfTriggeredDetectors(UInt_t detectorPattern);
56 : static UInt_t DetectorPattern(const char *detectorList);
57 :
58 : static const char *OfflineModuleName(const char *detectorName);
59 : static const char *OfflineModuleName(Int_t detectorID);
60 :
61 : static const char *OnlineName(const char *detectorName);
62 : static const char *OnlineName(Int_t detectorID);
63 :
64 : static std::string HLTOrigin(const char *detectorName);
65 : static std::string HLTOrigin(Int_t detectorID);
66 :
67 : static std::string HLTSpecificationFromDdlID(Int_t ddlID);
68 : // Note: use specific number instead of kAliHLTComponentDataTypefOriginSize to avoid including AliHLTDataTypes.h
69 : static Int_t DdlIDFromHLTBlockData(const char dataorigin[4], UInt_t specification);
70 :
71 : static AliHLTDAQ* GetInstance();
72 :
73 : private:
74 : virtual Int_t VirtNumberOfDetectors()=0;
75 :
76 : virtual Int_t VirtHLTId()=0;
77 : virtual Int_t VirtDetectorID(const char *detectorName)=0;
78 : virtual const char *VirtDetectorName(Int_t detectorID)=0;
79 :
80 : virtual Int_t VirtDdlIDOffset(const char *detectorName)=0;
81 : virtual Int_t VirtDdlIDOffset(Int_t detectorID)=0;
82 :
83 : virtual const char *VirtDetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
84 : virtual Int_t VirtDetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
85 :
86 : virtual Int_t VirtDdlID(const char *detectorName, Int_t ddlIndex)=0;
87 : virtual Int_t VirtDdlID(Int_t detectorID, Int_t ddlIndex)=0;
88 : virtual const char *VirtDdlFileName(const char *detectorName, Int_t ddlIndex)=0;
89 : virtual const char *VirtDdlFileName(Int_t detectorID, Int_t ddlIndex)=0;
90 :
91 : virtual Int_t VirtNumberOfDdls(const char *detectorName)=0;
92 : virtual Int_t VirtNumberOfDdls(Int_t detectorID)=0;
93 :
94 : virtual const char *VirtListOfTriggeredDetectors(UInt_t detectorPattern)=0;
95 : virtual UInt_t VirtDetectorPattern(const char *detectorList)=0;
96 :
97 : virtual const char *VirtOfflineModuleName(const char *detectorName)=0;
98 : virtual const char *VirtOfflineModuleName(Int_t detectorID)=0;
99 :
100 : virtual const char *VirtOnlineName(const char *detectorName)=0;
101 : virtual const char *VirtOnlineName(Int_t detectorID)=0;
102 :
103 : /** global instance */
104 : static AliHLTDAQ* fgpInstance; //!
105 :
106 : /** the name of the actual implementation */
107 : static const char* fgkImplName; //!
108 :
109 : /** the library of the implementation */
110 : static const char* fgkImplLibrary; //!
111 :
112 : /// mapping between HLT data origin and AliDAQ detector number
113 : static const char* fgkOriginMapping[]; //!
114 : };
115 :
116 : #endif //AliHLTDAQ
|