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