1/*
2 **********************************************************************
3 *   Copyright (C) 2003-2013, International Business Machines
4 *   Corporation and others.  All Rights Reserved.
5 **********************************************************************
6 */
7
8#ifndef __FONTTABLECACHE_H
9
10#define __FONTTABLECACHE_H
11
12#include "layout/LETypes.h"
13
14U_NAMESPACE_USE
15
16struct FontTableCacheEntry;
17
18class FontTableCache
19{
20public:
21    FontTableCache();
22
23    virtual ~FontTableCache();
24
25    const void *find(LETag tableTag, size_t &length) const;
26
27protected:
28    virtual const void *readFontTable(LETag tableTag, size_t &length) const = 0;
29    virtual void freeFontTable(const void *table) const;
30
31private:
32
33    void add(LETag tableTag, const void *table, size_t length);
34
35    FontTableCacheEntry *fTableCache;
36    le_int32 fTableCacheCurr;
37    le_int32 fTableCacheSize;
38};
39
40#endif
41
42