Use header cache for blockhain cache (#5929)

This commit is contained in:
Arkadiy Paronyan
2020-05-07 12:49:30 +02:00
committed by GitHub
parent eff1680aed
commit 427c33f16f
5 changed files with 34 additions and 23 deletions
@@ -239,19 +239,16 @@ impl<Block: BlockT> Default for HeaderMetadataCache<Block> {
}
}
impl<Block: BlockT> HeaderMetadata<Block> for HeaderMetadataCache<Block> {
type Error = String;
fn header_metadata(&self, hash: Block::Hash) -> Result<CachedHeaderMetadata<Block>, Self::Error> {
impl<Block: BlockT> HeaderMetadataCache<Block> {
pub fn header_metadata(&self, hash: Block::Hash) -> Option<CachedHeaderMetadata<Block>> {
self.cache.write().get(&hash).cloned()
.ok_or("header metadata not found in cache".to_owned())
}
fn insert_header_metadata(&self, hash: Block::Hash, metadata: CachedHeaderMetadata<Block>) {
pub fn insert_header_metadata(&self, hash: Block::Hash, metadata: CachedHeaderMetadata<Block>) {
self.cache.write().put(hash, metadata);
}
fn remove_header_metadata(&self, hash: Block::Hash) {
pub fn remove_header_metadata(&self, hash: Block::Hash) {
self.cache.write().pop(&hash);
}
}