/*
- * @(#)StateTableProcessor.h 1.6 00/03/15
*
- * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
*
*/
U_NAMESPACE_BEGIN
+class LEGlyphStorage;
+
class StateTableProcessor : public SubtableProcessor
{
public:
- void process(LEGlyphID *glyphs, le_int32 *charIndices, le_int32 glyph);
+ void process(LEGlyphStorage &glyphStorage, LEErrorCode &success);
virtual void beginStateTable() = 0;
- virtual ByteOffset processStateEntry(LEGlyphID *glyphs, le_int32 *charIndices, le_int32 &currGlyph,
- le_int32 glyphCount, EntryTableIndex index) = 0;
+ virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0;
virtual void endStateTable() = 0;
protected:
- StateTableProcessor(const MorphSubtableHeader *morphSubtableHeader);
+ StateTableProcessor(const LEReferenceTo<MorphSubtableHeader> &morphSubtableHeader, LEErrorCode &success);
virtual ~StateTableProcessor();
StateTableProcessor();
ByteOffset stateArrayOffset;
ByteOffset entryTableOffset;
- const ClassTable *classTable;
+ LEReferenceTo<ClassTable> classTable;
TTGlyphID firstGlyph;
TTGlyphID lastGlyph;
- const MorphStateTableHeader *stateTableHeader;
+ LEReferenceTo<MorphStateTableHeader> stateTableHeader;
+ LEReferenceTo<StateTableHeader> stHeader; // for convenience
private:
StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class