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 _BC_C40ENCODER_H_ 8 #define _BC_C40ENCODER_H_ 9 class CBC_C40Encoder; 10 class CBC_C40Encoder : public CBC_Encoder { 11 public: 12 CBC_C40Encoder(); 13 virtual ~CBC_C40Encoder(); 14 virtual int32_t getEncodingMode(); 15 virtual void Encode(CBC_EncoderContext& context, int32_t& e); 16 static void writeNextTriplet(CBC_EncoderContext& context, 17 CFX_WideString& buffer); 18 virtual void handleEOD(CBC_EncoderContext& context, 19 CFX_WideString& buffer, 20 int32_t& e); 21 virtual int32_t encodeChar(FX_WCHAR c, CFX_WideString& sb, int32_t& e); 22 23 private: 24 int32_t backtrackOneCharacter(CBC_EncoderContext& context, 25 CFX_WideString& buffer, 26 CFX_WideString& removed, 27 int32_t lastCharSize, 28 int32_t& e); 29 static CFX_WideString encodeToCodewords(CFX_WideString sb, int32_t startPos); 30 }; 31 #endif 32