4 #ifndef ALIHLTTPCCOMPMODELDEFLATERCOMPONENT_H
5 #define ALIHLTTPCCOMPMODELDEFLATERCOMPONENT_H
6 //* This file is property of and copyright by the ALICE HLT Project *
7 //* ALICE Experiment at CERN, All rights reserved. *
8 //* See cxx source for full Copyright notice *
10 /** @file AliHLTTPCCompModelDeflaterComponent.h
11 @author Timm Steinbeck
13 @brief Declaration of a copy component. */
16 #include "AliHLTProcessor.h"
17 #include "AliHLTTPCCompModelDeflater.h"
18 #include "AliHLTTPCCompModelConverter.h"
21 * @class AliHLTTPCCompModelDeflaterComponent
22 * @brief A dummy HLT processing component.
24 * An implementiation of a deflater component that
25 * compresses the data previously converted with the
26 * converting component.
31 class AliHLTTPCCompModelDeflaterComponent : public AliHLTProcessor
35 /** standard constructor */
36 AliHLTTPCCompModelDeflaterComponent();
37 /** standard destructor */
38 virtual ~AliHLTTPCCompModelDeflaterComponent();
40 // Public functions to implement AliHLTComponent's interface.
41 // These functions are required for the registration process
43 /** function to get component id
44 * @return const char* pointer to componentid
46 const char* GetComponentID();
48 /** function to get input data types
49 * @param list vecotr of AliHLTComponent_DataType
51 void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
53 /** function to get output data type
54 * @return AliHLTComponent_DataType
56 AliHLTComponent_DataType GetOutputDataType();
58 /** function to get output data size
59 * @param constBase address of an unsigned long
60 * @param inputMultiplier address of a double
62 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
65 * @return AliHLTComponent* pointer to instance
67 AliHLTComponent* Spawn();
71 // Protected functions to implement AliHLTComponent's interface.
72 // These functions provide initialization as well as the actual processing
73 // capabilities of the component.
75 /** initialisation function
76 * @param argc integer counting number of input arguments
77 * @param argv const char** for parameter values
78 * @return zero upon success
80 int DoInit( int argc, const char** argv );
82 /** deinitialisation function
83 * @return zero upon success
88 * @param evtData const AliHLTComponent_EventData& to event data
89 * @param blocks const AliHLTComponent_BlockData* to blocks of event data
90 * @param trigData AliHLTComponent_TriggerData& of trigger data
91 * @param outputPtr AliHLTUInt8_t* pointer to output data
92 * @param size AliHLTUInt32_t& of output size
93 * @param outputBlocks vector<AliHLTComponent_BlockData>& of output block data
94 * @return zero upon success
96 int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks,
97 AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
98 AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
100 /** member variable for instance of model deflater class */
101 AliHLTTPCCompModelDeflater fModelDeflater; // member variable for instance of model deflater class
102 /** member variable for instance of model converter class */
103 AliHLTTPCCompModelConverter fConverter; // member variable for instance of model converter class
105 /** member variable for forwarding if uncompressed */
106 bool fForwardIfUncompressed; // member variable for forwarding if uncompressed
110 ClassDef(AliHLTTPCCompModelDeflaterComponent, 0)