diff options
Diffstat (limited to 'storage')
4 files changed, 23 insertions, 0 deletions
diff --git a/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp b/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp index 17bfa57bed8..0740e1d6fec 100644 --- a/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp +++ b/storage/src/tests/persistence/common/persistenceproviderwrapper.cpp @@ -3,6 +3,7 @@ #include "persistenceproviderwrapper.h" #include <vespa/document/fieldvalue/document.h> #include <vespa/document/update/documentupdate.h> +#include <vespa/persistence/spi/doctype_gid_and_timestamp.h> #include <vespa/vespalib/util/idestructorcallback.h> #include <sstream> @@ -117,6 +118,17 @@ PersistenceProviderWrapper::removeAsync(const spi::Bucket& bucket, std::vector< } void +PersistenceProviderWrapper::removeByGidAsync(const spi::Bucket& bucket, std::vector<spi::DocTypeGidAndTimestamp> ids, + std::unique_ptr<spi::OperationComplete> onComplete) +{ + for (const auto & dt_gid_ts : ids) { + LOG_SPI("removeByGid(" << bucket << ", " << dt_gid_ts.timestamp << ", " << dt_gid_ts.doc_type << ", " << dt_gid_ts.gid << ")"); + } + CHECK_ERROR_ASYNC(spi::RemoveResult, FAIL_REMOVE, onComplete); + _spi.removeByGidAsync(bucket, std::move(ids), std::move(onComplete)); +} + +void PersistenceProviderWrapper::removeIfFoundAsync(const spi::Bucket& bucket, spi::Timestamp timestamp, const spi::DocumentId& id, spi::OperationComplete::UP onComplete) { diff --git a/storage/src/tests/persistence/common/persistenceproviderwrapper.h b/storage/src/tests/persistence/common/persistenceproviderwrapper.h index aad4746ea90..f1a277581d9 100644 --- a/storage/src/tests/persistence/common/persistenceproviderwrapper.h +++ b/storage/src/tests/persistence/common/persistenceproviderwrapper.h @@ -107,6 +107,7 @@ public: spi::BucketInfoResult getBucketInfo(const spi::Bucket&) const override; void putAsync(const spi::Bucket&, spi::Timestamp, spi::DocumentSP, spi::OperationComplete::UP) override; void removeAsync(const spi::Bucket&, std::vector<spi::IdAndTimestamp> ids, spi::OperationComplete::UP) override; + void removeByGidAsync(const spi::Bucket&, std::vector<spi::DocTypeGidAndTimestamp> ids, std::unique_ptr<spi::OperationComplete>) override; void removeIfFoundAsync(const spi::Bucket&, spi::Timestamp, const spi::DocumentId&, spi::OperationComplete::UP) override; void updateAsync(const spi::Bucket&, spi::Timestamp, spi::DocumentUpdateSP, spi::OperationComplete::UP) override; spi::GetResult get(const spi::Bucket&, const document::FieldSet&, const spi::DocumentId&, spi::Context&) const override; diff --git a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp index 83e7dc24eb7..9a414cd295a 100644 --- a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp +++ b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp @@ -166,6 +166,14 @@ ProviderErrorWrapper::removeAsync(const spi::Bucket &bucket, std::vector<spi::Id } void +ProviderErrorWrapper::removeByGidAsync(const spi::Bucket &bucket, std::vector<spi::DocTypeGidAndTimestamp> ids, + std::unique_ptr<spi::OperationComplete> onComplete) +{ + onComplete->addResultHandler(this); + _impl.removeByGidAsync(bucket, std::move(ids), std::move(onComplete)); +} + +void ProviderErrorWrapper::removeIfFoundAsync(const spi::Bucket &bucket, spi::Timestamp ts, const document::DocumentId &docId, spi::OperationComplete::UP onComplete) { diff --git a/storage/src/vespa/storage/persistence/provider_error_wrapper.h b/storage/src/vespa/storage/persistence/provider_error_wrapper.h index a4748d9479b..7c4518d1db1 100644 --- a/storage/src/vespa/storage/persistence/provider_error_wrapper.h +++ b/storage/src/vespa/storage/persistence/provider_error_wrapper.h @@ -13,6 +13,7 @@ #pragma once #include <vespa/persistence/spi/persistenceprovider.h> +#include <vespa/persistence/spi/doctype_gid_and_timestamp.h> #include <mutex> namespace storage { @@ -56,6 +57,7 @@ public: void putAsync(const spi::Bucket &, spi::Timestamp, spi::DocumentSP, spi::OperationComplete::UP) override; void removeAsync(const spi::Bucket&, std::vector<spi::IdAndTimestamp>, spi::OperationComplete::UP) override; + void removeByGidAsync(const spi::Bucket&, std::vector<spi::DocTypeGidAndTimestamp>, std::unique_ptr<spi::OperationComplete>) override; void removeIfFoundAsync(const spi::Bucket&, spi::Timestamp, const document::DocumentId&, spi::OperationComplete::UP) override; void updateAsync(const spi::Bucket &, spi::Timestamp, spi::DocumentUpdateSP, spi::OperationComplete::UP) override; void setActiveStateAsync(const spi::Bucket& b, spi::BucketInfo::ActiveState newState, spi::OperationComplete::UP onComplete) override; |