]>
Commit | Line | Data |
---|---|---|
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 | */ |
33 | class 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 |