components return -ENOSPC if output buffer too small, second trial by the AliRoot...
[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 class AliHLTConfiguration;
25
26 /**
27  * @class AliHLTConfigurationHandler
28  * @brief Global Handling of HLT configurations.
29  *
30  * This class implements the global handling of @ref AliHLTConfiguration objects.
31  * It is a list of all configuartion descriptor currently available in the system.
32  * Each @ref AliHLTConfiguration object is registerd automatically with the
33  * handler and put into the list.
34  *
35  * @note This class is only used for the @ref alihlt_system.
36  *
37  * @ingroup alihlt_system
38  */
39 class AliHLTConfigurationHandler : public AliHLTLogging {
40  public:
41   /** standard constructor */
42   AliHLTConfigurationHandler();
43   
44   //AliHLTConfigurationHandler(AliHLTConfiguration* pConf);
45
46   /** destructor */
47   virtual ~AliHLTConfigurationHandler();
48
49   /*****************************************************************************
50    * registration
51    */
52
53   /**
54    * Register a configuration to the global list of configurations.
55    * @param pConf     The configuration to register
56    */
57   int RegisterConfiguration(AliHLTConfiguration* pConf);
58
59   /**
60    * Create a configuration and register it.
61    * @param id
62    * @param component
63    * @param sources
64    * @param arguments
65    */
66   int CreateConfiguration(const char* id, const char* component, const char* sources, const char* arguments);
67
68   /**
69    * Remove a configuration from the global list.
70    * @param pConf     The configuration to remove
71    */
72   int RemoveConfiguration(AliHLTConfiguration* pConf);
73
74   /**
75    * Remove a configuration from the global list.
76    * @param id     The configuration to remove
77    */
78   int RemoveConfiguration(const char* id);
79
80   /**
81    * Find a configuration from the global list.
82    * @param id     Id of the configuration to find
83    */
84   AliHLTConfiguration* FindConfiguration(const char* id);
85
86   /**
87    * Print the registered configurations to the logging function.
88    */
89   void PrintConfigurations();
90
91
92  private:
93   /** the list of registered configurations */
94   TList fgListConfigurations;                              // see above
95
96   ClassDef(AliHLTConfigurationHandler, 1);
97 };
98
99 #endif