00001
00002
00003
00004
00005
00006
00007
00008 #ifndef HEAPFILE_MANAGER_H_
00009 #define HEAPFILE_MANAGER_H_
00010
00011 #include "BufferPool.h"
00012 #include "Common.h"
00013 #include "PageFileHandle.h"
00014 #include "HandleCache.h"
00015 #include <list>
00016 #include <map>
00017 #include <string>
00018
00019
00028 class PageFileManager {
00029 public:
00038 ReturnCode createFile(const char *fileName);
00039
00050 ReturnCode removeFile(const char *fileName);
00051
00064 ReturnCode openFile(const char *fileName, PageFileHandle **fileHandle);
00065
00077 ReturnCode closeFile(PageFileHandle *fileHandle);
00078
00084 static PageFileManager* getInstance();
00085
00086 private:
00087 friend class HandleCache<PageFileManager, PageFileHandle>;
00088
00095 PageFileManager();
00096
00104 ~PageFileManager();
00105
00106 ReturnCode open(const char *fileName, PageFileHandle **fileHandle);
00107 ReturnCode close(PageFileHandle *fileHandle);
00108
00109 HandleCache<PageFileManager, PageFileHandle> cache_;
00110 BufferPool* pool_;
00111 };
00112
00113 #endif