#ifndef MESSMER_BLOCKSTORE_IMPLEMENTATIONS_CACHING_CACHINGBLOCKSTOREADAPTER_H_ #define MESSMER_BLOCKSTORE_IMPLEMENTATIONS_CACHING_CACHINGBLOCKSTOREADAPTER_H_ #include #include #include "../../interface/BlockStore.h" namespace blockstore { namespace caching { class CachingBlockStoreAdapter: public cachingstore::CachingBaseStore { public: CachingBlockStoreAdapter(BlockStore *baseBlockStore) :_baseBlockStore(std::move(baseBlockStore)) { } std::unique_ptr loadFromBaseStore(const Key &key) override { return _baseBlockStore->load(key); } void removeFromBaseStore(std::unique_ptr block) override { return _baseBlockStore->remove(std::move(block)); } private: BlockStore *_baseBlockStore; DISALLOW_COPY_AND_ASSIGN(CachingBlockStoreAdapter); }; } } #endif