aec210c8e75a56047d25a3900c5e80cb41d9180d
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTConfigurationHandler.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTCONFIGURATIONHANDLER_H
5 #define ALIHLTCONFIGURATIONHANDLER_H
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8
9 /** @file   AliHLTConfigurationHandler.h
10     @author Matthias Richter
11     @date   
12     @brief  Global handling of HLT configurations.
13 */
14
15 // see below for class documentation
16 // or
17 // refer to README to build package
18 // or
19 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt   
20
21 #include <TList.h>
22
23 class AliHLTConfiguration;
24
25 /**
26  * @class AliHLTConfigurationHandler
27  * @brief Global Handling of HLT configurations.
28  *
29  * This class implements the global handling of @ref AliHLTConfiguration objects.
30  * It is a list of all configuartion descriptor currently available in the system.
31  * Each @ref AliHLTConfiguration object is registerd automatically with the
32  * handler and put into the list.
33  *
34  * @note This class is only used for the @ref alihlt_system.
35  *
36  * @ingroup alihlt_system
37  */
38 class AliHLTConfigurationHandler : public AliHLTLogging {
39  public:
40   /** standard constructor */
41   AliHLTConfigurationHandler();
42   
43   //AliHLTConfigurationHandler(AliHLTConfiguration* pConf);
44
45   /** destructor */
46   virtual ~AliHLTConfigurationHandler();
47
48   /*****************************************************************************
49    * registration
50    */
51
52   /**
53    * Register a configuration to the global list of configurations.
54    * @param pConf     The configuration to register
55    */
56   int RegisterConfiguration(AliHLTConfiguration* pConf);
57
58   /**
59    * Create a configuration and register it.
60    * @param id
61    * @param component
62    * @param sources
63    * @param arguments
64    */
65   int CreateConfiguration(const char* id, const char* component, const char* sources, const char* arguments);
66
67   /**
68    * Remove a configuration from the global list.
69    * @param pConf     The configuration to remove
70    */
71   int RemoveConfiguration(AliHLTConfiguration* pConf);
72
73   /**
74    * Remove a configuration from the global list.
75    * @param id     The configuration to remove
76    */
77   int RemoveConfiguration(const char* id);
78
79   /**
80    * Find a configuration from the global list.
81    * @param id     Id of the configuration to find
82    */
83   AliHLTConfiguration* FindConfiguration(const char* id);
84
85   /**
86    * Print the registered configurations to the logging function.
87    */
88   void PrintConfigurations();
89
90
91  private:
92   /** the list of registered configurations */
93   TList fgListConfigurations;                              // see above
94
95   ClassDef(AliHLTConfigurationHandler, 1);
96 };
97
98 #endif