cba1d58b1176d28a386a949f86f5c44c8fb07eba
[u/mrichter/AliRoot.git] / HLT / SampleLib / AliHLTDummyComponent.h
1 // $Id$
2
3 #ifndef ALIHLTDUMMYCOMPONENT_H
4 #define ALIHLTDUMMYCOMPONENT_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7
8 /** @file   AliHLTDummyComponent.h
9     @author Timm Steinbeck, Matthias Richter
10     @date   
11     @brief  Declaration of a dummy component. */
12
13
14 #include "AliHLTProcessor.h"
15
16 /**
17  * @class AliHLTDummyComponent
18  * @brief A dummy HLT processing component. 
19  *
20  * An implementiation of a dummy component that just copies its input data
21  * as a test, demonstration, and example of the HLT component scheme.
22  * @ingroup alihlt_tutorial
23  */
24 class AliHLTDummyComponent : public AliHLTProcessor
25     {
26     public:
27         AliHLTDummyComponent();
28         virtual ~AliHLTDummyComponent();
29
30         // Public functions to implement AliHLTComponent's interface.
31         // These functions are required for the registration process
32
33         const char* GetComponentID();
34         void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
35         AliHLTComponent_DataType GetOutputDataType();
36         virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
37         AliHLTComponent* Spawn();
38         
39     protected:
40         
41         // Protected functions to implement AliHLTComponent's interface.
42         // These functions provide initialization as well as the actual processing
43         // capabilities of the component. 
44
45         int DoInit( int argc, const char** argv );
46         int DoDeinit();
47         int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks, 
48                      AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
49                      AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
50         
51     private:
52
53         // The size of the output data produced, as a percentage of the input data's size.
54         // Can be greater than 100 (%)
55         unsigned fOutputPercentage;
56         
57         ClassDef(AliHLTDummyComponent, 0)
58
59     };
60 #endif