]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTDataSink.h
changes according to coding conventions
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTDataSink.h
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   
11     @brief  Base class declaration for HLT data sink components.
12     @note   The class is used in Offline (AliRoot) context
13 */
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:
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
30  *
31  * @ingroup alihlt_component
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    */
46   int ProcessEvent( const AliHLTComponentEventData& evtData,
47                     const AliHLTComponentBlockData* blocks, 
48                     AliHLTComponentTriggerData& trigData,
49                     AliHLTUInt8_t* outputPtr, 
50                     AliHLTUInt32_t& size,
51                     AliHLTUInt32_t& outputBlockCnt, 
52                     AliHLTComponentBlockData*& outputBlocks,
53                     AliHLTComponentEventDoneData*& edd );
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
63  private:
64   /**
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
69    */
70   virtual int DumpEvent( const AliHLTComponentEventData& evtData,
71                          const AliHLTComponentBlockData* blocks, 
72                          AliHLTComponentTriggerData& trigData ) = 0;
73
74   ClassDef(AliHLTDataSink, 0)
75 };
76 #endif