• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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