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 *
9 /// @file AliHLTDataInflaterSimple.h
10 /// @author Matthias Richter
12 /// @brief Data inflater implementation for format of AliHLTDataDeflaterSimple
15 #include "AliHLTDataInflater.h"
16 #include "AliHLTDataDeflaterSimple.h"
18 class AliHLTDataInflaterSimple : public AliHLTDataInflater
21 /// standard constructor
22 AliHLTDataInflaterSimple();
24 ~AliHLTDataInflaterSimple();
26 /// add a parameter definition to the configuration, return reference id
27 int AddParameterDefinition(const char* name, int bitLength, int reducedBitLength);
29 /// overloaded from AliHLTDataInflater
30 virtual bool NextValue(AliHLTUInt64_t& value, AliHLTUInt32_t& length);
31 /// switch to next parameter
32 virtual int NextParameter() {
33 if (fParameterDefinitions.size()==0) return -1;
34 if (fLegacyMode>0) return fCurrentParameter;
36 if ((++fCurrentParameter)>=(int)fParameterDefinitions.size()) fCurrentParameter=0;
37 return fCurrentParameter;
42 /** copy constructor prohibited */
43 AliHLTDataInflaterSimple(const AliHLTDataInflaterSimple&);
44 /** assignment operator prohibited */
45 AliHLTDataInflaterSimple& operator=(const AliHLTDataInflaterSimple&);
47 /// parameter definitions
48 vector<AliHLTDataDeflaterSimple::AliHLTDataDeflaterParameter> fParameterDefinitions; //!
50 /// current parameter during reading
51 int fCurrentParameter; //!
52 /// legacy mode to handle code not using NextParameter()
55 ClassDef(AliHLTDataInflaterSimple, 0)
58 #endif //ALIHLTDATAINFLATERSIMPLE_H