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