summaryrefslogtreecommitdiff
path: root/legacystorage.h
diff options
context:
space:
mode:
Diffstat (limited to 'legacystorage.h')
-rw-r--r--legacystorage.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/legacystorage.h b/legacystorage.h
new file mode 100644
index 0000000..266a6fd
--- /dev/null
+++ b/legacystorage.h
@@ -0,0 +1,40 @@
+/*************************************************************** -*- c++ -*-
+ * Copyright (c) 2003,2004 by Marcel Wiesweg *
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+#ifndef __LEGACYSTORAGE_H
+#define __LEGACYSTORAGE_H
+
+#include "storage.h"
+
+class LegacyStorage : public Storage {
+private:
+ void initMaxStorage(int maxMB=-1);
+public:
+ LegacyStorage(int maxMB);
+ virtual ~LegacyStorage();
+ virtual void cleanUp();
+
+ virtual StorageHandle openForWriting(PageID page);
+ virtual StorageHandle openForReading(PageID page, bool countAsAccess);
+ virtual ssize_t write(const void *ptr, size_t size, StorageHandle stream);
+ virtual ssize_t read(void *ptr, size_t size, StorageHandle stream)
+ { return ::read((int)stream, ptr, size); }
+ virtual void close(StorageHandle stream)
+ { ::close((int)stream); }
+protected:
+ void registerFile(PageID page);
+ virtual int actualFileSize(int netFileSize);
+ //int maxPages;
+ long maxBytes;
+ int fsBlockSize;
+ int pageBytes;
+};
+
+#endif