]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/comp/AliHLTTPCCompModelDeflaterComponent.h
coding conventions and compilation warnings and work on adaptive TPC data compression...
[u/mrichter/AliRoot.git] / HLT / TPCLib / comp / AliHLTTPCCompModelDeflaterComponent.h
1 // XEmacs -*-C++-*-
2 // $Id$
3
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                               *
9
10 /** @file   AliHLTTPCCompModelDeflaterComponent.h
11     @author Timm Steinbeck
12     @date   
13     @brief  Declaration of a copy component. */
14
15
16 #include "AliHLTProcessor.h"
17 #include "AliHLTTPCCompModelDeflater.h"
18 #include "AliHLTTPCCompModelConverter.h"
19
20 /**
21  * @class AliHLTTPCCompModelDeflaterComponent
22  * @brief A dummy HLT processing component. 
23  *
24  * An implementiation of a deflater component that 
25  * compresses the data previously converted with the
26  * converting component. 
27  * 
28  * 
29  * @ingroup alihlt_tpc
30  */
31 class AliHLTTPCCompModelDeflaterComponent : public AliHLTProcessor
32     {
33     public:
34
35       /** standard constructor */
36       AliHLTTPCCompModelDeflaterComponent();
37       /** standard destructor */
38       virtual ~AliHLTTPCCompModelDeflaterComponent();
39       
40       // Public functions to implement AliHLTComponent's interface.
41       // These functions are required for the registration process
42       
43       /** function to get component id 
44        * @return const char* pointer to componentid
45        */
46       const char* GetComponentID();
47
48       /** function to get input data types
49        * @param list vecotr of AliHLTComponent_DataType
50        */
51       void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
52
53       /** function to get output data type
54        * @return AliHLTComponent_DataType
55        */
56       AliHLTComponent_DataType GetOutputDataType();
57
58       /** function to get output data size
59        * @param constBase address of an unsigned long
60        * @param inputMultiplier address of a double
61        */
62       virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
63
64       /** spawn function
65        * @return AliHLTComponent* pointer to instance
66        */
67       AliHLTComponent* Spawn();
68       
69     protected:
70       
71       // Protected functions to implement AliHLTComponent's interface.
72       // These functions provide initialization as well as the actual processing
73       // capabilities of the component. 
74       
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
79        */
80       int DoInit( int argc, const char** argv );
81
82       /** deinitialisation function
83        * @return zero upon success
84        */
85       int DoDeinit();
86
87       /** do event function
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
95        */
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 );
99       
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
104       
105       /** member variable for forwarding if uncompressed */
106       bool fForwardIfUncompressed; // member variable for forwarding if uncompressed
107       
108     private:
109
110         ClassDef(AliHLTTPCCompModelDeflaterComponent, 0)
111
112     };
113 #endif