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);
     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