1 /* 2 * 3 * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved 4 * 5 */ 6 7 #ifndef __STATETABLEPROCESSOR_H 8 #define __STATETABLEPROCESSOR_H 9 10 /** 11 * \file 12 * \internal 13 */ 14 15 #include "LETypes.h" 16 #include "MorphTables.h" 17 #include "MorphStateTables.h" 18 #include "SubtableProcessor.h" 19 20 U_NAMESPACE_BEGIN 21 22 class LEGlyphStorage; 23 24 class StateTableProcessor : public SubtableProcessor 25 { 26 public: 27 void process(LEGlyphStorage &glyphStorage); 28 29 virtual void beginStateTable() = 0; 30 31 virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0; 32 33 virtual void endStateTable() = 0; 34 35 protected: 36 StateTableProcessor(const MorphSubtableHeader *morphSubtableHeader); 37 virtual ~StateTableProcessor(); 38 39 StateTableProcessor(); 40 41 le_int16 stateSize; 42 ByteOffset classTableOffset; 43 ByteOffset stateArrayOffset; 44 ByteOffset entryTableOffset; 45 46 const ClassTable *classTable; 47 TTGlyphID firstGlyph; 48 TTGlyphID lastGlyph; 49 50 const MorphStateTableHeader *stateTableHeader; 51 52 private: 53 StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class 54 StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class 55 }; 56 57 U_NAMESPACE_END 58 #endif 59