]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TRD/AliHLTTRDAgent.h
Adding new component for TRD monitoring (Theodor)
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDAgent.h
CommitLineData
d679dd6c 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
15class AliHLTOUTHandlerChain;
16
17/**
18 * @class AliHLTTRDAgent
19 * This is the agent for the AliHLTTRD library.
20 *
21 * @ingroup alihlt_system
22 */
23class 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