~ubuntu-branches/ubuntu/maverick/icu/maverick-updates

« back to all changes in this revision

Viewing changes to source/test/letest/cmaps.h

  • Committer: Package Import Robot
  • Author(s): Jay Berkenbilt
  • Date: 2009-09-04 11:56:06 UTC
  • mfrom: (10.1.6 sid)
  • Revision ID: package-import@ubuntu.com-20090904115606-sqxxuizelam5tozb
Tags: 4.2.1-3
Change install-doc target to not fail if there are subdirectories of
doc/html.  This is necessary to handle the doc/html/search directory
created by doxygen 3.6.1.  (Closes: #544799)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************
 
2
*
 
3
*   Copyright (C) 1998-2006, International Business Machines
 
4
*   Corporation and others.  All Rights Reserved.
 
5
*
 
6
************************************************************************/
 
7
 
 
8
 
 
9
#ifndef __CMAPS_H
 
10
#define __CMAPS_H
 
11
 
 
12
#include "layout/LETypes.h"
 
13
#include "letest.h"
 
14
#include "sfnt.h"
 
15
 
 
16
class CMAPMapper
 
17
{
 
18
public:
 
19
    virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const = 0;
 
20
 
 
21
    virtual ~CMAPMapper();
 
22
 
 
23
    static CMAPMapper *createUnicodeMapper(const CMAPTable *cmap);
 
24
 
 
25
protected:
 
26
    CMAPMapper(const CMAPTable *cmap);
 
27
 
 
28
    CMAPMapper() {};
 
29
 
 
30
private:
 
31
    const CMAPTable *fcmap;
 
32
};
 
33
 
 
34
class CMAPFormat4Mapper : public CMAPMapper
 
35
{
 
36
public:
 
37
    CMAPFormat4Mapper(const CMAPTable *cmap, const CMAPFormat4Encoding *header);
 
38
 
 
39
    virtual ~CMAPFormat4Mapper();
 
40
 
 
41
    virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const;
 
42
 
 
43
protected:
 
44
    CMAPFormat4Mapper() {};
 
45
 
 
46
private:
 
47
    le_uint16       fEntrySelector;
 
48
    le_uint16       fRangeShift;
 
49
    const le_uint16 *fEndCodes;
 
50
    const le_uint16 *fStartCodes;
 
51
    const le_uint16 *fIdDelta;
 
52
    const le_uint16 *fIdRangeOffset;
 
53
};
 
54
 
 
55
class CMAPGroupMapper : public CMAPMapper
 
56
{
 
57
public:
 
58
    CMAPGroupMapper(const CMAPTable *cmap, const CMAPGroup *groups, le_uint32 nGroups);
 
59
 
 
60
    virtual ~CMAPGroupMapper();
 
61
 
 
62
    virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const;
 
63
 
 
64
protected:
 
65
    CMAPGroupMapper() {};
 
66
 
 
67
private:
 
68
    le_int32 fPower;
 
69
    le_int32 fRangeOffset;
 
70
    const CMAPGroup *fGroups;
 
71
};
 
72
 
 
73
inline CMAPMapper::CMAPMapper(const CMAPTable *cmap)
 
74
    : fcmap(cmap)
 
75
{
 
76
    // nothing else to do
 
77
}
 
78
 
 
79
inline CMAPMapper::~CMAPMapper()
 
80
{
 
81
    DELETE_ARRAY(fcmap);
 
82
}
 
83
 
 
84
#endif
 
85