Home | History | Annotate | Download | only in layout
      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, LEErrorCode &success);
     29 
     30     virtual void beginStateTable() = 0;
     31 
     32     virtual le_uint16 processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex2 index, LEErrorCode &success) = 0;
     33 
     34     virtual void endStateTable() = 0;
     35 
     36 protected:
     37     StateTableProcessor2(const LEReferenceTo<MorphSubtableHeader2> &morphSubtableHeader, LEErrorCode &success);
     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     LEReferenceTo<LookupTable> classTable;
     50     LEReferenceToArrayOf<EntryTableIndex2> stateArray;
     51     LEReferenceTo<MorphStateTableHeader2> stateTableHeader;
     52     LEReferenceTo<StateTableHeader2> stHeader; // for convenience
     53 
     54 private:
     55     StateTableProcessor2(const StateTableProcessor2 &other); // forbid copying of this class
     56     StateTableProcessor2 &operator=(const StateTableProcessor2 &other); // forbid copying of this class
     57 };
     58 
     59 U_NAMESPACE_END
     60 #endif
     61