]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTConfigurationHandler.h
- cleaning up debug output
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTConfigurationHandler.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTCONFIGURATIONHANDLER_H
5 #define ALIHLTCONFIGURATIONHANDLER_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   AliHLTConfigurationHandler.h
11     @author Matthias Richter
12     @date   
13     @brief  Global handling of HLT configurations.
14 */
15
16 // see below for class documentation
17 // or
18 // refer to README to build package
19 // or
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt   
21
22 #include <TList.h>
23
24 #include "AliHLTLogging.h"
25 class AliHLTConfiguration;
26
27 /**
28  * @class AliHLTConfigurationHandler
29  * @brief Global Handling of HLT configurations.
30  *
31  * This class implements the global handling of @ref AliHLTConfiguration objects.
32  * It is a list of all configuartion descriptor currently available in the system.
33  * Each @ref AliHLTConfiguration object is registerd automatically with the
34  * handler and put into the list.
35  *
36  * @note This class is only used for the @ref alihlt_system.
37  *
38  * @ingroup alihlt_system
39  */
40 class AliHLTConfigurationHandler : public AliHLTLogging {
41  public:
42   /** standard constructor */
43   AliHLTConfigurationHandler();
44   
45   //AliHLTConfigurationHandler(AliHLTConfiguration* pConf);
46
47   /** destructor */
48   virtual ~AliHLTConfigurationHandler();
49
50   /*****************************************************************************
51    * singleton handling
52    */
53
54   /**
55    * Create an instance from the global sigleton.
56    * Instance has to be destroyed by the Destroy function
57    */
58   static AliHLTConfigurationHandler* CreateHandler();
59
60   /**
61    * Destroy an instance of the global singleton retrieved by
62    * AliHLTConfigurationHandler::CreateHandler()
63    */
64   int Destroy();
65
66   /*****************************************************************************
67    * registration
68    */
69
70   /**
71    * Register a configuration to the global list of configurations.
72    * @param pConf     The configuration to register
73    */
74   int RegisterConfiguration(AliHLTConfiguration* pConf);
75
76   /**
77    * Create a configuration and register it.
78    * @param id
79    * @param component
80    * @param sources
81    * @param arguments
82    */
83   int CreateConfiguration(const char* id, const char* component, const char* sources, const char* arguments);
84
85   /**
86    * Remove a configuration from the global list.
87    * @param pConf     The configuration to remove
88    */
89   int RemoveConfiguration(AliHLTConfiguration* pConf);
90
91   /**
92    * Remove a configuration from the global list.
93    * @param id     The configuration to remove
94    */
95   int RemoveConfiguration(const char* id);
96
97   /**
98    * Find a configuration from the global list.
99    * @param id     Id of the configuration to find
100    */
101   AliHLTConfiguration* FindConfiguration(const char* id);
102
103   /**
104    * Print the registered configurations to the logging function.
105    */
106   void PrintConfigurations();
107
108
109  private:
110   /** the list of registered configurations */
111   TList fgListConfigurations;                              // see above
112
113   /** the global singleton */
114   static AliHLTConfigurationHandler* fgpInstance;                      //!transient
115   /** number of used instances of the global singleton */
116   static int fgNofInstances;                                       //!transient 
117
118   ClassDef(AliHLTConfigurationHandler, 2);
119 };
120
121 #endif