3 #ifndef ALIHLTDATASINK_H
4 #define ALIHLTDATASINK_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
8 /** @file AliHLTDataSink.h
9 @author Matthias Richter
11 @brief Base class declaration for HLT data sink components.
12 @note The class is used in Offline (AliRoot) context
15 #include "AliHLTComponent.h"
18 * @class AliHLTDataSink
19 * Base class of HLT data sink components.
20 * The class provides a common interface for the implementation of HLT data
21 * sink components. The child class must implement the functions:
22 * - @ref DoInit (optional)
23 * - @ref DoDeinit (optional)
25 * - @ref GetComponentID
26 * - @ref GetInputDataTypes
27 * - @ref GetOutputDataType
28 * - @ref GetOutputDataSize
31 * @ingroup alihlt_component
33 class AliHLTDataSink : public AliHLTComponent {
35 /** standard constructor */
37 /** standard destructor */
38 virtual ~AliHLTDataSink();
41 * Event processing function.
42 * The method is called by the framework to process one event. After
43 * preparation of data structures. The call is redirected to DumpEvent.
44 * @return neg. error code if failed
46 int ProcessEvent( const AliHLTComponentEventData& evtData,
47 const AliHLTComponentBlockData* blocks,
48 AliHLTComponentTriggerData& trigData,
49 AliHLTUInt8_t* outputPtr,
51 AliHLTUInt32_t& outputBlockCnt,
52 AliHLTComponentBlockData*& outputBlocks,
53 AliHLTComponentEventDoneData*& edd );
55 // Information member functions for registration.
58 * Return @ref AliHLTComponent::kSink type as component type.
59 * @return component type id
61 TComponentType GetComponentType() { return AliHLTComponent::kSink;}
65 * Data processing method for the component.
66 * @param evtData event data structure
67 * @param blocks input data block descriptors
68 * @param trigData trigger data structure
70 virtual int DumpEvent( const AliHLTComponentEventData& evtData,
71 const AliHLTComponentBlockData* blocks,
72 AliHLTComponentTriggerData& trigData ) = 0;
74 ClassDef(AliHLTDataSink, 0)