]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/calibration/AliHLTTPCCalibrationAgent.h
correcting memory leaks on error conditions
[u/mrichter/AliRoot.git] / HLT / TPCLib / calibration / AliHLTTPCCalibrationAgent.h
CommitLineData
32e0c022 1//-*- Mode: C++ -*-
2
3// $Id$
4
5#ifndef ALIHLTTPCCALIBRATIONAGENT_H
6#define ALIHLTTPCCALIBRATIONAGENT_H
7//* This file is property of and copyright by the ALICE HLT Project *
8//* ALICE Experiment at CERN, All rights reserved. *
9//* See cxx source for full Copyright notice *
10
11/** @file AliHLTTPCCalibrationAgent.h
12 @author Kalliopi Kanaki
13 @date
14 @brief Agent of the libAliHLTTPCCalibration library
15*/
16
17#include "AliHLTModuleAgent.h"
18
19// raw data handler of HLTOUT data
20#include "AliHLTOUTHandlerEquId.h"
21
22/**
23 * @class AliHLTTPCCalibrationAgent
24 * This is the agent for the AliHLTTPCCalibration library.<br>
25 *
26 * @ingroup alihlt_tpc
27 */
28class AliHLTTPCCalibrationAgent : public AliHLTModuleAgent {
29 public:
30
31 /*
32 * ---------------------------------------------------------------------------------
33 * Constructor / Destructor
34 * ---------------------------------------------------------------------------------
35 */
36
37 /**
38 * standard constructor. The agent is automatically registered in the
39 * global agent manager
40 */
41 AliHLTTPCCalibrationAgent();
42
43 /** destructor */
44 virtual ~AliHLTTPCCalibrationAgent();
45
46 /*
47 * ---------------------------------------------------------------------------------
48 *
49 * ---------------------------------------------------------------------------------
50 */
51
52 /**
53 * Register all configurations belonging to the sample library with the
54 * AliHLTConfigurationHandler. The agent can adapt the configurations
55 * to be registered to the current AliRoot setup by checking the
56 * runloader.
57 * @param handler [in] the configuration handler
58 * @param rawReader [in] AliRoot RawReader instance
59 * @param runloader [in] AliRoot runloader
60 * @return neg. error code if failed
61 */
62 Int_t CreateConfigurations(AliHLTConfigurationHandler* handler,
63 AliRawReader* rawReader=NULL,
64 AliRunLoader* runloader=NULL) const;
65
66 /**
67 * Get the top configurations for local event reconstruction.
68 * A top configuration describes a processing chain. It can simply be
69 * described by the last configuration(s) in the chain.
70 * The agent can adapt the configurations to be registered to the current
71 * AliRoot setup by checking the runloader.
72 * @param rawReader [in] AliRoot RawReader instance
73 * @param runloader [in] AliRoot runloader
74 * @return string containing the top configurations separated by blanks
75 */
76 const Char_t* GetReconstructionChains(AliRawReader* rawReader=NULL,
77 AliRunLoader* runloader=NULL) const;
78
79 /**
80 * Component libraries which the configurations of this agent depend on.
81 * @return list of component libraries as a blank-separated string.
82 */
83 const Char_t* GetRequiredComponentLibraries() const;
84
85 /**
86 * Register components for the AliHLTSample library.
87 * @param pHandler [in] instance of the component handler
88 */
89 Int_t RegisterComponents(AliHLTComponentHandler* pHandler) const;
90
91 /*
92 * ---------------------------------------------------------------------------------
93 *
94 * ---------------------------------------------------------------------------------
95 */
96
97 /**
98 *
99 */
100 AliHLTModulePreprocessor* GetPreprocessor();
101
102 /*
103 * ---------------------------------------------------------------------------------
104 *
105 * ---------------------------------------------------------------------------------
106 */
107
108 /**
109 *
110 */
111 Int_t GetHandlerDescription(AliHLTComponentDataType dt,
112 AliHLTUInt32_t spec,
113 AliHLTOUTHandlerDesc& desc) const;
114
115 /**
116 *
117 */
118 AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
119 AliHLTUInt32_t spec);
120
121 /**
122 *
123 */
124 Int_t DeleteOutputHandler(AliHLTOUTHandler* pInstance);
125
126 /*
127 class AliHLTOUTSDDRawDataHandler: public AliHLTOUTHandlerEquId {
128 public:
129 AliHLTOUTSDDRawDataHandler() {}
130 ~AliHLTOUTSDDRawDataHandler() {}
131 int ProcessData(AliHLTOUT* pData);
132 private:
133 };
134 */
135
136 protected:
137
138 private:
139
140 /*
141 * ---------------------------------------------------------------------------------
142 * Private functions to implement AliHLTComponent's interface.
143 * These functions provide initialization as well as the actual processing
144 * capabilities of the component.
145 * ---------------------------------------------------------------------------------
146 */
147
148 /** Copy constructor prohibited */
149 AliHLTTPCCalibrationAgent(const AliHLTTPCCalibrationAgent&);
150
151 /** Assignment operator prohibited */
152 AliHLTTPCCalibrationAgent& operator=(const AliHLTTPCCalibrationAgent&);
153
154 /*
155 * ---------------------------------------------------------------------------------
156 * Members
157 * ---------------------------------------------------------------------------------
158 */
159
160 /** Handler for TPC calibration data in the HLTOUT stream */
161 AliHLTOUTHandlerEquId* fRawDataHandler; //!transient
162
163 /** ROOT specific member definition */
164 ClassDef(AliHLTTPCCalibrationAgent, 0);
165};
166
167#endif