summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-0.34.0/poppler/PopplerCache.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/poppler/poppler-0.34.0/poppler/PopplerCache.h')
-rw-r--r--Build/source/libs/poppler/poppler-0.34.0/poppler/PopplerCache.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/Build/source/libs/poppler/poppler-0.34.0/poppler/PopplerCache.h b/Build/source/libs/poppler/poppler-0.34.0/poppler/PopplerCache.h
new file mode 100644
index 00000000000..74010a2fa6b
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.34.0/poppler/PopplerCache.h
@@ -0,0 +1,78 @@
+//========================================================================
+//
+// PopplerCache.h
+//
+// This file is licensed under the GPLv2 or later
+//
+// Copyright (C) 2009 Koji Otani <sho@bbr.jp>
+// Copyright (C) 2009, 2010 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2010 Carlos Garcia Campos <carlosgc@gnome.org>
+//
+//========================================================================
+
+#ifndef POPPLER_CACHE_H
+#define POPPLER_CACHE_H
+
+#include "Object.h"
+
+class PopplerCacheItem
+{
+ public:
+ virtual ~PopplerCacheItem();
+};
+
+class PopplerCacheKey
+{
+ public:
+ virtual ~PopplerCacheKey();
+ virtual bool operator==(const PopplerCacheKey &key) const = 0;
+};
+
+class PopplerCache
+{
+ public:
+ PopplerCache(int cacheSizeA);
+ ~PopplerCache();
+
+ /* The item returned is owned by the cache */
+ PopplerCacheItem *lookup(const PopplerCacheKey &key);
+
+ /* The key and item pointers ownership is taken by the cache */
+ void put(PopplerCacheKey *key, PopplerCacheItem *item);
+
+ /* The max size of the cache */
+ int size();
+
+ /* The number of items in the cache */
+ int numberOfItems();
+
+ /* The n-th item in the cache */
+ PopplerCacheItem *item(int index);
+
+ /* The n-th key in the cache */
+ PopplerCacheKey *key(int index);
+
+ private:
+ PopplerCache(const PopplerCache &cache); // not allowed
+
+ PopplerCacheKey **keys;
+ PopplerCacheItem **items;
+ int lastValidCacheIndex;
+ int cacheSize;
+};
+
+class PopplerObjectCache
+{
+ public:
+ PopplerObjectCache (int cacheSizeA, XRef *xrefA);
+ ~PopplerObjectCache();
+
+ Object *put(const Ref &ref);
+ Object *lookup(const Ref &ref, Object *obj);
+
+ private:
+ XRef *xref;
+ PopplerCache *cache;
+};
+
+#endif