From Jochen - EveHLT development accumulated since the end of March.
[u/mrichter/AliRoot.git] / EVE / EveHLT / AliEveHOMERXMLHandler.h
1 // $Id: 
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 //-*- Mode: C++ -*-
11 #ifndef ALIEVEHOMERXMLHANDLER_H
12 #define ALIEVEHOMERXMLHANDLER_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   AliEveHOMERXMLHandler.h
18     @author Jochen Thaeder
19     @date
20     @brief  XML Handler for HomerManger
21 */
22
23 #include "TString.h"
24 #include "TDOMParser.h"
25 #include "TXMLNode.h"
26 #include "TList.h"
27
28 #include "AliEveHOMERSrcTranslator.h"
29 #include "AliHLTHOMERSourceDesc.h"
30
31
32 class AliEveHOMERXMLHandler : public TObject
33 {
34 public:
35
36   /*
37    * ---------------------------------------------------------------------------------
38    *                            Constructor / Destructor
39    * ---------------------------------------------------------------------------------
40    */
41
42   /** constructor */
43   AliEveHOMERXMLHandler( TString xmlFile );
44
45   /** destructor */
46   virtual ~AliEveHOMERXMLHandler();
47
48   /*
49    * ---------------------------------------------------------------------------------
50    *                             Source List - public
51    * ---------------------------------------------------------------------------------
52    */
53
54   /** Fill's source list, with entries */
55   Int_t FillSourceList(TList *srcList);
56
57   /** Sets realm ( which can be ACR, GPN, HLT, KIP ) */ 
58   void SetRealm( TString s ) { fSrcTranslator->SetRealm(s); } // Sets realm ( which can be ACR, GPN, HLT, KIP )
59
60
61   ///////////////////////////////////////////////////////////////////////////////////
62
63 private:
64
65   AliEveHOMERXMLHandler(const AliEveHOMERXMLHandler&);            // Not implemented.
66   AliEveHOMERXMLHandler& operator=(const AliEveHOMERXMLHandler&); // Not implemented.
67
68   /*
69    * ---------------------------------------------------------------------------------
70    *                            Source Resolving - private
71    * ---------------------------------------------------------------------------------
72    */
73
74   /** Initialize the XML Handler, create the SrcTranslator */
75   Int_t Initialize();
76
77   /** Get Information out of a TDS process in XML file */
78   Int_t AddSourceTDS( TXMLNode * xmlNode );
79
80   /** Get xml nodename out of xml hostname */
81   TString GetNodename( TString xmlHostname );
82
83   /** Resolve information of source */
84   Int_t FillSourceInformation( TString xmlParent, AliHLTHOMERSourceDesc * source );
85
86   /*
87    * ---------------------------------------------------------------------------------
88    *                            Members - private
89    * ---------------------------------------------------------------------------------
90    */
91
92   // == XML parser ==
93   TString     fXMLFile;                           //  XML input file
94   TDOMParser* fXMLParser;                         //! XML parser into DOM model
95   TXMLNode*   fRootNode;                          //! Root node of parsed config file
96
97   // == Source Translator ==
98   AliEveHOMERSrcTranslator* fSrcTranslator;       //! Translates HOMER sources to real hostname,port
99
100   // == Sources List ==
101   TList* fSourceList;                             //! List to HOMER sources
102
103   ClassDef(AliEveHOMERXMLHandler, 0); // Handles HLT xml sources.
104 };
105
106 #endif