3 // $Id: AliHLTHOMERProxyHandler.h $
5 #ifndef ALIHLTHOMERPROXYHANDLER_H
6 #define ALIHLTHOMERPROXYHANDLER_H
8 /* This file is property of and copyright by the ALICE HLT Project *
9 * ALICE Experiment at CERN, All rights reserved. *
10 * See cxx source for full Copyright notice
13 /** @file AliHLTHOMERProxyHandler.h
14 @author Jochen Thaeder
16 @brief HOMER proxy handler for HomerManger
22 // -- -- -- -- -- -- --
23 #include "AliHLTHOMERSourceDesc.h"
24 // -- -- -- -- -- -- --
25 #include "AliHLTLogging.h"
28 * @class AliHLTHOMERProxyHandler
29 * This Class should handle the communication with the proxy
30 * and fill the source list.
32 * @ingroup alihlt_homer
35 class AliHLTHOMERProxyHandler : public TObject, public AliHLTLogging
40 * ---------------------------------------------------------------------------------
41 * Constructor / Destructor
42 * ---------------------------------------------------------------------------------
46 AliHLTHOMERProxyHandler();
49 virtual ~AliHLTHOMERProxyHandler();
52 * @return 0 on success, <0 for failure
57 * ---------------------------------------------------------------------------------
58 * Source List - public
59 * ---------------------------------------------------------------------------------
62 /** Fill's source list, with entries */
63 Int_t FillSourceList(TList *srcList);
65 ///////////////////////////////////////////////////////////////////////////////////
69 /** copy constructor prohibited */
70 AliHLTHOMERProxyHandler(const AliHLTHOMERProxyHandler&); // Not implemented.
72 /** assignment operator prohibited */
73 AliHLTHOMERProxyHandler& operator=(const AliHLTHOMERProxyHandler&); // Not implemented.
76 * ---------------------------------------------------------------------------------
78 * ---------------------------------------------------------------------------------
83 kHLT, /**< HLT realm */
84 kACR, /**< ACR realm */
85 kGPN, /**< GPN realm */
86 kKIP, /**< KIP realm */
87 kHOMERRealmsMax /**< Number of enum entries */
90 /** Array of proxy nodes per realm */
91 static const Char_t *fgkHOMERProxyNode[];
93 /** Indentifies the realm and sets it
94 * @return 0 on success, <0 for failure
99 * ---------------------------------------------------------------------------------
100 * Proxy Communication - private
101 * ---------------------------------------------------------------------------------
104 /** Get xmlrpc response from the proxy
105 * @return 0 on success, <0 for failure
107 Int_t RequestXmlRpcResponse();
109 /** process xmlrpc response and fill the source list
110 * @return 0 on success, <0 for failure
112 Int_t ProcessXmlRpcResponse();
115 * ---------------------------------------------------------------------------------
116 * Source Resolving - private
117 * ---------------------------------------------------------------------------------
120 /** Add a new Service to list
121 * @param xmlNode Ptr to service node
122 * @return 0 on sucess, <0 for failure
124 Int_t AddService(TXMLNode *innerNode);
127 * ---------------------------------------------------------------------------------
129 * ---------------------------------------------------------------------------------
132 /** Realm, which can be ACR, GPN, HLT, KIP */
133 Int_t fRealm; // see above
135 /** xmlRPC response */
136 TString fXmlRpcResponse; // see above
138 /** List to HOMER sources */
139 TList* fSourceList; //! transient
141 ClassDef(AliHLTHOMERProxyHandler, 0); // Handles HLT xml sources.