os/textandloc/fontservices/textshaperplugin/IcuSource/layout/StateTableProcessor.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
     1 /*
     2  *
     3  * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved
     4  *
     5  */
     6 
     7 #ifndef __STATETABLEPROCESSOR_H
     8 #define __STATETABLEPROCESSOR_H
     9 
    10 /**
    11  * \file
    12  * \internal
    13  */
    14 
    15 #include "LETypes.h"
    16 #include "MorphTables.h"
    17 #include "MorphStateTables.h"
    18 #include "SubtableProcessor.h"
    19 
    20 U_NAMESPACE_BEGIN
    21 
    22 class LEGlyphStorage;
    23 
    24 class StateTableProcessor : public SubtableProcessor
    25 {
    26 public:
    27     void process(LEGlyphStorage &glyphStorage);
    28 
    29     virtual void beginStateTable() = 0;
    30 
    31     virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0;
    32 
    33     virtual void endStateTable() = 0;
    34 
    35 protected:
    36     StateTableProcessor(const MorphSubtableHeader *morphSubtableHeader);
    37     virtual ~StateTableProcessor();
    38 
    39     StateTableProcessor();
    40 
    41     le_int16 stateSize;
    42     ByteOffset classTableOffset;
    43     ByteOffset stateArrayOffset;
    44     ByteOffset entryTableOffset;
    45 
    46     const ClassTable *classTable;
    47     TTGlyphID firstGlyph;
    48     TTGlyphID lastGlyph;
    49 
    50     const MorphStateTableHeader *stateTableHeader;
    51 
    52 private:
    53     StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class
    54     StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class
    55 };
    56 
    57 U_NAMESPACE_END
    58 #endif