]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDAgent.h
Adding new component for TRD monitoring (Theodor)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDAgent.h
1 #ifndef ALIHLTTRDAGENT_H
2 #define ALIHLTTRDAGENT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /** @file   AliHLTTRDAgent.h
7     @author Matthias Richter
8     @date   
9     @brief  Agent of the libAliHLTTRD library
10 */
11
12 #include "AliHLTModuleAgent.h"
13 #include "AliHLTOUTHandlerEquId.h"
14
15 class AliHLTOUTHandlerChain;
16
17 /**
18  * @class AliHLTTRDAgent
19  * This is the agent for the AliHLTTRD library.
20  *
21  * @ingroup alihlt_system
22  */
23 class AliHLTTRDAgent : public AliHLTModuleAgent {
24  public:
25   /**
26    * standard constructor. The agent is automatically registered in the
27    * global agent manager
28    */
29   AliHLTTRDAgent();
30   /** destructor */
31   virtual ~AliHLTTRDAgent();
32
33   /**
34    * Register all configurations belonging to this module with the
35    * AliHLTConfigurationHandler. The agent can adapt the configurations
36    * to be registered to the current AliRoot setup by checking the
37    * runloader.
38    * @param handler      the configuration handler
39    * @param rawReader    AliRawReader instance
40    * @param runloader    AliRoot runloader
41    * @return neg. error code if failed
42    */
43   int CreateConfigurations(AliHLTConfigurationHandler* handler,
44                            AliRawReader* rawReader=NULL,
45                            AliRunLoader* runloader=NULL) const;
46
47   /**
48    * Get the top configurations belonging to this module.
49    * A top configuration describes a processing chain. It can simply be
50    * described by the last configuration(s) in the chain. 
51    * The agent can adapt the configurations to be registered to the current
52    * AliRoot setup by checking the runloader.
53    * @param rawReader    AliRawReader instance
54    * @param runloader    AliRoot runloader
55    * @return number of configurations, neg. error code if failed
56    */
57   const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
58                                       AliRunLoader* runloader=NULL) const;
59
60   /**
61    * Component libraries which the configurations of this agent depend on.
62    * @return list of component libraries as a blank-separated string.
63    */
64   const char* GetRequiredComponentLibraries() const;
65
66   /**
67    * Register components for the AliHLTTRD library.
68    * @param pHandler  [in] instance of the component handler          
69    */
70   int RegisterComponents(AliHLTComponentHandler* pHandler) const;
71
72   /**
73    * Get handler decription for TRD data in the HLTOUT data stream.
74    * @param dt        [in] data type of the block
75    * @param spec      [in] specification of the block
76    * @param desc      [out] handler description
77    * @return 1 if the agent can provide a handler, 0 if not
78    */
79   int GetHandlerDescription(AliHLTComponentDataType dt,
80                             AliHLTUInt32_t spec,
81                             AliHLTOUTHandlerDesc& desc) const;
82
83   /**
84    * Get specific handler for TRD data in the HLTOUT data stream.
85    * @param dt        [in] data type of the block
86    * @param spec      [in] specification of the block
87    * @return pointer to handler
88    */
89   AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
90                                      AliHLTUInt32_t spec);
91
92   /**
93    * Delete an HLTOUT handler.
94    * @param pInstance      pointer to handler
95    */
96   int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
97
98  protected:
99
100  private:
101   /** copy constructor prohibited */
102   AliHLTTRDAgent(const AliHLTTRDAgent&);
103   /** assignment operator prohibited */
104   AliHLTTRDAgent& operator=(const AliHLTTRDAgent&);
105
106   /** handler for TRD raw data in the HLTOUT stream */
107   AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
108
109   ClassDef(AliHLTTRDAgent, 0);
110 };
111
112 #endif