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::dynamic_pointer_move;
using cpputils::make_unique_ref; using cpputils::make_unique_ref;
using boost::none; using boost::none;
using cpputils::unique_ref;
namespace blockstore { namespace blockstore {
namespace parallelaccess { 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())) { : _baseBlockStore(std::move(baseBlockStore)), _parallelAccessStore(make_unique_ref<ParallelAccessBlockStoreAdapter>(_baseBlockStore.get())) {
} }

View File

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