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 /// @author Matthias Richter
13 /// @brief Virtual Interface to the AliDAQ class.
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.
25 * @author Matthias.Richter@ift.uib.no
26 * @ingroup alihlt_system
32 static Int_t NumberOfDetectors();
34 static Int_t DetectorID(const char *detectorName);
35 static const char *DetectorName(Int_t detectorID);
36 // Note: use specific number instead of kAliHLTComponentDataTypefOriginSize to avoid including AliHLTDataTypes.h
37 static Int_t DetectorIDFromHLTOrigin(const char dataorigin[4]);
38 static const char *DetectorName(const char dataorigin[4]);
40 static Int_t DdlIDOffset(const char *detectorName);
41 static Int_t DdlIDOffset(Int_t detectorID);
43 static const char *DetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex);
44 static Int_t DetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex);
46 static Int_t DdlID(const char *detectorName, Int_t ddlIndex);
47 static Int_t DdlID(Int_t detectorID, Int_t ddlIndex);
48 static const char *DdlFileName(const char *detectorName, Int_t ddlIndex);
49 static const char *DdlFileName(Int_t detectorID, Int_t ddlIndex);
51 static Int_t NumberOfDdls(const char *detectorName);
52 static Int_t NumberOfDdls(Int_t detectorID);
54 static const char *ListOfTriggeredDetectors(UInt_t detectorPattern);
55 static UInt_t DetectorPattern(const char *detectorList);
57 static const char *OfflineModuleName(const char *detectorName);
58 static const char *OfflineModuleName(Int_t detectorID);
60 static const char *OnlineName(const char *detectorName);
61 static const char *OnlineName(Int_t detectorID);
63 static std::string HLTOrigin(const char *detectorName);
64 static std::string HLTOrigin(Int_t detectorID);
66 static std::string HLTSpecificationFromDdlID(Int_t ddlID);
67 // Note: use specific number instead of kAliHLTComponentDataTypefOriginSize to avoid including AliHLTDataTypes.h
68 static Int_t DdlIDFromHLTBlockData(const char dataorigin[4], UInt_t specification);
70 static AliHLTDAQ* GetInstance();
73 virtual Int_t VirtNumberOfDetectors()=0;
75 virtual Int_t VirtDetectorID(const char *detectorName)=0;
76 virtual const char *VirtDetectorName(Int_t detectorID)=0;
78 virtual Int_t VirtDdlIDOffset(const char *detectorName)=0;
79 virtual Int_t VirtDdlIDOffset(Int_t detectorID)=0;
81 virtual const char *VirtDetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
82 virtual Int_t VirtDetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
84 virtual Int_t VirtDdlID(const char *detectorName, Int_t ddlIndex)=0;
85 virtual Int_t VirtDdlID(Int_t detectorID, Int_t ddlIndex)=0;
86 virtual const char *VirtDdlFileName(const char *detectorName, Int_t ddlIndex)=0;
87 virtual const char *VirtDdlFileName(Int_t detectorID, Int_t ddlIndex)=0;
89 virtual Int_t VirtNumberOfDdls(const char *detectorName)=0;
90 virtual Int_t VirtNumberOfDdls(Int_t detectorID)=0;
92 virtual const char *VirtListOfTriggeredDetectors(UInt_t detectorPattern)=0;
93 virtual UInt_t VirtDetectorPattern(const char *detectorList)=0;
95 virtual const char *VirtOfflineModuleName(const char *detectorName)=0;
96 virtual const char *VirtOfflineModuleName(Int_t detectorID)=0;
98 virtual const char *VirtOnlineName(const char *detectorName)=0;
99 virtual const char *VirtOnlineName(Int_t detectorID)=0;
101 /** global instance */
102 static AliHLTDAQ* fgpInstance; //!
104 /** the name of the actual implementation */
105 static const char* fgkImplName; //!
107 /** the library of the implementation */
108 static const char* fgkImplLibrary; //!
110 /// mapping between HLT data origin and AliDAQ detector number
111 static const char* fgkOriginMapping[]; //!