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