]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTConfigurationHandler.h
coding conventions
[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 /**
17  * @class AliHLTConfigurationHandler
18  * @brief Global Handling of HLT configurations.
19  *
20  * This class implements the global handling of @ref AliHLTConfiguration objects.
21  * It is a list of all configuartion descriptor currently available in the system.
22  * Each @ref AliHLTConfiguration object is registerd automatically with the
23  * handler and put into the list.
24  *
25  * @note This class is only used for the @ref alihlt_system.
26  *
27  * @ingroup alihlt_system
28  */
29 class AliHLTConfigurationHandler : public AliHLTLogging {
30  public:
31   /** standard constructor */
32   AliHLTConfigurationHandler();
33   
34   //AliHLTConfigurationHandler(AliHLTConfiguration* pConf);
35
36   /** destructor */
37   virtual ~AliHLTConfigurationHandler();
38
39   /*****************************************************************************
40    * registration
41    */
42
43   /**
44    * Register a configuration to the global list of configurations.
45    * @param pConf     The configuration to register
46    */
47   int RegisterConfiguration(AliHLTConfiguration* pConf);
48
49   /**
50    * Create a configuration and register it.
51    * @param id
52    * @param component
53    * @param sources
54    * @param arguments
55    */
56   int CreateConfiguration(const char* id, const char* component, const char* sources, const char* arguments);
57
58   /**
59    * Remove a configuration from the global list.
60    * @param pConf     The configuration to remove
61    */
62   int RemoveConfiguration(AliHLTConfiguration* pConf);
63
64   /**
65    * Remove a configuration from the global list.
66    * @param id     The configuration to remove
67    */
68   int RemoveConfiguration(const char* id);
69
70   /**
71    * Find a configuration from the global list.
72    * @param id     Id of the configuration to find
73    */
74   AliHLTConfiguration* FindConfiguration(const char* id);
75
76   /**
77    * Print the registered configurations to the logging function.
78    */
79   void PrintConfigurations();
80
81
82  private:
83   /** the list of registered configurations */
84   static TList fgListConfigurations;                              // see above
85   /** the list of dynamic configurations (for proper cleanup) */
86   static TList fgListDynamicConfigurations;                       // see above
87
88   ClassDef(AliHLTConfigurationHandler, 0);
89 };
90
91 #endif