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_FXCODEC_JBIG2_JBIG2_ARITHINTDECODER_H_ 8 #define CORE_FXCODEC_JBIG2_JBIG2_ARITHINTDECODER_H_ 9 10 #include <vector> 11 12 #include "core/fxcodec/jbig2/JBig2_ArithDecoder.h" 13 #include "core/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, uint32_t* nResult); 34 35 private: 36 std::vector<JBig2ArithCtx> m_IAID; 37 38 const unsigned char SBSYMCODELEN; 39 }; 40 41 #endif // CORE_FXCODEC_JBIG2_JBIG2_ARITHINTDECODER_H_ 42