1 /* 2 * 3 * (C) Copyright IBM Corp. and others 1998-2014 - All Rights Reserved 4 * 5 */ 6 7 #ifndef __INDICREARRANGEMENTPROCESSOR2_H 8 #define __INDICREARRANGEMENTPROCESSOR2_H 9 10 /** 11 * \file 12 * \internal 13 */ 14 15 #include "LETypes.h" 16 #include "MorphTables.h" 17 #include "SubtableProcessor.h" 18 #include "StateTableProcessor2.h" 19 #include "IndicRearrangement.h" 20 21 U_NAMESPACE_BEGIN 22 23 class LEGlyphStorage; 24 25 class IndicRearrangementProcessor2 : public StateTableProcessor2 26 { 27 public: 28 virtual void beginStateTable(); 29 30 virtual le_uint16 processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex2 index, LEErrorCode &success); 31 32 virtual void endStateTable(); 33 34 void doRearrangementAction(LEGlyphStorage &glyphStorage, IndicRearrangementVerb verb) const; 35 36 IndicRearrangementProcessor2(const LEReferenceTo<MorphSubtableHeader2> &morphSubtableHeader, LEErrorCode &success); 37 virtual ~IndicRearrangementProcessor2(); 38 39 /** 40 * ICU "poor man's RTTI", returns a UClassID for the actual class. 41 * 42 * @deprecated ICU 54. See {@link icu::LayoutEngine} 43 */ 44 virtual UClassID getDynamicClassID() const; 45 46 /** 47 * ICU "poor man's RTTI", returns a UClassID for this class. 48 * 49 * @deprecated ICU 54. See {@link icu::LayoutEngine} 50 */ 51 static UClassID getStaticClassID(); 52 53 protected: 54 le_int32 firstGlyph; 55 le_int32 lastGlyph; 56 57 LEReferenceToArrayOf<IndicRearrangementStateEntry2> entryTable; 58 LEReferenceTo<IndicRearrangementSubtableHeader2> indicRearrangementSubtableHeader; 59 60 }; 61 62 U_NAMESPACE_END 63 #endif 64