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 static const char *DetectorName(const char dataorigin[4]);
38 static Int_t DdlIDOffset(const char *detectorName);
39 static Int_t DdlIDOffset(Int_t detectorID);
41 static const char *DetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex);
42 static Int_t DetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex);
44 static Int_t DdlID(const char *detectorName, Int_t ddlIndex);
45 static Int_t DdlID(Int_t detectorID, Int_t ddlIndex);
46 static const char *DdlFileName(const char *detectorName, Int_t ddlIndex);
47 static const char *DdlFileName(Int_t detectorID, Int_t ddlIndex);
49 static Int_t NumberOfDdls(const char *detectorName);
50 static Int_t NumberOfDdls(Int_t detectorID);
52 static const char *ListOfTriggeredDetectors(UInt_t detectorPattern);
53 static UInt_t DetectorPattern(const char *detectorList);
55 static const char *OfflineModuleName(const char *detectorName);
56 static const char *OfflineModuleName(Int_t detectorID);
58 static const char *OnlineName(const char *detectorName);
59 static const char *OnlineName(Int_t detectorID);
61 static std::string HLTOrigin(const char *detectorName);
62 static std::string HLTOrigin(Int_t detectorID);
64 static AliHLTDAQ* GetInstance();
67 virtual Int_t VirtNumberOfDetectors()=0;
69 virtual Int_t VirtDetectorID(const char *detectorName)=0;
70 virtual const char *VirtDetectorName(Int_t detectorID)=0;
72 virtual Int_t VirtDdlIDOffset(const char *detectorName)=0;
73 virtual Int_t VirtDdlIDOffset(Int_t detectorID)=0;
75 virtual const char *VirtDetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
76 virtual Int_t VirtDetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
78 virtual Int_t VirtDdlID(const char *detectorName, Int_t ddlIndex)=0;
79 virtual Int_t VirtDdlID(Int_t detectorID, Int_t ddlIndex)=0;
80 virtual const char *VirtDdlFileName(const char *detectorName, Int_t ddlIndex)=0;
81 virtual const char *VirtDdlFileName(Int_t detectorID, Int_t ddlIndex)=0;
83 virtual Int_t VirtNumberOfDdls(const char *detectorName)=0;
84 virtual Int_t VirtNumberOfDdls(Int_t detectorID)=0;
86 virtual const char *VirtListOfTriggeredDetectors(UInt_t detectorPattern)=0;
87 virtual UInt_t VirtDetectorPattern(const char *detectorList)=0;
89 virtual const char *VirtOfflineModuleName(const char *detectorName)=0;
90 virtual const char *VirtOfflineModuleName(Int_t detectorID)=0;
92 virtual const char *VirtOnlineName(const char *detectorName)=0;
93 virtual const char *VirtOnlineName(Int_t detectorID)=0;
95 /** global instance */
96 static AliHLTDAQ* fgpInstance; //!
98 /** the name of the actual implementation */
99 static const char* fgkImplName; //!
101 /** the library of the implementation */
102 static const char* fgkImplLibrary; //!
104 /// mapping between HLT data origin and AliDAQ detector number
105 static const char* fgkOriginMapping[]; //!