core: Rename DatabaseStorage methods

Let's call them read_page() and write_page().
This commit is contained in:
Pekka Enberg 2024-08-03 10:35:14 +03:00
parent 8a54e31803
commit 3f7c788e5b
3 changed files with 23 additions and 11 deletions

View file

@ -37,11 +37,11 @@ impl limbo_core::IO for IO {
pub struct DatabaseStorage {}
impl limbo_core::DatabaseStorage for DatabaseStorage {
fn get(&self, _page_idx: usize, _c: Rc<limbo_core::Completion>) -> Result<()> {
fn read_page(&self, _page_idx: usize, _c: Rc<limbo_core::Completion>) -> Result<()> {
todo!();
}
fn write(
fn write_page(
&self,
_page_idx: usize,
_buffer: Rc<std::cell::RefCell<limbo_core::Buffer>>,

View file

@ -8,8 +8,13 @@ use crate::{error::LimboError, io::Completion, Buffer, Result};
use std::{cell::RefCell, rc::Rc};
pub trait DatabaseStorage {
fn get(&self, page_idx: usize, c: Rc<Completion>) -> Result<()>;
fn write(&self, page_idx: usize, buffer: Rc<RefCell<Buffer>>, c: Rc<Completion>) -> Result<()>;
fn read_page(&self, page_idx: usize, c: Rc<Completion>) -> Result<()>;
fn write_page(
&self,
page_idx: usize,
buffer: Rc<RefCell<Buffer>>,
c: Rc<Completion>,
) -> Result<()>;
}
#[cfg(feature = "fs")]
@ -19,7 +24,7 @@ pub struct FileStorage {
#[cfg(feature = "fs")]
impl DatabaseStorage for FileStorage {
fn get(&self, page_idx: usize, c: Rc<Completion>) -> Result<()> {
fn read_page(&self, page_idx: usize, c: Rc<Completion>) -> Result<()> {
let r = match &(*c) {
Completion::Read(r) => r,
Completion::Write(_) => unreachable!(),
@ -34,7 +39,12 @@ impl DatabaseStorage for FileStorage {
Ok(())
}
fn write(&self, page_idx: usize, buffer: Rc<RefCell<Buffer>>, c: Rc<Completion>) -> Result<()> {
fn write_page(
&self,
page_idx: usize,
buffer: Rc<RefCell<Buffer>>,
c: Rc<Completion>,
) -> Result<()> {
let buffer_size = buffer.borrow().len();
assert!(buffer_size >= 512);
assert!(buffer_size <= 65536);

View file

@ -122,7 +122,7 @@ pub fn begin_read_database_header(
finish_read_database_header(buf, header).unwrap();
});
let c = Rc::new(Completion::Read(ReadCompletion::new(buf, complete)));
page_io.get(1, c.clone())?;
page_io.read_page(1, c.clone())?;
Ok(result)
}
@ -189,7 +189,7 @@ pub fn begin_write_database_header(header: &DatabaseHeader, pager: &Pager) -> Re
let drop_fn = Rc::new(|_buf| {});
let buf = Rc::new(RefCell::new(Buffer::allocate(512, drop_fn)));
let c = Rc::new(Completion::Read(ReadCompletion::new(buf.clone(), complete)));
page_source.get(1, c.clone())?;
page_source.read_page(1, c.clone())?;
// run get header block
pager.io.run_once()?;
@ -203,7 +203,9 @@ pub fn begin_write_database_header(header: &DatabaseHeader, pager: &Pager) -> Re
// finish_read_database_header(buf, header).unwrap();
});
let c = Rc::new(Completion::Write(WriteCompletion::new(write_complete)));
page_source.write(0, buffer_to_copy.clone(), c).unwrap();
page_source
.write_page(0, buffer_to_copy.clone(), c)
.unwrap();
Ok(())
}
@ -463,7 +465,7 @@ pub fn begin_read_page(
}
});
let c = Rc::new(Completion::Read(ReadCompletion::new(buf, complete)));
page_io.get(page_idx, c.clone())?;
page_io.read_page(page_idx, c.clone())?;
Ok(())
}
@ -511,7 +513,7 @@ pub fn begin_write_btree_page(pager: &Pager, page: &Rc<RefCell<Page>>) -> Result
})
};
let c = Rc::new(Completion::Write(WriteCompletion::new(write_complete)));
page_source.write(page.id, buffer.clone(), c)?;
page_source.write_page(page.id, buffer.clone(), c)?;
Ok(())
}