pub struct SharedStoreAdapter(pub Arc<RwLock<Box<dyn BlockStore>>>);Expand description
Adapter that implements BlockStore over a shared Arc<RwLock<Box<dyn BlockStore>>>,
acquiring and releasing the lock for each individual operation.
Uses read / write on parking_lot::RwLock (R-1) for fast, non-poisoning
synchronous locking. The lock hold times are microsecond-level HashMap lookups.
Tuple Fields§
§0: Arc<RwLock<Box<dyn BlockStore>>>Trait Implementations§
fn put_block(&mut self, block: Block)
fn get_block(&self, hash: &BlockHash) -> Option<Block>
fn get_block_by_height(&self, h: Height) -> Option<Block>
Source§fn get_blocks_in_range(&self, from: Height, to: Height) -> Vec<Block>
fn get_blocks_in_range(&self, from: Height, to: Height) -> Vec<Block>
Get blocks in [from, to] inclusive. Default iterates one-by-one.
Source§fn tip_height(&self) -> Height
fn tip_height(&self) -> Height
Return the highest stored block height.
Source§fn put_commit_qc(&mut self, height: Height, qc: QuorumCertificate)
fn put_commit_qc(&mut self, height: Height, qc: QuorumCertificate)
Store the QC that committed a block at the given height.
Source§fn get_commit_qc(&self, height: Height) -> Option<QuorumCertificate>
fn get_commit_qc(&self, height: Height) -> Option<QuorumCertificate>
Retrieve the commit QC for a block at the given height.
Source§fn put_tx_index(&mut self, tx_hash: [u8; 32], height: Height, index: u32)
fn put_tx_index(&mut self, tx_hash: [u8; 32], height: Height, index: u32)
Store a tx hash → (height, index) mapping.
Source§fn get_tx_location(&self, tx_hash: &[u8; 32]) -> Option<(Height, u32)>
fn get_tx_location(&self, tx_hash: &[u8; 32]) -> Option<(Height, u32)>
Look up a tx hash → (height, index_in_block).
Source§fn put_block_results(&mut self, height: Height, results: EndBlockResponse)
fn put_block_results(&mut self, height: Height, results: EndBlockResponse)
Store the EndBlockResponse for a given height.
Source§fn get_block_results(&self, height: Height) -> Option<EndBlockResponse>
fn get_block_results(&self, height: Height) -> Option<EndBlockResponse>
Retrieve the EndBlockResponse for a given height.
Auto Trait Implementations§
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more