Moving to standard names
[u/mrichter/AliRoot.git] / EVE / EveHLT / AliEveHOMERSrcTranslator.h
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