]>
Commit | Line | Data |
---|---|---|
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 | 17 | class AliHLTOUTHandler; |
18 | ||
242bb794 | 19 | /** |
20 | * @class AliHLTAgentUtil | |
21 | * This is the agent for the AliHLTUtil library. | |
22 | * | |
23 | * @ingroup alihlt_system | |
24 | */ | |
25 | class 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 |