ParallelAccessBlockStore uses unique_ref for its base block store

This commit is contained in:
Sebastian Messmer 2015-06-26 15:54:19 +02:00
parent de37cddcce
commit db2b39d4ab
2 changed files with 5 additions and 3 deletions

View File

@ -14,11 +14,12 @@ using std::promise;
using cpputils::dynamic_pointer_move;
using cpputils::make_unique_ref;
using boost::none;
using cpputils::unique_ref;
namespace blockstore {
namespace parallelaccess {
ParallelAccessBlockStore::ParallelAccessBlockStore(unique_ptr<BlockStore> baseBlockStore)
ParallelAccessBlockStore::ParallelAccessBlockStore(unique_ref<BlockStore> baseBlockStore)
: _baseBlockStore(std::move(baseBlockStore)), _parallelAccessStore(make_unique_ref<ParallelAccessBlockStoreAdapter>(_baseBlockStore.get())) {
}

View File

@ -5,6 +5,7 @@
#include <messmer/parallelaccessstore/ParallelAccessStore.h>
#include "BlockRef.h"
#include "../../interface/BlockStore.h"
#include <messmer/cpp-utils/pointer/unique_ref.h>
namespace blockstore {
namespace parallelaccess {
@ -12,7 +13,7 @@ namespace parallelaccess {
//TODO Check that this blockstore allows parallel destructing of blocks (otherwise we won't encrypt blocks in parallel)
class ParallelAccessBlockStore: public BlockStore {
public:
explicit ParallelAccessBlockStore(std::unique_ptr<BlockStore> baseBlockStore);
explicit ParallelAccessBlockStore(cpputils::unique_ref<BlockStore> baseBlockStore);
Key createKey() override;
std::unique_ptr<Block> tryCreate(const Key &key, cpputils::Data data) override;
@ -21,7 +22,7 @@ public:
uint64_t numBlocks() const override;
private:
std::unique_ptr<BlockStore> _baseBlockStore;
cpputils::unique_ref<BlockStore> _baseBlockStore;
parallelaccessstore::ParallelAccessStore<Block, BlockRef, Key> _parallelAccessStore;
DISALLOW_COPY_AND_ASSIGN(ParallelAccessBlockStore);