WiscDB
bufferHashTable.h
00001 
00008 #pragma once
00009 
00010 #include "include/file.h"
00011 
00012 namespace wiscdb {
00013 
00017 struct HashItem {
00021   File *file;
00022 
00026   PageId pageNo;
00027 
00031   FrameId frameNo;
00032 
00036   HashItem*   next;
00037 };
00038 
00039 
00043 class BufferHashTable
00044 {
00045  private:
00049   int SIZE;
00053   HashItem**  ht;
00054 
00062   int   hash(const File* file, const PageId pageNo);
00063 
00064  public:
00068   BufferHashTable(const int htSize); 
00069 
00073   ~BufferHashTable(); 
00074   
00085   void insert(const File* file, const PageId pageNo, const FrameId frameNo);
00086 
00097   void lookup(const File* file, const PageId pageNo, FrameId &frameNo);
00098 
00108   void remove(const File* file, const PageId pageNo);  
00109 };
00110 
00111 }
 All Classes Functions Variables Friends