3 #ifndef ALIHLTDATASOURCE_H
4 #define ALIHLTDATASOURCE_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
8 /** @file AliHLTDataSource.h
9 @author Matthias Richter
11 @brief Base class declaration for HLT data source components.
12 @note The class is used in Offline (AliRoot) context
15 #include "AliHLTComponent.h"
18 * @class AliHLTDataSource
19 * Base class of HLT data source components.
20 * The class provides a common interface for the implementation of HLT data
21 * source 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 AliHLTDataSource : public AliHLTComponent {
35 /** standard constructor */
37 /** standard destructor */
38 virtual ~AliHLTDataSource();
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 GetEvent.
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::kSource type as component type.
59 * @return component type id
61 TComponentType GetComponentType() { return AliHLTComponent::kSource;}
65 * Data processing method for the component.
66 * @param evtData event data structure
67 * @param trigData trigger data structure
68 * @param outputPtr pointer to target buffer
69 * @param size <i>input</i>: size of target buffer
70 * <i>output</i>:size of produced data
71 * @param outputBlocks list to receive output block descriptors
74 virtual int GetEvent( const AliHLTComponentEventData& evtData,
75 AliHLTComponentTriggerData& trigData,
76 AliHLTUInt8_t* outputPtr,
78 vector<AliHLTComponentBlockData>& outputBlocks ) = 0;
80 ClassDef(AliHLTDataSource, 0)