// 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_SYMBOL_DICT_H_
#define _JBIG2_SYMBOL_DICT_H_
#include "JBig2_Define.h"
#include "JBig2_ArithDecoder.h"
#include "JBig2_Image.h"
class CJBig2_SymbolDict : public CJBig2_Object
{
public:

    CJBig2_SymbolDict();

    ~CJBig2_SymbolDict();
public:
    FX_DWORD SDNUMEXSYMS;
    CJBig2_Image **SDEXSYMS;
    FX_BOOL m_bContextRetained;
    JBig2ArithCtx *m_gbContext,
                  *m_grContext;
};
#endif
