1 /* 2 * 3 * (C) Copyright IBM Corp. and others 1998-2013 - All Rights Reserved 4 * 5 */ 6 7 #ifndef __STATETABLEPROCESSOR2_H 8 #define __STATETABLEPROCESSOR2_H 9 10 /** 11 * \file 12 * \internal 13 */ 14 15 #include "LETypes.h" 16 #include "MorphTables.h" 17 #include "MorphStateTables.h" 18 #include "SubtableProcessor2.h" 19 #include "LookupTables.h" 20 21 U_NAMESPACE_BEGIN 22 23 class LEGlyphStorage; 24 25 class StateTableProcessor2 : public SubtableProcessor2 26 { 27 public: 28 void process(LEGlyphStorage &glyphStorage); 29 30 virtual void beginStateTable() = 0; 31 32 virtual le_uint16 processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex2 index) = 0; 33 34 virtual void endStateTable() = 0; 35 36 protected: 37 StateTableProcessor2(const MorphSubtableHeader2 *morphSubtableHeader); 38 virtual ~StateTableProcessor2(); 39 40 StateTableProcessor2(); 41 42 le_int32 dir; 43 le_uint16 format; 44 le_uint32 nClasses; 45 le_uint32 classTableOffset; 46 le_uint32 stateArrayOffset; 47 le_uint32 entryTableOffset; 48 49 const LookupTable *classTable; 50 const EntryTableIndex2 *stateArray; 51 const MorphStateTableHeader2 *stateTableHeader; 52 53 private: 54 StateTableProcessor2(const StateTableProcessor2 &other); // forbid copying of this class 55 StateTableProcessor2 &operator=(const StateTableProcessor2 &other); // forbid copying of this class 56 }; 57 58 U_NAMESPACE_END 59 #endif 60