3 * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
7 #ifndef __STATETABLEPROCESSOR_H
8 #define __STATETABLEPROCESSOR_H
16 #include "MorphTables.h"
17 #include "MorphStateTables.h"
18 #include "SubtableProcessor.h"
24 class StateTableProcessor : public SubtableProcessor
27 void process(LEGlyphStorage &glyphStorage, LEErrorCode &success);
29 virtual void beginStateTable() = 0;
31 virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0;
33 virtual void endStateTable() = 0;
36 StateTableProcessor(const LEReferenceTo<MorphSubtableHeader> &morphSubtableHeader, LEErrorCode &success);
37 virtual ~StateTableProcessor();
39 StateTableProcessor();
42 ByteOffset classTableOffset;
43 ByteOffset stateArrayOffset;
44 ByteOffset entryTableOffset;
46 LEReferenceTo<ClassTable> classTable;
50 LEReferenceTo<MorphStateTableHeader> stateTableHeader;
51 LEReferenceTo<StateTableHeader> stHeader; // for convenience
54 StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class
55 StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class