1/*
2 *
3 * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
4 *
5 */
6
7#ifndef __SUBTABLEPROCESSOR_H
8#define __SUBTABLEPROCESSOR_H
9
10/**
11 * \file
12 * \internal
13 */
14
15#include "LETypes.h"
16#include "MorphTables.h"
17
18U_NAMESPACE_BEGIN
19
20class LEGlyphStorage;
21
22class SubtableProcessor : public UMemory {
23public:
24    virtual void process(LEGlyphStorage &glyphStorage, LEErrorCode &success) = 0;
25    virtual ~SubtableProcessor();
26
27protected:
28    SubtableProcessor(const LEReferenceTo<MorphSubtableHeader> &morphSubtableHeader, LEErrorCode &success);
29
30    SubtableProcessor();
31
32    le_int16 length;
33    SubtableCoverage coverage;
34    FeatureFlags subtableFeatures;
35
36    const LEReferenceTo<MorphSubtableHeader> subtableHeader;
37
38private:
39
40    SubtableProcessor(const SubtableProcessor &other); // forbid copying of this class
41    SubtableProcessor &operator=(const SubtableProcessor &other); // forbid copying of this class
42};
43
44U_NAMESPACE_END
45#endif
46
47