]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/util/AliHLTAgentUtil.h
Preparing the RootSchemaEvolutionComponent to run at 2kHz
[u/mrichter/AliRoot.git] / HLT / BASE / util / AliHLTAgentUtil.h
CommitLineData
242bb794 1// @(#) $Id$
2
3#ifndef ALIHLTAGENTUTIL_H
4#define ALIHLTAGENTUTIL_H
5/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
7
8/** @file AliHLTAgentUtil.h
9 @author Matthias Richter
10 @date
11 @brief Agent of the libAliHLTUtil library
12*/
13
14#include "AliHLTModuleAgent.h"
d3382be1 15#include "AliHLTOUTHandler.h"
242bb794 16
b765ad15 17class AliHLTOUTHandler;
18
242bb794 19/**
20 * @class AliHLTAgentUtil
21 * This is the agent for the AliHLTUtil library.
22 *
23 * @ingroup alihlt_system
24 */
25class AliHLTAgentUtil : public AliHLTModuleAgent {
26 public:
27 /**
28 * standard constructor. The agent is automatically registered in the
29 * global agent manager
30 */
31 AliHLTAgentUtil();
32 /** destructor */
33 virtual ~AliHLTAgentUtil();
34
35 /**
36 * Register all configurations belonging to this module with the
37 * AliHLTConfigurationHandler. The agent can adapt the configurations
38 * to be registered to the current AliRoot setup by checking the
39 * runloader.
dee38f1b 40 * @param handler [in] the configuration handler
41 * @param rawReader [in] AliRoot RawReader instance
42 * @param runloader [in] AliRoot runloader
242bb794 43 * @return neg. error code if failed
44 */
45 int CreateConfigurations(AliHLTConfigurationHandler* handler,
dee38f1b 46 AliRawReader* rawReader=NULL,
242bb794 47 AliRunLoader* runloader=NULL) const;
48
49 /**
50 * Get the top configurations belonging to this module.
51 * A top configuration describes a processing chain. It can simply be
52 * described by the last configuration(s) in the chain.
53 * The agent can adapt the configurations to be registered to the current
54 * AliRoot setup by checking the runloader.
dee38f1b 55 * @param rawReader [in] AliRoot RawReader instance
56 * @param runloader [in] AliRoot runloader
57 * @return string containing the top configurations separated by blanks
242bb794 58 */
dee38f1b 59 const char* GetReconstructionChains(AliRawReader* rawReader=NULL,
60 AliRunLoader* runloader=NULL) const;
242bb794 61 /**
62 * Component libraries which the configurations of this agent depend on.
63 * @return list of component libraries as a blank-separated string.
64 */
65 const char* GetRequiredComponentLibraries() const;
66
f3506ea2 67 /**
68 * Register components for the AliHLTUtil library.
69 * @param pHandler [in] instance of the component handler
70 */
71 int RegisterComponents(AliHLTComponentHandler* pHandler) const;
b765ad15 72
73 int GetHandlerDescription(AliHLTComponentDataType dt,
74 AliHLTUInt32_t spec,
75 AliHLTOUTHandlerDesc& desc) const;
76
77 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt, AliHLTUInt32_t spec);
78
79 int DeleteOutputHandler(AliHLTOUTHandler* pInstance);
80
d3382be1 81 /**
82 * The handler for trigger decision blocks in the HLTOUT stream.
83 */
84 class AliHLTStreamerInfoHandler : public AliHLTOUTHandler {
85 public:
86 /** constructor */
3d2686d3 87 AliHLTStreamerInfoHandler() {};
d3382be1 88 /** destructor */
3d2686d3 89 ~AliHLTStreamerInfoHandler() {};
d3382be1 90
91 /// inherited from AliHLTOUTHandler
92 /// do nothing for the moment, the streamer info is handled
93 /// in AliHLTReconstructor
94 int ProcessData(AliHLTOUT* /*pData*/) {return 0;}
95
96 private:
97 /** copy constructor forbidden */
98 AliHLTStreamerInfoHandler(const AliHLTStreamerInfoHandler&);
99 /** assignment operator forbidden */
100 AliHLTStreamerInfoHandler& operator=(const AliHLTStreamerInfoHandler&);
101 };
242bb794 102 protected:
103
104 private:
b765ad15 105 /** copy constructor prohibited */
106 AliHLTAgentUtil(const AliHLTAgentUtil&);
107 /** assignment operator prohibited */
108 AliHLTAgentUtil& operator=(const AliHLTAgentUtil&);
109
110 /** the one and only handler for compstat blocks */
111 AliHLTOUTHandler* fCompStatDataHandler; //!transient
d3382be1 112
113 /** dummy handler for streamer info blocks */
114 AliHLTOUTHandler* fStreamerInfoDataHandler; //!transient
b765ad15 115
116 ClassDef(AliHLTAgentUtil, 1);
242bb794 117};
118
119#endif