1 // Copyright 2014 PDFium Authors. All rights reserved.
\r
2 // Use of this source code is governed by a BSD-style license that can be
\r
3 // found in the LICENSE file.
\r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
\r
7 #ifndef _BC_ENCODERCONTEXT_H_
\r
8 #define _BC_ENCODERCONTEXT_H_
\r
9 class CBC_SymbolShapeHint;
\r
10 class CBC_SymbolInfo;
\r
11 class CBC_Dimension;
\r
12 class CBC_EncoderContext;
\r
13 class CBC_EncoderContext : public CBC_SymbolShapeHint
\r
16 CBC_EncoderContext(const CFX_WideString msg, CFX_WideString ecLevel, FX_INT32 &e);
\r
17 virtual ~CBC_EncoderContext();
\r
18 void setSymbolShape(SymbolShapeHint shape);
\r
19 void setSizeConstraints(CBC_Dimension* minSize, CBC_Dimension* maxSize);
\r
20 CFX_WideString getMessage();
\r
21 void setSkipAtEnd(FX_INT32 count);
\r
22 FX_WCHAR getCurrentChar();
\r
23 FX_WCHAR getCurrent();
\r
24 void writeCodewords(CFX_WideString codewords);
\r
25 void writeCodeword(FX_WCHAR codeword);
\r
26 FX_INT32 getCodewordCount();
\r
27 void signalEncoderChange(FX_INT32 encoding);
\r
28 void resetEncoderSignal();
\r
29 FX_BOOL hasMoreCharacters();
\r
30 FX_INT32 getRemainingCharacters();
\r
31 void updateSymbolInfo(FX_INT32 &e);
\r
32 void updateSymbolInfo(FX_INT32 len, FX_INT32 &e);
\r
33 void resetSymbolInfo();
\r
35 CFX_WideString m_msg;
\r
36 CFX_WideString m_codewords;
\r
38 FX_INT32 m_newEncoding;
\r
39 CBC_SymbolInfo* m_symbolInfo;
\r
41 FX_INT32 getTotalMessageCharCount();
\r
43 SymbolShapeHint m_shape;
\r
44 CBC_Dimension* m_minSize;
\r
45 CBC_Dimension* m_maxSize;
\r
46 FX_INT32 m_skipAtEnd;
\r