aboutsummaryrefslogtreecommitdiff
path: root/engines/mohawk/resource_cache.h
diff options
context:
space:
mode:
authorDavid Turner2010-02-17 19:59:08 +0000
committerDavid Turner2010-02-17 19:59:08 +0000
commit2ab3e0fb3c74be9e94788eaab281c0bdbbb0c9a3 (patch)
treeae1a439efd74322a2938f8748eb572b57a01ff2f /engines/mohawk/resource_cache.h
parentc8470e1d8915134bca7836732c174c40d3b9cf97 (diff)
downloadscummvm-rg350-2ab3e0fb3c74be9e94788eaab281c0bdbbb0c9a3.tar.gz
scummvm-rg350-2ab3e0fb3c74be9e94788eaab281c0bdbbb0c9a3.tar.bz2
scummvm-rg350-2ab3e0fb3c74be9e94788eaab281c0bdbbb0c9a3.zip
Mohawk : Adding resource cache class and integrating into Myst engine.
The resource caching trades increased memory usage against disk access. This functionality can be disabled and enabled by the console "cache" command. svn-id: r48080
Diffstat (limited to 'engines/mohawk/resource_cache.h')
-rw-r--r--engines/mohawk/resource_cache.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/engines/mohawk/resource_cache.h b/engines/mohawk/resource_cache.h
new file mode 100644
index 0000000000..e82b43b89e
--- /dev/null
+++ b/engines/mohawk/resource_cache.h
@@ -0,0 +1,59 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef RESOURCE_CACHE_H
+#define RESOURCE_CACHE_H
+
+#include "common/array.h"
+#include "common/stream.h"
+
+namespace Mohawk {
+
+class ResourceCache {
+public:
+ ResourceCache();
+ ~ResourceCache();
+
+ bool enabled;
+
+ void clear();
+ void add(uint32 tag, uint16 id, Common::SeekableReadStream *data);
+
+ // Returns NULL if not found
+ Common::SeekableReadStream *search(uint32 tag, uint16 id);
+
+private:
+ typedef struct {
+ uint32 tag;
+ uint16 id;
+ Common::SeekableReadStream *data;
+ } dataObject;
+
+ Common::Array<dataObject> store;
+};
+
+} // End of namespace Mohawk
+
+#endif