1 /* 2 * 3 * (C) Copyright IBM Corp. and others 2013 - All Rights Reserved 4 * 5 */ 6 7 #ifndef __CONTEXTUALGLYPHINSERTIONPROCESSOR2_H 8 #define __CONTEXTUALGLYPHINSERTIONPROCESSOR2_H 9 10 /** 11 * \file 12 * \internal 13 */ 14 15 #include "LETypes.h" 16 #include "MorphTables.h" 17 #include "SubtableProcessor2.h" 18 #include "StateTableProcessor2.h" 19 #include "ContextualGlyphInsertionProc2.h" 20 #include "ContextualGlyphInsertion.h" 21 22 U_NAMESPACE_BEGIN 23 24 class LEGlyphStorage; 25 26 class ContextualGlyphInsertionProcessor2 : public StateTableProcessor2 27 { 28 public: 29 virtual void beginStateTable(); 30 31 virtual le_uint16 processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex2 index); 32 33 virtual void endStateTable(); 34 35 ContextualGlyphInsertionProcessor2(const MorphSubtableHeader2 *morphSubtableHeader); 36 virtual ~ContextualGlyphInsertionProcessor2(); 37 38 /** 39 * ICU "poor man's RTTI", returns a UClassID for the actual class. 40 * 41 * @stable ICU 2.8 42 */ 43 virtual UClassID getDynamicClassID() const; 44 45 /** 46 * ICU "poor man's RTTI", returns a UClassID for this class. 47 * 48 * @stable ICU 2.8 49 */ 50 static UClassID getStaticClassID(); 51 52 private: 53 ContextualGlyphInsertionProcessor2(); 54 55 protected: 56 le_int32 markGlyph; 57 const le_uint16* insertionTable; 58 const ContextualGlyphInsertionStateEntry2 *entryTable; 59 const ContextualGlyphInsertionHeader2 *contextualGlyphHeader; 60 61 }; 62 63 U_NAMESPACE_END 64 #endif 65