make AliVVevent abstract (=0)
[u/mrichter/AliRoot.git] / HLT / global / AliHLTGlobalAgent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTGLOBALAGENT_H
5 #define ALIHLTGLOBALAGENT_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   AliHLTGlobalAgent.h
11 //  @author Matthias Richter
12 //  @date   
13 //  @brief  Agent of the libAliHLTGlobal library
14 // 
15
16 #include "AliHLTModuleAgent.h"
17
18 class AliHLTOUTHandler;
19
20 /**
21  * @class AliHLTGlobalAgent
22  * This is the agent for the AliHLTGlobal library.
23  *
24  * @ingroup alihlt_system
25  */
26 class AliHLTGlobalAgent : public AliHLTModuleAgent {
27  public:
28   /**
29    * standard constructor. The agent is automatically registered in the
30    * global agent manager
31    */
32   AliHLTGlobalAgent();
33   /** destructor */
34   virtual ~AliHLTGlobalAgent();
35
36   int RegisterComponents(AliHLTComponentHandler* pHandler) const;
37
38   /**
39    * Inherited from AliHLTModuleAgent
40    * Register all configurations belonging to this module with the
41    * AliHLTConfigurationHandler. The agent can adapt the configurations
42    * to be registered to the current AliRoot setup by checking the
43    * runloader.
44    * @param handler      the configuration handler
45    * @param rawReader    AliRawReader instance
46    * @param runloader    AliRoot runloader
47    * @return neg. error code if failed
48    */
49   int CreateConfigurations(AliHLTConfigurationHandler* handler,
50                            AliRawReader* rawReader=NULL,
51                            AliRunLoader* runloader=NULL) const;
52
53   /**
54    * Inherited from AliHLTModuleAgent
55    * Get the top configurations belonging to this module.
56    * A top configuration describes a processing chain. It can simply be
57    * described by the last configuration(s) in the chain. 
58    * The agent can adapt the configurations to be registered to the current
59    * AliRoot setup by checking the runloader.
60    * @param rawReader    AliRawReader instance
61    * @param runloader    AliRoot runloader
62    * @return number of configurations, neg. error code if failed
63    */
64   const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
65                                       AliRunLoader* runloader=NULL) const;
66
67   /**
68    * Inherited from AliHLTModuleAgent
69    * Component libraries which the configurations of this agent depend on.
70    * @return list of component libraries as a blank-separated string.
71    */
72   const char* GetRequiredComponentLibraries() const;
73
74   int GetHandlerDescription(AliHLTComponentDataType dt,
75                             AliHLTUInt32_t spec,
76                             AliHLTOUTHandlerDesc& desc) const;
77
78   AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt, AliHLTUInt32_t spec);
79
80   int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
81
82   AliHLTModulePreprocessor* GetPreprocessor();
83
84  protected:
85
86  private:
87   /** copy constructor prohibited */
88   AliHLTGlobalAgent(const AliHLTGlobalAgent&);
89   /** assignment operator prohibited */
90   AliHLTGlobalAgent& operator=(const AliHLTGlobalAgent&);
91
92   ClassDef(AliHLTGlobalAgent, 0);
93 };
94
95 #endif