]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/perf/leperf/FontTableCache.h
ICU-531.30.tar.gz
[apple/icu.git] / icuSources / test / perf / leperf / FontTableCache.h
diff --git a/icuSources/test/perf/leperf/FontTableCache.h b/icuSources/test/perf/leperf/FontTableCache.h
new file mode 100644 (file)
index 0000000..d0e1c54
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ **********************************************************************
+ *   Copyright (C) 2003-2013, International Business Machines
+ *   Corporation and others.  All Rights Reserved.
+ **********************************************************************
+ */
+
+#ifndef __FONTTABLECACHE_H
+
+#define __FONTTABLECACHE_H
+
+#include "layout/LETypes.h"
+
+U_NAMESPACE_USE
+
+struct FontTableCacheEntry;
+
+class FontTableCache
+{
+public:
+    FontTableCache();
+
+    virtual ~FontTableCache();
+
+    const void *find(LETag tableTag, size_t &length) const;
+
+protected:
+    virtual const void *readFontTable(LETag tableTag, size_t &length) const = 0;
+    virtual void freeFontTable(const void *table) const;
+
+private:
+
+    void add(LETag tableTag, const void *table, size_t length);
+
+    FontTableCacheEntry *fTableCache;
+    le_int32 fTableCacheCurr;
+    le_int32 fTableCacheSize;
+};
+
+#endif
+