]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/AliHLTProcessor.h
debug build off by default, started filtering of class names in HLT logging
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTProcessor.h
CommitLineData
a655eae3 1//-*- Mode: C++ -*-
f23a6e1a 2// @(#) $Id$
3
4#ifndef ALIHLTPROCESSOR_H
5#define ALIHLTPROCESSOR_H
6/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
8
bfccbf68 9/** @file AliHLTProcessor.h
10 @author Matthias Richter, Timm Steinbeck
11 @date
12 @brief Base class declaration for HLT analysis components. */
f23a6e1a 13
30338a30 14// see below for class documentation
15// or
16// refer to README to build package
17// or
18// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
19
f23a6e1a 20#include "AliHLTComponent.h"
21
bfccbf68 22/**
23 * @class AliHLTProcessor
24 * Base class of HLT data analysis components.
25 * The class provides a common interface for the implementation of HLT data
26 * analysis components. The child class must implement the functions:
b22e91eb 27 * - @ref DoInit (optional)
28 * - @ref DoDeinit (optional)
29 * - @ref DoEvent
30 * - @ref GetComponentID
31 * - @ref GetInputDataTypes
32 * - @ref GetOutputDataType
33 * - @ref GetOutputDataSize
34 * - @ref Spawn
bfccbf68 35 *
b22e91eb 36 * @ingroup alihlt_component
bfccbf68 37 */
f23a6e1a 38class AliHLTProcessor : public AliHLTComponent {
39 public:
bfccbf68 40 /** standard constructor */
f23a6e1a 41 AliHLTProcessor();
bfccbf68 42 /** standard destructor */
f23a6e1a 43 virtual ~AliHLTProcessor();
44
bfccbf68 45 /* depricated */
9ddaea75 46 int Init( AliHLTComponentEnvironment* environ, void* environParam, int argc, const char** argv );
bfccbf68 47 /* depricated */
f23a6e1a 48 int Deinit();
bfccbf68 49
50 /**
51 * Event processing function.
52 * The method is called by the framework to process one event. After
53 * preparation of data structures. The call is redirected to DoEvent.
54 * @return neg. error code if failed
55 */
3cde846d 56 int DoProcessing( const AliHLTComponentEventData& evtData,
8ede8717 57 const AliHLTComponentBlockData* blocks,
58 AliHLTComponentTriggerData& trigData,
bfccbf68 59 AliHLTUInt8_t* outputPtr,
60 AliHLTUInt32_t& size,
a655eae3 61 vector<AliHLTComponentBlockData>& outputBlocks,
8ede8717 62 AliHLTComponentEventDoneData*& edd );
f23a6e1a 63
64 // Information member functions for registration.
bfccbf68 65
66 /**
67 * Return @ref AliHLTComponent::kProcessor type as component type.
68 * @return component type id
69 */
f23a6e1a 70 TComponentType GetComponentType() { return AliHLTComponent::kProcessor;}
71
72 private:
bfccbf68 73 /**
a655eae3 74 * The low-level data processing method for the component.
75 * This is the custom processing method and can be overloaded by
76 * the component.
bfccbf68 77 * @param evtData event data structure
78 * @param blocks input data block descriptors
79 * @param trigData trigger data structure
80 * @param outputPtr pointer to target buffer
81 * @param size <i>input</i>: size of target buffer
82 * <i>output</i>:size of produced data
83 * @param outputBlocks list to receive output block descriptors
a655eae3 84 * @return neg. error code if failed
bfccbf68 85 */
8ede8717 86 virtual int DoEvent( const AliHLTComponentEventData& evtData,
87 const AliHLTComponentBlockData* blocks,
88 AliHLTComponentTriggerData& trigData,
bfccbf68 89 AliHLTUInt8_t* outputPtr,
90 AliHLTUInt32_t& size,
a655eae3 91 vector<AliHLTComponentBlockData>& outputBlocks );
f23a6e1a 92
a655eae3 93 /**
94 * The high-level data processing method.
95 * This is the default processing method; the method is called
96 * if no low level @ref DoEvent method is overloaded by the component.
97 * @param evtData event data structure
98 * @param trigData trigger data structure
99 * @return neg. error code if failed
100 */
101 virtual int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
102
103 ClassDef(AliHLTProcessor, 1)
f23a6e1a 104};
105#endif