Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 : #ifndef ALIHLTDATAINFLATERSIMPLE_H
4 : #define ALIHLTDATAINFLATERSIMPLE_H
5 : //* This file is property of and copyright by the ALICE HLT Project *
6 : //* ALICE Experiment at CERN, All rights reserved. *
7 : //* See cxx source for full Copyright notice *
8 :
9 : /// @file AliHLTDataInflaterSimple.h
10 : /// @author Matthias Richter
11 : /// @date 2011-09-01
12 : /// @brief Data inflater implementation for format of AliHLTDataDeflaterSimple
13 : /// @note
14 :
15 : #include "AliHLTDataInflater.h"
16 : #include "AliHLTDataDeflaterSimple.h"
17 :
18 : class AliHLTDataInflaterSimple : public AliHLTDataInflater
19 : {
20 : public:
21 : /// standard constructor
22 : AliHLTDataInflaterSimple();
23 : /// destructor
24 : ~AliHLTDataInflaterSimple();
25 :
26 : /// add a parameter definition to the configuration, return reference id
27 : int AddParameterDefinition(const char* name, int bitLength, int reducedBitLength);
28 :
29 : /// overloaded from AliHLTDataInflater
30 : virtual bool NextValue(AliHLTUInt64_t& value, AliHLTUInt32_t& length);
31 : /// switch to next parameter
32 : virtual int NextParameter() {
33 0 : if (fParameterDefinitions.size()==0) return -1;
34 0 : if (fLegacyMode>0) return fCurrentParameter;
35 0 : fLegacyMode=0;
36 0 : if ((++fCurrentParameter)>=(int)fParameterDefinitions.size()) fCurrentParameter=0;
37 0 : return fCurrentParameter;
38 0 : }
39 :
40 : protected:
41 : private:
42 : /** copy constructor prohibited */
43 : AliHLTDataInflaterSimple(const AliHLTDataInflaterSimple&);
44 : /** assignment operator prohibited */
45 : AliHLTDataInflaterSimple& operator=(const AliHLTDataInflaterSimple&);
46 :
47 : /// parameter definitions
48 : vector<AliHLTDataDeflaterSimple::AliHLTDataDeflaterParameter> fParameterDefinitions; //!
49 :
50 : /// current parameter during reading
51 : int fCurrentParameter; //!
52 : /// legacy mode to handle code not using NextParameter()
53 : int fLegacyMode;
54 :
55 126 : ClassDef(AliHLTDataInflaterSimple, 0)
56 : };
57 :
58 : #endif //ALIHLTDATAINFLATERSIMPLE_H
|