Trait PagedObjectStore

Source
pub trait PagedObjectStore {
    // Required methods
    fn create_object(&self, id: ObjID) -> Result<()>;
    fn delete_object(&self, id: ObjID) -> Result<()>;
    fn len(&self, id: ObjID) -> Result<u64>;
    fn read_object(
        &self,
        id: ObjID,
        offset: u64,
        buf: &mut [u8],
    ) -> Result<usize>;
    fn write_object(&self, id: ObjID, offset: u64, buf: &[u8]) -> Result<()>;
    fn page_in_object<'a>(
        &self,
        id: ObjID,
        reqs: &'a mut [PageRequest],
    ) -> Result<usize>;
    fn page_out_object<'a>(
        &self,
        id: ObjID,
        reqs: &'a mut [PageRequest],
    ) -> Result<usize>;

    // Provided methods
    fn get_config_id(&self) -> Result<ObjID> { ... }
    fn set_config_id(&self, id: ObjID) -> Result<()> { ... }
    fn flush(&self) -> Result<()> { ... }
    fn enumerate_external(&self, _id: ObjID) -> Result<Vec<ExternalFile>> { ... }
    fn find_external(&self, _id: ObjID) -> Result<usize> { ... }
}

Required Methods§

Source

fn create_object(&self, id: ObjID) -> Result<()>

Source

fn delete_object(&self, id: ObjID) -> Result<()>

Source

fn len(&self, id: ObjID) -> Result<u64>

Source

fn read_object(&self, id: ObjID, offset: u64, buf: &mut [u8]) -> Result<usize>

Source

fn write_object(&self, id: ObjID, offset: u64, buf: &[u8]) -> Result<()>

Source

fn page_in_object<'a>( &self, id: ObjID, reqs: &'a mut [PageRequest], ) -> Result<usize>

Source

fn page_out_object<'a>( &self, id: ObjID, reqs: &'a mut [PageRequest], ) -> Result<usize>

Provided Methods§

Implementors§