]>
Commit | Line | Data |
---|---|---|
7279ee15 | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007 | |
4 | ||
5 | /************************************************************************** | |
6 | * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. * | |
7 | * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for * | |
8 | * full copyright notice. * | |
9 | **************************************************************************/ | |
10 | ||
11 | #ifndef ALIEVEHOMERSRCTRANSLATOR_H | |
12 | #define ALIEVEHOMERSRCTRANSLATOR_H | |
13 | ||
14 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
15 | * See cxx source for full Copyright notice */ | |
16 | ||
17 | /** @file AliEveHOMERSrcTranslator.h | |
18 | @author Jochen Thaeder | |
19 | @date | |
20 | @brief Src Translator of HomerManger | |
21 | */ | |
22 | ||
23 | #include "TString.h" | |
24 | #include "TDOMParser.h" | |
25 | #include "TXMLNode.h" | |
26 | #include "TList.h" | |
27 | ||
28 | #include "AliEveHOMERSourceList.h" | |
29 | #include "AliHLTHOMERSourceDesc.h" | |
30 | ||
31 | #include "TMap.h" | |
32 | ||
33 | class AliEveHOMERSrcTranslator : public TObject | |
34 | { | |
35 | public: | |
36 | ||
37 | /* | |
38 | * --------------------------------------------------------------------------------- | |
39 | * Constructor / Destructor | |
40 | * --------------------------------------------------------------------------------- | |
41 | */ | |
42 | ||
43 | /** constructor */ | |
44 | AliEveHOMERSrcTranslator( TString realm ); | |
45 | ||
46 | /** destructor */ | |
47 | virtual ~AliEveHOMERSrcTranslator(); | |
48 | ||
49 | /* | |
50 | * --------------------------------------------------------------------------------- | |
51 | * Setter - public | |
52 | * --------------------------------------------------------------------------------- | |
53 | */ | |
54 | ||
55 | /** Sets realm ( which can be ACR, GPN, HLT, KIP ) */ | |
56 | void SetRealm( TString s ) { fRealm = s; } // Sets realm ( which can be ACR, GPN, HLT, KIP ) | |
57 | ||
58 | /* | |
59 | * --------------------------------------------------------------------------------- | |
60 | * Translation - public | |
61 | * --------------------------------------------------------------------------------- | |
62 | */ | |
63 | ||
64 | /** Resolve Information of nodename and port for source which has to be used by HOMER */ | |
65 | Int_t Translate( TString Nodename, TString xmlPort, TString &hostname, Int_t &port ); | |
66 | ||
67 | /** Apply corrections for differnt detectors and subdetectors */ | |
68 | void ApplyDetectorCorrections( TString &detector, TString &subDetector); | |
69 | ||
70 | /** Fill SourceDesc with object Information */ | |
71 | Int_t FillSourceDesc( AliHLTHOMERSourceDesc* source, TString name ); | |
72 | ||
73 | /////////////////////////////////////////////////////////////////////////////////// | |
74 | ||
75 | private: | |
76 | ||
77 | AliEveHOMERSrcTranslator(const AliEveHOMERSrcTranslator&); // Not implemented. | |
78 | AliEveHOMERSrcTranslator& operator=(const AliEveHOMERSrcTranslator&); // Not implemented. | |
79 | ||
80 | /* | |
81 | * --------------------------------------------------------------------------------- | |
82 | * Source Resolving - private | |
83 | * --------------------------------------------------------------------------------- | |
84 | */ | |
85 | ||
86 | /** Resolve hostname out of XML and realm */ | |
87 | TString ResolveHostname( TString nodename ); | |
88 | ||
89 | /** Resolve port out of XML and realm */ | |
90 | Int_t ResolvePort( TString srcPort, TString srcHostname ); | |
91 | ||
92 | /* | |
93 | * --------------------------------------------------------------------------------- | |
94 | * Setup - private | |
95 | * --------------------------------------------------------------------------------- | |
96 | */ | |
97 | ||
98 | /** Setup the BasePort mapping */ | |
99 | void SetupPortMap(); | |
100 | ||
101 | /** Setup the Object mapping */ | |
102 | void SetupObjectMap(); | |
103 | ||
104 | /** Setup the Object mapping for TPC */ | |
105 | void SetupObjectMapTPC(); | |
106 | ||
107 | /** Setup the Object mapping for TRD */ | |
108 | void SetupObjectMapTRD(); | |
109 | ||
110 | /** Setup the Object mapping for PHOS */ | |
111 | void SetupObjectMapPHOS(); | |
112 | ||
113 | /** Setup the Object mapping for DIMUON */ | |
114 | void SetupObjectMapDIMUON(); | |
115 | ||
116 | /** Setup the common Object mappings */ | |
117 | void SetupObjectMapCommon( TMap* objectMap ); | |
118 | ||
119 | /* | |
120 | * --------------------------------------------------------------------------------- | |
121 | * Members - private | |
122 | * --------------------------------------------------------------------------------- | |
123 | */ | |
124 | ||
125 | TMap* fBasePortMap; //! Map of BasePorts on the gateways | |
126 | ||
127 | TMap* fObjectMap; //! Map of Objects and DataTypes | |
128 | ||
129 | TString fRealm; // Indicates the realm where AliEve can connect to ( HLT, GPN, ACR, KIP ); | |
130 | ||
131 | /* | |
132 | * --------------------------------------------------------------------------------- | |
133 | * Constants - private | |
134 | * --------------------------------------------------------------------------------- | |
135 | */ | |
136 | ||
137 | static const Int_t kNodeBasePort = 49152; // BasePort of TCP ports on the nodes | |
138 | ||
139 | ClassDef(AliEveHOMERSrcTranslator, 0); // Translate HLT data-sources. | |
140 | }; | |
141 | ||
142 | #endif |