]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTDAQ.h
implementing the copy contructors for two helper classes because compiler on macos...
[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 #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 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  const char *DetectorName(Int_t detectorID);
36   static  const char *DetectorName(const char dataorigin[4]);
37
38   static  Int_t       DdlIDOffset(const char *detectorName);
39   static  Int_t       DdlIDOffset(Int_t detectorID);
40
41   static  const char *DetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex);
42   static  Int_t       DetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex);
43
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);
48
49   static  Int_t       NumberOfDdls(const char *detectorName);
50   static  Int_t       NumberOfDdls(Int_t detectorID);
51
52   static const char *ListOfTriggeredDetectors(UInt_t detectorPattern);
53   static UInt_t      DetectorPattern(const char *detectorList);
54
55   static const char *OfflineModuleName(const char *detectorName);
56   static const char *OfflineModuleName(Int_t detectorID);
57
58   static const char *OnlineName(const char *detectorName);
59   static const char *OnlineName(Int_t detectorID);
60
61   static std::string HLTOrigin(const char *detectorName);
62   static std::string HLTOrigin(Int_t detectorID);
63
64   static AliHLTDAQ* GetInstance();
65
66  private:
67   virtual  Int_t       VirtNumberOfDetectors()=0;
68
69   virtual  Int_t       VirtDetectorID(const char *detectorName)=0;
70   virtual  const char *VirtDetectorName(Int_t detectorID)=0;
71
72   virtual  Int_t       VirtDdlIDOffset(const char *detectorName)=0;
73   virtual  Int_t       VirtDdlIDOffset(Int_t detectorID)=0;
74
75   virtual  const char *VirtDetectorNameFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
76   virtual  Int_t       VirtDetectorIDFromDdlID(Int_t ddlID, Int_t &ddlIndex)=0;
77
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;
82
83   virtual  Int_t       VirtNumberOfDdls(const char *detectorName)=0;
84   virtual  Int_t       VirtNumberOfDdls(Int_t detectorID)=0;
85
86   virtual  const char *VirtListOfTriggeredDetectors(UInt_t detectorPattern)=0;
87   virtual  UInt_t      VirtDetectorPattern(const char *detectorList)=0;
88
89   virtual  const char *VirtOfflineModuleName(const char *detectorName)=0;
90   virtual  const char *VirtOfflineModuleName(Int_t detectorID)=0;
91
92   virtual  const char *VirtOnlineName(const char *detectorName)=0;
93   virtual  const char *VirtOnlineName(Int_t detectorID)=0;
94
95   /** global instance */
96   static AliHLTDAQ* fgpInstance; //!
97
98   /** the name of the actual implementation */
99   static const char* fgkImplName; //!
100
101   /** the library of the implementation */
102   static const char* fgkImplLibrary; //!
103
104   /// mapping between HLT data origin and AliDAQ detector number
105   static const char* fgkOriginMapping[]; //!
106 };
107
108 #endif //AliHLTDAQ