]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/BASE/AliHLTDataSink.h
component documentation
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTDataSink.h
CommitLineData
421b7534 1// @(#) $Id$
2
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 */
7
8/** @file AliHLTDataSink.h
9 @author Matthias Richter
10 @date
b22e91eb 11 @brief Base class declaration for HLT data sink components.
12 @note The class is used in Offline (AliRoot) context
13*/
421b7534 14
15#include "AliHLTComponent.h"
16
17/**
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:
b22e91eb 22 * - @ref DoInit (optional)
23 * - @ref DoDeinit (optional)
24 * - @ref DumpEvent
25 * - @ref GetComponentID
26 * - @ref GetInputDataTypes
27 * - @ref GetOutputDataType
28 * - @ref GetOutputDataSize
29 * - @ref Spawn
421b7534 30 *
b22e91eb 31 * @ingroup alihlt_component
421b7534 32 */
33class AliHLTDataSink : public AliHLTComponent {
34 public:
35 /** standard constructor */
36 AliHLTDataSink();
37 /** standard destructor */
38 virtual ~AliHLTDataSink();
39
40 /**
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
45 */
3cde846d 46 int DoProcessing( const AliHLTComponentEventData& evtData,
8ede8717 47 const AliHLTComponentBlockData* blocks,
48 AliHLTComponentTriggerData& trigData,
421b7534 49 AliHLTUInt8_t* outputPtr,
50 AliHLTUInt32_t& size,
51 AliHLTUInt32_t& outputBlockCnt,
8ede8717 52 AliHLTComponentBlockData*& outputBlocks,
53 AliHLTComponentEventDoneData*& edd );
421b7534 54
55 // Information member functions for registration.
56
57 /**
58 * Return @ref AliHLTComponent::kSink type as component type.
59 * @return component type id
60 */
61 TComponentType GetComponentType() { return AliHLTComponent::kSink;}
62
9ce4bf4a 63 /**
64 * Default implementation for all data sinks.
65 * There are no output data types.
66 */
67 AliHLTComponentDataType GetOutputDataType();
68
69 /**
70 * Default implementation for all data sinks.
71 * There is no output data.
72 */
73 void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
74
421b7534 75 private:
76 /**
77 * Data processing method for the component.
78 * @param evtData event data structure
79 * @param blocks input data block descriptors
80 * @param trigData trigger data structure
81 */
8ede8717 82 virtual int DumpEvent( const AliHLTComponentEventData& evtData,
83 const AliHLTComponentBlockData* blocks,
84 AliHLTComponentTriggerData& trigData ) = 0;
421b7534 85
86 ClassDef(AliHLTDataSink, 0)
87};
88#endif