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 
14 U_NAMESPACE_USE
15 
16 struct FontTableCacheEntry;
17 
18 class FontTableCache
19 {
20 public:
21     FontTableCache();
22 
23     virtual ~FontTableCache();
24 
25     const void *find(LETag tableTag, size_t &length) const;
26 
27 protected:
28     virtual const void *readFontTable(LETag tableTag, size_t &length) const = 0;
29     virtual void freeFontTable(const void *table) const;
30 
31 private:
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