Trait rustdb::stg::PageStorage
source · pub trait PageStorage: Send + Sync {
Show 14 methods
// Required methods
fn is_new(&self) -> bool;
fn info(&self) -> Box<dyn PageStorageInfo>;
fn new_page(&mut self) -> u64;
fn drop_page(&mut self, pn: u64);
fn set_page(&mut self, pn: u64, data: Data);
fn get_page(&self, pn: u64) -> Data;
fn size(&self, pn: u64) -> usize;
fn save(&mut self);
fn rollback(&mut self);
fn wait_complete(&self);
fn get_free(&mut self) -> (FxHashSet<u64>, u64);
fn renumber(&mut self, pn: u64) -> u64;
fn load_free_pages(&mut self) -> Option<u64>;
fn set_alloc_pn(&mut self, target: u64);
}
Expand description
Interface for page storage.
Required Methods§
sourcefn info(&self) -> Box<dyn PageStorageInfo>
fn info(&self) -> Box<dyn PageStorageInfo>
Information about page sizes.
sourcefn rollback(&mut self)
fn rollback(&mut self)
Undo changes since last save ( but set_page/renumber cannot be undone, only new_page and drop_page can be undone ).
sourcefn wait_complete(&self)
fn wait_complete(&self)
Wait until save is complete.
sourcefn get_free(&mut self) -> (FxHashSet<u64>, u64)
fn get_free(&mut self) -> (FxHashSet<u64>, u64)
Get set of free pages and number of pages ever allocated ( for VERIFY builtin function ).
sourcefn load_free_pages(&mut self) -> Option<u64>
fn load_free_pages(&mut self) -> Option<u64>
Load free pages in preparation for page renumbering. Returns number of used pages or None if there are no free pages.
sourcefn set_alloc_pn(&mut self, target: u64)
fn set_alloc_pn(&mut self, target: u64)
Final part of page renumber operation.