]> git.saurik.com Git - apple/icu.git/blame - icuSources/layout/IndicRearrangementProcessor.h
ICU-3.13.tar.gz
[apple/icu.git] / icuSources / layout / IndicRearrangementProcessor.h
CommitLineData
b75a7d8f
A
1/*
2 * @(#)IndicRearrangementProcessor.h 1.6 00/03/15
3 *
4 * (C) Copyright IBM Corp. 1998-2003 - All Rights Reserved
5 *
6 */
7
8#ifndef __INDICREARRANGEMENTPROCESSOR_H
9#define __INDICREARRANGEMENTPROCESSOR_H
10
11/**
12 * \file
13 * \internal
14 */
15
16#include "LETypes.h"
17#include "MorphTables.h"
18#include "SubtableProcessor.h"
19#include "StateTableProcessor.h"
20#include "IndicRearrangement.h"
21
22U_NAMESPACE_BEGIN
23
24class IndicRearrangementProcessor : public StateTableProcessor
25{
26public:
27 virtual void beginStateTable();
28
29 virtual ByteOffset processStateEntry(LEGlyphID *glyphs, le_int32 *charIndices, le_int32 &currGlyph,
30 le_int32 glyphCount, EntryTableIndex index);
31
32 virtual void endStateTable();
33
34 void doRearrangementAction(LEGlyphID *glyphs, le_int32 *charIndices, IndicRearrangementVerb verb) const;
35
36 IndicRearrangementProcessor(const MorphSubtableHeader *morphSubtableHeader);
37 virtual ~IndicRearrangementProcessor();
38
39 /**
40 * ICU "poor man's RTTI", returns a UClassID for the actual class.
41 *
42 * @draft ICU 2.2
43 */
44 virtual inline UClassID getDynamicClassID() const { return getStaticClassID(); }
45
46 /**
47 * ICU "poor man's RTTI", returns a UClassID for this class.
48 *
49 * @draft ICU 2.2
50 */
51 static inline UClassID getStaticClassID() { return (UClassID)&fgClassID; }
52
53protected:
54 le_int32 firstGlyph;
55 le_int32 lastGlyph;
56
57 const IndicRearrangementStateEntry *entryTable;
58 const IndicRearrangementSubtableHeader *indicRearrangementSubtableHeader;
59
60private:
61
62 /**
63 * The address of this static class variable serves as this class's ID
64 * for ICU "poor man's RTTI".
65 */
66 static const char fgClassID;
67};
68
69U_NAMESPACE_END
70#endif