// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
 
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef _JBIG2_HUFFMAN_DECODER_H_
#define _JBIG2_HUFFMAN_DECODER_H_
#include "JBig2_BitStream.h"
#include "JBig2_HuffmanTable.h"
class CJBig2_HuffmanDecoder : public CJBig2_Object
{
public:

    CJBig2_HuffmanDecoder(CJBig2_BitStream *pStream);

    ~CJBig2_HuffmanDecoder();

    int decodeAValue(CJBig2_HuffmanTable *pTable, int *nResult);
private:

    CJBig2_BitStream *m_pStream;
};
#endif
