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::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())) {
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user