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 */
6 /** @file AliHLTTRDAgent.h
7 @author Matthias Richter
9 @brief Agent of the libAliHLTTRD library
12 #include "AliHLTModuleAgent.h"
13 #include "AliHLTOUTHandlerEquId.h"
15 class AliHLTOUTHandlerChain;
18 * @class AliHLTTRDAgent
19 * This is the agent for the AliHLTTRD library.
21 * @ingroup alihlt_system
23 class AliHLTTRDAgent : public AliHLTModuleAgent {
26 * standard constructor. The agent is automatically registered in the
27 * global agent manager
31 virtual ~AliHLTTRDAgent();
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
38 * @param handler the configuration handler
39 * @param rawReader AliRawReader instance
40 * @param runloader AliRoot runloader
41 * @return neg. error code if failed
43 int CreateConfigurations(AliHLTConfigurationHandler* handler,
44 AliRawReader* rawReader=NULL,
45 AliRunLoader* runloader=NULL) const;
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
57 const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
58 AliRunLoader* runloader=NULL) const;
61 * Component libraries which the configurations of this agent depend on.
62 * @return list of component libraries as a blank-separated string.
64 const char* GetRequiredComponentLibraries() const;
67 * Register components for the AliHLTTRD library.
68 * @param pHandler [in] instance of the component handler
70 int RegisterComponents(AliHLTComponentHandler* pHandler) const;
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
79 int GetHandlerDescription(AliHLTComponentDataType dt,
81 AliHLTOUTHandlerDesc& desc) const;
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
89 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
93 * Delete an HLTOUT handler.
94 * @param pInstance pointer to handler
96 int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
101 /** copy constructor prohibited */
102 AliHLTTRDAgent(const AliHLTTRDAgent&);
103 /** assignment operator prohibited */
104 AliHLTTRDAgent& operator=(const AliHLTTRDAgent&);
106 /** handler for TRD raw data in the HLTOUT stream */
107 AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
109 ClassDef(AliHLTTRDAgent, 0);