3d751a786720f099285d18a139e45435687bcc10
[u/mrichter/AliRoot.git] / HLT / comp / AliHLTCompAgent.h
1 // @(#) $Id$
2
3 #ifndef ALIHLTCOMPAGENT_H
4 #define ALIHLTCOMPAGENT_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 /** @file   AliHLTCompAgent.h
9     @author Matthias Richter
10     @date   
11     @brief  Agent of the libAliHLTComp library
12 */
13
14 // see class description below
15 // or
16 // refer to README to build package
17 // or
18 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
19
20 #include "AliHLTModuleAgent.h"
21
22 /**
23  * @class AliHLTCompAgent
24  * This is the agent for the AliHLTComp library.
25  *
26  * @ingroup alihlt_system
27  */
28 class AliHLTCompAgent : public AliHLTModuleAgent {
29  public:
30   /**
31    * standard constructor. The agent is automatically registered in the
32    * global agent manager
33    */
34   AliHLTCompAgent();
35   /** destructor */
36   virtual ~AliHLTCompAgent();
37
38   /**
39    * Register all configurations belonging to this module with the
40    * AliHLTConfigurationHandler. The agent can adapt the configurations
41    * to be registered to the current AliRoot setup by checking the
42    * runloader.
43    * @param handler   [in] the configuration handler
44    * @param rawReader [in] AliRoot RawReader instance 
45    * @param runloader [in] AliRoot runloader
46    * @return neg. error code if failed
47    */
48   int CreateConfigurations(AliHLTConfigurationHandler* handler,
49                            AliRawReader* rawReader=NULL,
50                            AliRunLoader* runloader=NULL) const;
51
52   /**
53    * Get the top configurations belonging to this module.
54    * A top configuration describes a processing chain. It can simply be
55    * described by the last configuration(s) in the chain. 
56    * The agent can adapt the configurations to be registered to the current
57    * AliRoot setup by checking the runloader.
58    * @param rawReader [in] AliRoot RawReader instance 
59    * @param runloader [in] AliRoot runloader
60    * @return string containing the top configurations separated by blanks
61    */
62   const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
63                                       AliRunLoader* runloader=NULL) const;
64   /**
65    * Component libraries which the configurations of this agent depend on.
66    * @return list of component libraries as a blank-separated string.
67    */
68   const char* GetRequiredComponentLibraries() const;
69
70   /**
71    * Register components for the AliHLTComp library.
72    * @param pHandler  [in] instance of the component handler          
73    */
74   int RegisterComponents(AliHLTComponentHandler* pHandler) const;
75  protected:
76
77  private:
78   ClassDef(AliHLTCompAgent, 0);
79 };
80
81 #endif