set up api chain
This commit is contained in:
@ -34,6 +34,7 @@ class BPlusTreeIndexer {
|
||||
// TODO
|
||||
}
|
||||
};
|
||||
BPlusTreeIndexer() = delete;
|
||||
BPlusTreeIndexer(const BPlusTreeIndexer &) = delete;
|
||||
BPlusTreeIndexer(BPlusTreeIndexer &&) = delete;
|
||||
BPlusTreeIndexer &operator=(const BPlusTreeIndexer &) = delete;
|
||||
@ -80,12 +81,17 @@ class BPlusTreeIndexer {
|
||||
return true;
|
||||
}
|
||||
size_t Size() { return siz; }
|
||||
void Flush() {
|
||||
// TODO: do some recording
|
||||
bpm->FlushAllPages();
|
||||
}
|
||||
|
||||
private:
|
||||
page_id_t root_page_id;
|
||||
size_t siz;
|
||||
page_id_t root_page_id; // stored in the first 4 (0-3) bytes of RawDatMemory
|
||||
uint64_t siz; // stored in the next 8 (4-11) bytes of RawDatMemory
|
||||
static KeyComparator key_cmp;
|
||||
std::shared_mutex latch;
|
||||
BufferPoolManager *bpm;
|
||||
};
|
||||
template <typename KeyType, typename KeyComparator>
|
||||
KeyComparator BPlusTreeIndexer<KeyType, KeyComparator>::key_cmp = KeyComparator();
|
||||
|
@ -249,6 +249,8 @@ class BufferPoolManager {
|
||||
BufferPoolManager &operator=(const BufferPoolManager &) = delete;
|
||||
BufferPoolManager &operator=(BufferPoolManager &&) = delete;
|
||||
~BufferPoolManager();
|
||||
inline char *RawDataMemory() { return disk_manager->RawDataMemory(); }
|
||||
inline size_t RawDatMemorySize() { return disk_manager->RawDatMemorySize(); }
|
||||
/**
|
||||
* @brief Allocate a page on disk. Caller should acquire the latch before calling this function.
|
||||
* @return the id of the allocated page
|
||||
|
@ -21,7 +21,7 @@ class DiskManager {
|
||||
~DiskManager();
|
||||
char *RawDataMemory();
|
||||
size_t RawDatMemorySize();
|
||||
void FlushInternalPage();
|
||||
void FullyFlush();
|
||||
void Close();
|
||||
void ReadPage(page_id_t page_id, char *page_data_ptr);
|
||||
void WritePage(page_id_t page_id, const char *page_data_ptr); // in fact, the page_id is the offest
|
||||
|
Reference in New Issue
Block a user