Home | History | Annotate | Download | only in jbig2
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef CORE_SRC_FXCODEC_JBIG2_JBIG2_ARITHINTDECODER_H_
      8 #define CORE_SRC_FXCODEC_JBIG2_JBIG2_ARITHINTDECODER_H_
      9 
     10 #include <vector>
     11 
     12 #include "JBig2_ArithDecoder.h"
     13 #include "core/include/fxcrt/fx_system.h"
     14 
     15 class CJBig2_ArithIntDecoder {
     16  public:
     17   CJBig2_ArithIntDecoder();
     18   ~CJBig2_ArithIntDecoder();
     19 
     20   // Returns true on success, and false when an OOB condition occurs. Many
     21   // callers can tolerate OOB and do not check the return value.
     22   bool decode(CJBig2_ArithDecoder* pArithDecoder, int* nResult);
     23 
     24  private:
     25   std::vector<JBig2ArithCtx> m_IAx;
     26 };
     27 
     28 class CJBig2_ArithIaidDecoder {
     29  public:
     30   explicit CJBig2_ArithIaidDecoder(unsigned char SBSYMCODELENA);
     31   ~CJBig2_ArithIaidDecoder();
     32 
     33   void decode(CJBig2_ArithDecoder* pArithDecoder, FX_DWORD* nResult);
     34 
     35  private:
     36   std::vector<JBig2ArithCtx> m_IAID;
     37 
     38   const unsigned char SBSYMCODELEN;
     39 };
     40 
     41 #endif  // CORE_SRC_FXCODEC_JBIG2_JBIG2_ARITHINTDECODER_H_
     42