ParallelAccessBlockStore uses unique_ref for its base block store
This commit is contained in:
parent
de37cddcce
commit
db2b39d4ab
@ -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())) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user