f956f885c1b6e9530961c97e20505ee5cf14ca56
[platform/upstream/harfbuzz.git] / src / hb-icu-le / FontTableCache.h
1 /*
2  **********************************************************************
3  *   Copyright (C) 2003-2008, International Business Machines
4  *   Corporation and others.  All Rights Reserved.
5  **********************************************************************
6  */
7
8 #ifndef __FONTTABLECACHE_H
9
10 #define __FONTTABLECACHE_H
11
12 #define HB_H_IN
13 #include <hb-blob.h>
14
15 #include "layout/LETypes.h"
16 #include "letest.h"
17
18 HB_BEGIN_VISIBILITY
19
20 U_NAMESPACE_USE
21
22 struct FontTableCacheEntry;
23
24 class FontTableCache
25 {
26 public:
27     FontTableCache();
28
29     virtual ~FontTableCache();
30
31     const void *find(LETag tableTag) const;
32
33 protected:
34     virtual hb_blob_t *readFontTable(LETag tableTag) const = 0;
35     virtual void freeFontTable(hb_blob_t *blob) const;
36
37 private:
38
39     void add(LETag tableTag, hb_blob_t *blob);
40
41     FontTableCacheEntry *fTableCache;
42     le_int32 fTableCacheCurr;
43     le_int32 fTableCacheSize;
44 };
45
46 HB_END_VISIBILITY
47
48 #endif