aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--storage/src/tests/distributor/CMakeLists.txt1
-rw-r--r--storage/src/tests/distributor/distributor_host_info_reporter_test.cpp18
-rw-r--r--storage/src/tests/distributor/maintenancemocks.cpp13
-rw-r--r--storage/src/tests/distributor/maintenancemocks.h27
-rw-r--r--storage/src/tests/storageserver/service_layer_error_listener_test.cpp2
-rw-r--r--storage/src/tests/storageserver/statemanagertest.cpp11
-rw-r--r--storage/src/tests/storageserver/statereportertest.cpp4
-rw-r--r--storage/src/tests/visiting/visitortest.cpp32
-rw-r--r--storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.cpp2
-rw-r--r--storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.h1
-rw-r--r--storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp26
-rw-r--r--storage/src/vespa/storage/persistence/provider_error_wrapper.cpp6
-rw-r--r--storage/src/vespa/storage/persistence/provider_error_wrapper.h7
-rw-r--r--storage/src/vespa/storage/storageserver/configurable_bucket_resolver.cpp5
-rw-r--r--storage/src/vespa/storage/storageserver/configurable_bucket_resolver.h5
-rw-r--r--storage/src/vespa/storage/storageserver/documentapiconverter.cpp69
-rw-r--r--storage/src/vespa/storage/storageserver/rpc/slime_cluster_state_bundle_codec.cpp19
-rw-r--r--storage/src/vespa/storageapi/message/searchresult.h6
18 files changed, 146 insertions, 108 deletions
diff --git a/storage/src/tests/distributor/CMakeLists.txt b/storage/src/tests/distributor/CMakeLists.txt
index c8dde75c73d..c59b56eb68f 100644
--- a/storage/src/tests/distributor/CMakeLists.txt
+++ b/storage/src/tests/distributor/CMakeLists.txt
@@ -22,6 +22,7 @@ vespa_add_executable(storage_distributor_gtest_runner_app TEST
gtest_runner.cpp
idealstatemanagertest.cpp
joinbuckettest.cpp
+ maintenancemocks.cpp
maintenanceschedulertest.cpp
mergelimitertest.cpp
mergeoperationtest.cpp
diff --git a/storage/src/tests/distributor/distributor_host_info_reporter_test.cpp b/storage/src/tests/distributor/distributor_host_info_reporter_test.cpp
index a02e98a93b8..6dfab5abc21 100644
--- a/storage/src/tests/distributor/distributor_host_info_reporter_test.cpp
+++ b/storage/src/tests/distributor/distributor_host_info_reporter_test.cpp
@@ -21,14 +21,9 @@ using BucketSpacesStats = BucketSpacesStatsProvider::BucketSpacesStats;
using namespace ::testing;
struct DistributorHostInfoReporterTest : Test {
- void verifyBucketSpaceStats(const vespalib::Slime& root,
- uint16_t nodeIndex,
- const vespalib::string& bucketSpaceName,
- size_t bucketsTotal,
- size_t bucketsPending);
- void verifyBucketSpaceStats(const vespalib::Slime& root,
- uint16_t nodeIndex,
- const vespalib::string& bucketSpaceName);
+ static void verifyBucketSpaceStats(const vespalib::Slime& root, uint16_t nodeIndex, const vespalib::string& bucketSpaceName,
+ size_t bucketsTotal, size_t bucketsPending);
+ static void verifyBucketSpaceStats(const vespalib::Slime& root, uint16_t nodeIndex, const vespalib::string& bucketSpaceName);
};
using ms = std::chrono::milliseconds;
@@ -40,19 +35,26 @@ struct MockedMinReplicaProvider : MinReplicaProvider
{
MinReplicaStats minReplica;
+ ~MockedMinReplicaProvider() override;
std::unordered_map<uint16_t, uint32_t> getMinReplica() const override {
return minReplica;
}
};
+MockedMinReplicaProvider::~MockedMinReplicaProvider() = default;
+
+
struct MockedBucketSpacesStatsProvider : public BucketSpacesStatsProvider {
PerNodeBucketSpacesStats stats;
+ ~MockedBucketSpacesStatsProvider() override;
PerNodeBucketSpacesStats getBucketSpacesStats() const override {
return stats;
}
};
+MockedBucketSpacesStatsProvider::~MockedBucketSpacesStatsProvider() = default;
+
const vespalib::slime::Inspector&
getNode(const vespalib::Slime& root, uint16_t nodeIndex)
{
diff --git a/storage/src/tests/distributor/maintenancemocks.cpp b/storage/src/tests/distributor/maintenancemocks.cpp
new file mode 100644
index 00000000000..e942a3889c1
--- /dev/null
+++ b/storage/src/tests/distributor/maintenancemocks.cpp
@@ -0,0 +1,13 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "maintenancemocks.h"
+
+namespace storage::distributor {
+
+MockOperationStarter::MockOperationStarter() noexcept
+ : _shouldStart(true)
+{}
+
+MockOperationStarter::~MockOperationStarter() = default;
+
+}
diff --git a/storage/src/tests/distributor/maintenancemocks.h b/storage/src/tests/distributor/maintenancemocks.h
index 5bcd8f962a6..0698c5e096b 100644
--- a/storage/src/tests/distributor/maintenancemocks.h
+++ b/storage/src/tests/distributor/maintenancemocks.h
@@ -23,9 +23,7 @@ class MockMaintenancePriorityGenerator
{
stats.incMovingOut(1, makeBucketSpace());
stats.incCopyingIn(2, makeBucketSpace());
- return MaintenancePriorityAndType(
- MaintenancePriority(MaintenancePriority::VERY_HIGH),
- MaintenanceOperation::MERGE_BUCKET);
+ return { MaintenancePriority(MaintenancePriority::VERY_HIGH), MaintenanceOperation::MERGE_BUCKET };
}
};
@@ -38,41 +36,41 @@ class MockOperation : public MaintenanceOperation
bool _was_blocked;
bool _was_throttled;
public:
- MockOperation(const document::Bucket &bucket)
+ explicit MockOperation(const document::Bucket &bucket)
: _bucket(bucket),
_shouldBlock(false),
_was_blocked(false),
_was_throttled(false)
{}
- std::string toString() const override {
+ [[nodiscard]] std::string toString() const override {
return _bucket.toString();
}
void onClose(DistributorStripeMessageSender&) override {}
- const char* getName() const noexcept override { return "MockOperation"; }
- const std::string& getDetailedReason() const override {
+ [[nodiscard]] const char* getName() const noexcept override { return "MockOperation"; }
+ [[nodiscard]] const std::string& getDetailedReason() const override {
return _reason;
}
void onStart(DistributorStripeMessageSender&) override {}
void onReceive(DistributorStripeMessageSender&, const std::shared_ptr<api::StorageReply>&) override {}
void on_blocked() override { _was_blocked = true; }
void on_throttled() override { _was_throttled = true; }
- bool isBlocked(const DistributorStripeOperationContext&, const OperationSequencer&) const override {
+ [[nodiscard]] bool isBlocked(const DistributorStripeOperationContext&, const OperationSequencer&) const override {
return _shouldBlock;
}
void setShouldBlock(bool shouldBlock) {
_shouldBlock = shouldBlock;
}
- bool get_was_blocked() const noexcept { return _was_blocked; }
- bool get_was_throttled() const noexcept { return _was_throttled; }
+ [[nodiscard]] bool get_was_blocked() const noexcept { return _was_blocked; }
+ [[nodiscard]] bool get_was_throttled() const noexcept { return _was_throttled; }
};
class MockMaintenanceOperationGenerator
: public MaintenanceOperationGenerator
{
public:
- MaintenanceOperation::SP generate(const document::Bucket&bucket) const override {
+ [[nodiscard]] MaintenanceOperation::SP generate(const document::Bucket&bucket) const override {
return std::make_shared<MockOperation>(bucket);
}
@@ -95,9 +93,8 @@ class MockOperationStarter
std::vector<Operation::SP> _operations;
bool _shouldStart;
public:
- MockOperationStarter()
- : _shouldStart(true)
- {}
+ MockOperationStarter() noexcept;
+ ~MockOperationStarter() override;
bool start(const std::shared_ptr<Operation>& operation, Priority priority) override
{
@@ -130,7 +127,7 @@ public:
_allow = allow;
}
- bool may_allow_operation_with_priority(OperationStarter::Priority) const noexcept override {
+ [[nodiscard]] bool may_allow_operation_with_priority(OperationStarter::Priority) const noexcept override {
return _allow;
}
};
diff --git a/storage/src/tests/storageserver/service_layer_error_listener_test.cpp b/storage/src/tests/storageserver/service_layer_error_listener_test.cpp
index 571bebd9c86..11ecc11f810 100644
--- a/storage/src/tests/storageserver/service_layer_error_listener_test.cpp
+++ b/storage/src/tests/storageserver/service_layer_error_listener_test.cpp
@@ -41,9 +41,11 @@ struct Fixture {
TestShutdownListener shutdown_listener;
ServiceLayerErrorListener error_listener{component, merge_throttler};
+ Fixture();
~Fixture();
};
+Fixture::Fixture() = default;
Fixture::~Fixture() = default;
}
diff --git a/storage/src/tests/storageserver/statemanagertest.cpp b/storage/src/tests/storageserver/statemanagertest.cpp
index d7fc04ebe8c..5764460f5bb 100644
--- a/storage/src/tests/storageserver/statemanagertest.cpp
+++ b/storage/src/tests/storageserver/statemanagertest.cpp
@@ -5,7 +5,6 @@
#include <vespa/storageapi/message/state.h>
#include <vespa/vdslib/state/cluster_state_bundle.h>
#include <vespa/vdslib/state/clusterstate.h>
-#include <vespa/storage/frameworkimpl/component/storagecomponentregisterimpl.h>
#include <vespa/storage/storageserver/statemanager.h>
#include <tests/common/teststorageapp.h>
#include <tests/common/testhelper.h>
@@ -159,9 +158,8 @@ struct MyStateListener : public StateListener {
lib::NodeState current;
std::ostringstream ost;
- MyStateListener(const NodeStateUpdater& upd)
- : updater(upd), current(*updater.getReportedNodeState()) {}
- ~MyStateListener() override = default;
+ MyStateListener(const NodeStateUpdater& upd);
+ ~MyStateListener() override;
void handleNewState() noexcept override {
ost << current << " -> ";
@@ -169,6 +167,11 @@ struct MyStateListener : public StateListener {
ost << current << "\n";
}
};
+
+MyStateListener::MyStateListener(const NodeStateUpdater& upd)
+ : updater(upd), current(*updater.getReportedNodeState())
+{}
+MyStateListener::~MyStateListener() = default;
}
TEST_F(StateManagerTest, reported_node_state) {
diff --git a/storage/src/tests/storageserver/statereportertest.cpp b/storage/src/tests/storageserver/statereportertest.cpp
index d7c5bdbf6ea..47d70cf436e 100644
--- a/storage/src/tests/storageserver/statereportertest.cpp
+++ b/storage/src/tests/storageserver/statereportertest.cpp
@@ -42,10 +42,10 @@ struct StateReporterTest : Test {
std::shared_ptr<FileStorMetrics> _filestorMetrics;
StateReporterTest();
+ ~StateReporterTest() override;
void SetUp() override;
void TearDown() override;
- void runLoad(uint32_t count = 1);
};
namespace {
@@ -68,6 +68,8 @@ StateReporterTest::StateReporterTest()
{
}
+StateReporterTest::~StateReporterTest() = default;
+
void StateReporterTest::SetUp() {
_config = std::make_unique<vdstestlib::DirConfig>(getStandardConfig(true, "statereportertest"));
assert(system(("rm -rf " + getRootFolder(*_config)).c_str()) == 0);
diff --git a/storage/src/tests/visiting/visitortest.cpp b/storage/src/tests/visiting/visitortest.cpp
index 7dc34bb4b6f..f3a538b7832 100644
--- a/storage/src/tests/visiting/visitortest.cpp
+++ b/storage/src/tests/visiting/visitortest.cpp
@@ -65,7 +65,8 @@ struct VisitorTest : Test {
DummyStorageLink* _bottom;
VisitorManager* _manager;
- VisitorTest() : _node() {}
+ VisitorTest();
+ ~VisitorTest() override;
// Not using setUp since can't throw exception out of it.
void initializeTest(const TestParams& params = TestParams());
@@ -138,6 +139,9 @@ protected:
uint32_t VisitorTest::docCount = 10;
+VisitorTest::VisitorTest() = default;
+VisitorTest::~VisitorTest() = default;
+
void
VisitorTest::initializeTest(const TestParams& params)
{
@@ -157,18 +161,16 @@ VisitorTest::initializeTest(const TestParams& params)
std::filesystem::create_directories(std::filesystem::path(vespalib::make_string("%s/disks/d0", rootFolder.c_str())));
std::filesystem::create_directories(std::filesystem::path(vespalib::make_string("%s/disks/d1", rootFolder.c_str())));
- _messageSessionFactory.reset(
- new TestVisitorMessageSessionFactory(config.getConfigId()));
+ _messageSessionFactory = std::make_unique<TestVisitorMessageSessionFactory>(config.getConfigId());
if (params._autoReplyError.getCode() != mbus::ErrorCode::NONE) {
_messageSessionFactory->_autoReplyError = params._autoReplyError;
_messageSessionFactory->_createAutoReplyVisitorSessions = true;
}
- _node.reset(new TestServiceLayerApp(config.getConfigId()));
- _top.reset(new DummyStorageLink());
+ _node = std::make_unique<TestServiceLayerApp>(config.getConfigId());
+ _top = std::make_unique<DummyStorageLink>();
_top->push_back(std::unique_ptr<StorageLink>(_manager
- = new VisitorManager(
- config::ConfigUri(config.getConfigId()),
- _node->getComponentRegister(), *_messageSessionFactory)));
+ = new VisitorManager(config::ConfigUri(config.getConfigId()),
+ _node->getComponentRegister(), *_messageSessionFactory)));
_bottom = new DummyStorageLink();
_top->push_back(std::unique_ptr<StorageLink>(_bottom));
_manager->setTimeBetweenTicks(10);
@@ -296,13 +298,13 @@ VisitorTest::getMessagesAndReply(
switch (msg->getType()) {
case documentapi::DocumentProtocol::MESSAGE_PUTDOCUMENT:
- docs.push_back(static_cast<documentapi::PutDocumentMessage&>(*msg).getDocumentSP());
+ docs.push_back(dynamic_cast<documentapi::PutDocumentMessage&>(*msg).getDocumentSP());
break;
case documentapi::DocumentProtocol::MESSAGE_REMOVEDOCUMENT:
- docIds.push_back(static_cast<documentapi::RemoveDocumentMessage&>(*msg).getDocumentId());
+ docIds.push_back(dynamic_cast<documentapi::RemoveDocumentMessage&>(*msg).getDocumentId());
break;
case documentapi::DocumentProtocol::MESSAGE_VISITORINFO:
- infoMessages.push_back(static_cast<documentapi::VisitorInfoMessage&>(*msg).getErrorMessage());
+ infoMessages.push_back(dynamic_cast<documentapi::VisitorInfoMessage&>(*msg).getErrorMessage());
break;
default:
break;
@@ -357,10 +359,10 @@ VisitorTest::verifyCreateVisitorReply(
uint32_t
VisitorTest::getMatchingDocuments(std::vector<Document::SP >& docs) {
uint32_t equalCount = 0;
- for (uint32_t i=0; i<docs.size(); ++i) {
- for (uint32_t j=0; j<_documents.size(); ++j) {
- if (*docs[i] == *_documents[j] &&
- docs[i]->getId() == _documents[j]->getId())
+ for (auto & doc : docs) {
+ for (auto & _document : _documents) {
+ if (*doc == *_document &&
+ doc->getId() == _document->getId())
{
equalCount++;
}
diff --git a/storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.cpp b/storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.cpp
index 315b7f3dd52..0d37219356e 100644
--- a/storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.cpp
+++ b/storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.cpp
@@ -12,6 +12,8 @@ IdealServiceLayerNodesBundle::IdealServiceLayerNodesBundle() noexcept
{
}
+IdealServiceLayerNodesBundle::IdealServiceLayerNodesBundle(IdealServiceLayerNodesBundle &&) noexcept = default;
+
IdealServiceLayerNodesBundle::~IdealServiceLayerNodesBundle() = default;
}
diff --git a/storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.h b/storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.h
index f98c4699eef..929ec7aadc1 100644
--- a/storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.h
+++ b/storage/src/vespa/storage/distributor/ideal_service_layer_nodes_bundle.h
@@ -15,6 +15,7 @@ class IdealServiceLayerNodesBundle {
std::vector<uint16_t> _available_nonretired_or_maintenance_nodes;
public:
IdealServiceLayerNodesBundle() noexcept;
+ IdealServiceLayerNodesBundle(IdealServiceLayerNodesBundle &&) noexcept;
~IdealServiceLayerNodesBundle();
void set_available_nodes(std::vector<uint16_t> available_nodes) {
diff --git a/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp b/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp
index 40738ccb60f..4d7c9dceb12 100644
--- a/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp
+++ b/storage/src/vespa/storage/frameworkimpl/status/statuswebserver.cpp
@@ -128,18 +128,24 @@ StatusWebServer::WebServer::handle_get(vespalib::Portal::GetRequest request)
}
namespace {
- class IndexPageReporter : public framework::HtmlStatusReporter {
- std::ostringstream ost;
- void reportHtmlStatus(std::ostream& out,const framework::HttpUrlPath&) const override {
- out << ost.str();
- }
- public:
- IndexPageReporter() : framework::HtmlStatusReporter("", "Index page") {}
+class IndexPageReporter : public framework::HtmlStatusReporter {
+ std::ostringstream ost;
+ void reportHtmlStatus(std::ostream& out,const framework::HttpUrlPath&) const override {
+ out << ost.str();
+ }
+
+public:
+ IndexPageReporter();
+ ~IndexPageReporter() override;
+
+ template<typename T>
+ IndexPageReporter& operator<<(const T& t) { ost << t; return *this; }
+};
+
+IndexPageReporter::IndexPageReporter() : framework::HtmlStatusReporter("", "Index page") {}
+IndexPageReporter::~IndexPageReporter() = default;
- template<typename T>
- IndexPageReporter& operator<<(const T& t) { ost << t; return *this; }
- };
}
diff --git a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp
index 9e55c0f9088..48345ff09bd 100644
--- a/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp
+++ b/storage/src/vespa/storage/persistence/provider_error_wrapper.cpp
@@ -14,6 +14,12 @@ ProviderErrorWrapper::checkResult(ResultType&& result) const
return std::forward<ResultType>(result);
}
+ProviderErrorWrapper::ProviderErrorWrapper(spi::PersistenceProvider& impl) noexcept
+ : _impl(impl),
+ _mutex()
+{ }
+ProviderErrorWrapper::~ProviderErrorWrapper() = default;
+
void
ProviderErrorWrapper::handle(const spi::Result & result) const {
if (result.getErrorCode() == spi::Result::ErrorType::FATAL_ERROR) {
diff --git a/storage/src/vespa/storage/persistence/provider_error_wrapper.h b/storage/src/vespa/storage/persistence/provider_error_wrapper.h
index 82447fe4549..da32cbb4270 100644
--- a/storage/src/vespa/storage/persistence/provider_error_wrapper.h
+++ b/storage/src/vespa/storage/persistence/provider_error_wrapper.h
@@ -32,11 +32,8 @@ public:
class ProviderErrorWrapper : public spi::PersistenceProvider, public spi::ResultHandler {
public:
- explicit ProviderErrorWrapper(spi::PersistenceProvider& impl)
- : _impl(impl),
- _mutex()
- {
- }
+ explicit ProviderErrorWrapper(spi::PersistenceProvider& impl) noexcept;
+ ~ProviderErrorWrapper() override;
spi::Result initialize() override;
spi::BucketIdListResult listBuckets(BucketSpace bucketSpace) const override;
diff --git a/storage/src/vespa/storage/storageserver/configurable_bucket_resolver.cpp b/storage/src/vespa/storage/storageserver/configurable_bucket_resolver.cpp
index 2e10a7c4836..fd01210ae9e 100644
--- a/storage/src/vespa/storage/storageserver/configurable_bucket_resolver.cpp
+++ b/storage/src/vespa/storage/storageserver/configurable_bucket_resolver.cpp
@@ -9,6 +9,11 @@ using namespace document;
namespace storage {
+ConfigurableBucketResolver::ConfigurableBucketResolver(BucketSpaceMapping type_to_space) noexcept
+ : _type_to_space(std::move(type_to_space))
+{}
+ConfigurableBucketResolver::~ConfigurableBucketResolver() = default;
+
document::Bucket ConfigurableBucketResolver::bucketFromId(const DocumentId& id) const {
if (!id.hasDocType()) {
// Legacy document ids without document type maps to default bucket space
diff --git a/storage/src/vespa/storage/storageserver/configurable_bucket_resolver.h b/storage/src/vespa/storage/storageserver/configurable_bucket_resolver.h
index 995e253f22c..5088b1f15b1 100644
--- a/storage/src/vespa/storage/storageserver/configurable_bucket_resolver.h
+++ b/storage/src/vespa/storage/storageserver/configurable_bucket_resolver.h
@@ -21,9 +21,8 @@ public:
using BucketSpaceMapping = std::unordered_map<vespalib::string, document::BucketSpace, vespalib::hash<vespalib::string>>;
const BucketSpaceMapping _type_to_space;
public:
- explicit ConfigurableBucketResolver(BucketSpaceMapping type_to_space) noexcept
- : _type_to_space(std::move(type_to_space))
- {}
+ explicit ConfigurableBucketResolver(BucketSpaceMapping type_to_space) noexcept;
+ ~ConfigurableBucketResolver() override;
document::Bucket bucketFromId(const document::DocumentId&) const override;
document::BucketSpace bucketSpaceFromName(const vespalib::string& name) const override;
diff --git a/storage/src/vespa/storage/storageserver/documentapiconverter.cpp b/storage/src/vespa/storage/storageserver/documentapiconverter.cpp
index 9a5fb2bdd13..9ae6aaf0653 100644
--- a/storage/src/vespa/storage/storageserver/documentapiconverter.cpp
+++ b/storage/src/vespa/storage/storageserver/documentapiconverter.cpp
@@ -42,7 +42,7 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentMessage& fromMsg)
switch (fromMsg.getType()) {
case DocumentProtocol::MESSAGE_PUTDOCUMENT:
{
- documentapi::PutDocumentMessage& from(static_cast<documentapi::PutDocumentMessage&>(fromMsg));
+ auto & from(static_cast<documentapi::PutDocumentMessage&>(fromMsg));
document::Bucket bucket = bucketResolver()->bucketFromId(from.getDocument().getId());
auto to = std::make_unique<api::PutCommand>(bucket, from.stealDocument(), from.getTimestamp());
to->setCondition(from.getCondition());
@@ -51,7 +51,7 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentMessage& fromMsg)
}
case DocumentProtocol::MESSAGE_UPDATEDOCUMENT:
{
- documentapi::UpdateDocumentMessage& from(static_cast<documentapi::UpdateDocumentMessage&>(fromMsg));
+ auto & from(static_cast<documentapi::UpdateDocumentMessage&>(fromMsg));
document::Bucket bucket = bucketResolver()->bucketFromId(from.getDocumentUpdate().getId());
auto to = std::make_unique<api::UpdateCommand>(bucket, from.stealDocumentUpdate(), from.getNewTimestamp());
to->setOldTimestamp(from.getOldTimestamp());
@@ -69,13 +69,13 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentMessage& fromMsg)
}
case DocumentProtocol::MESSAGE_GETDOCUMENT:
{
- documentapi::GetDocumentMessage& from(static_cast<documentapi::GetDocumentMessage&>(fromMsg));
+ auto & from(static_cast<documentapi::GetDocumentMessage&>(fromMsg));
toMsg = std::make_unique<api::GetCommand>(bucketResolver()->bucketFromId(from.getDocumentId()), from.getDocumentId(), from.getFieldSet());
break;
}
case DocumentProtocol::MESSAGE_CREATEVISITOR:
{
- documentapi::CreateVisitorMessage& from(static_cast<documentapi::CreateVisitorMessage&>(fromMsg));
+ auto & from(static_cast<documentapi::CreateVisitorMessage&>(fromMsg));
auto to = std::make_unique<api::CreateVisitorCommand>(bucketResolver()->bucketSpaceFromName(from.getBucketSpace()),
from.getLibraryName(), from.getInstanceId(),
from.getDocumentSelection());
@@ -97,28 +97,28 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentMessage& fromMsg)
}
case DocumentProtocol::MESSAGE_DESTROYVISITOR:
{
- documentapi::DestroyVisitorMessage& from(static_cast<documentapi::DestroyVisitorMessage&>(fromMsg));
+ auto & from(static_cast<documentapi::DestroyVisitorMessage&>(fromMsg));
toMsg = std::make_unique<api::DestroyVisitorCommand>(from.getInstanceId());
break;
}
case DocumentProtocol::MESSAGE_STATBUCKET:
{
- documentapi::StatBucketMessage& from(static_cast<documentapi::StatBucketMessage&>(fromMsg));
+ auto & from(static_cast<documentapi::StatBucketMessage&>(fromMsg));
document::Bucket bucket(bucketResolver()->bucketSpaceFromName(from.getBucketSpace()), from.getBucketId());
toMsg = std::make_unique<api::StatBucketCommand>(bucket, from.getDocumentSelection());
break;
}
case DocumentProtocol::MESSAGE_GETBUCKETLIST:
{
- documentapi::GetBucketListMessage& from(static_cast<documentapi::GetBucketListMessage&>(fromMsg));
+ auto & from(static_cast<documentapi::GetBucketListMessage&>(fromMsg));
document::Bucket bucket(bucketResolver()->bucketSpaceFromName(from.getBucketSpace()), from.getBucketId());
toMsg = std::make_unique<api::GetBucketListCommand>(bucket);
break;
}
case DocumentProtocol::MESSAGE_VISITORINFO:
{
- documentapi::VisitorInfoMessage& from(static_cast<documentapi::VisitorInfoMessage&>(fromMsg));
- api::VisitorInfoCommand::UP to(new api::VisitorInfoCommand);
+ auto & from(static_cast<documentapi::VisitorInfoMessage&>(fromMsg));
+ auto to = std::make_unique<api::VisitorInfoCommand>();
for (uint32_t i = 0; i < from.getFinishedBuckets().size(); ++i) {
to->setBucketCompleted(from.getFinishedBuckets()[i], 0);
}
@@ -130,7 +130,7 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentMessage& fromMsg)
}
case DocumentProtocol::MESSAGE_REMOVELOCATION:
{
- documentapi::RemoveLocationMessage& from(static_cast<documentapi::RemoveLocationMessage&>(fromMsg));
+ auto & from(static_cast<documentapi::RemoveLocationMessage&>(fromMsg));
document::Bucket bucket(bucketResolver()->bucketSpaceFromName(from.getBucketSpace()), document::BucketId(0));
toMsg = std::make_unique<api::RemoveLocationCommand>(from.getDocumentSelection(), bucket);
break;
@@ -166,8 +166,8 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentReply& fromReply,
switch (fromReply.getType()) {
case documentapi::DocumentProtocol::REPLY_CREATEVISITOR:
{
- documentapi::CreateVisitorReply& fromRep(static_cast<documentapi::CreateVisitorReply&>(fromReply));
- const api::CreateVisitorCommand& fromCmd(static_cast<const api::CreateVisitorCommand&>(fromCommand));
+ auto & fromRep(static_cast<documentapi::CreateVisitorReply&>(fromReply));
+ const auto & fromCmd(static_cast<const api::CreateVisitorCommand&>(fromCommand));
api::CreateVisitorReply::UP to(new api::CreateVisitorReply(fromCmd));
to->setVisitorStatistics(fromRep.getVisitorStatistics());
@@ -176,8 +176,8 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentReply& fromReply,
}
case documentapi::DocumentProtocol::REPLY_STATBUCKET:
{
- documentapi::StatBucketReply& fromRep(static_cast<documentapi::StatBucketReply&>(fromReply));
- const api::StatBucketCommand& fromCmd(static_cast<const api::StatBucketCommand&>(fromCommand));
+ auto & fromRep(static_cast<documentapi::StatBucketReply&>(fromReply));
+ const auto & fromCmd(static_cast<const api::StatBucketCommand&>(fromCommand));
toMsg = std::make_unique<api::StatBucketReply>(fromCmd, fromRep.getResults());
break;
@@ -204,16 +204,16 @@ DocumentApiConverter::toDocumentAPI(api::StorageCommand& fromMsg)
switch (fromMsg.getType().getId()) {
case api::MessageType::PUT_ID:
{
- api::PutCommand& from(static_cast<api::PutCommand&>(fromMsg));
- documentapi::PutDocumentMessage::UP to(new documentapi::PutDocumentMessage(from.getDocument()));
+ auto & from(static_cast<api::PutCommand&>(fromMsg));
+ auto to = std::make_unique<documentapi::PutDocumentMessage>(from.getDocument());
to->setTimestamp(from.getTimestamp());
toMsg = std::move(to);
break;
}
case api::MessageType::UPDATE_ID:
{
- api::UpdateCommand& from(static_cast<api::UpdateCommand&>(fromMsg));
- documentapi::UpdateDocumentMessage::UP to(new documentapi::UpdateDocumentMessage(from.getUpdate()));
+ auto & from(static_cast<api::UpdateCommand&>(fromMsg));
+ auto to = std::make_unique<documentapi::UpdateDocumentMessage>(from.getUpdate());
to->setOldTimestamp(from.getOldTimestamp());
to->setNewTimestamp(from.getTimestamp());
toMsg = std::move(to);
@@ -221,14 +221,14 @@ DocumentApiConverter::toDocumentAPI(api::StorageCommand& fromMsg)
}
case api::MessageType::REMOVE_ID:
{
- api::RemoveCommand& from(static_cast<api::RemoveCommand&>(fromMsg));
+ auto & from(static_cast<api::RemoveCommand&>(fromMsg));
toMsg = std::make_unique<documentapi::RemoveDocumentMessage>(from.getDocumentId());
break;
}
case api::MessageType::VISITOR_INFO_ID:
{
- api::VisitorInfoCommand& from(static_cast<api::VisitorInfoCommand&>(fromMsg));
- documentapi::VisitorInfoMessage::UP to(new documentapi::VisitorInfoMessage);
+ auto & from(static_cast<api::VisitorInfoCommand&>(fromMsg));
+ auto to = std::make_unique<documentapi::VisitorInfoMessage>();
for (uint32_t i = 0; i < from.getCompletedBucketsList().size(); ++i) {
to->getFinishedBuckets().push_back(from.getCompletedBucketsList()[i].bucketId);
@@ -239,25 +239,25 @@ DocumentApiConverter::toDocumentAPI(api::StorageCommand& fromMsg)
}
case api::MessageType::SEARCHRESULT_ID:
{
- api::SearchResultCommand& from(static_cast<api::SearchResultCommand&>(fromMsg));
- toMsg = std::make_unique<documentapi::SearchResultMessage>(from);
+ auto & from(static_cast<api::SearchResultCommand&>(fromMsg));
+ toMsg = std::make_unique<documentapi::SearchResultMessage>(std::move(from));
break;
}
case api::MessageType::QUERYRESULT_ID:
{
- api::QueryResultCommand& from(static_cast<api::QueryResultCommand&>(fromMsg));
- toMsg = std::make_unique<documentapi::QueryResultMessage>(from.getSearchResult(), from.getDocumentSummary());
+ auto & from(static_cast<api::QueryResultCommand&>(fromMsg));
+ toMsg = std::make_unique<documentapi::QueryResultMessage>(std::move(from.getSearchResult()), from.getDocumentSummary());
break;
}
case api::MessageType::DOCUMENTSUMMARY_ID:
{
- api::DocumentSummaryCommand& from(static_cast<api::DocumentSummaryCommand&>(fromMsg));
+ auto & from(static_cast<api::DocumentSummaryCommand&>(fromMsg));
toMsg = std::make_unique<documentapi::DocumentSummaryMessage>(from);
break;
}
case api::MessageType::MAPVISITOR_ID:
{
- api::MapVisitorCommand& from(static_cast<api::MapVisitorCommand&>(fromMsg));
+ auto & from(static_cast<api::MapVisitorCommand&>(fromMsg));
documentapi::MapVisitorMessage::UP to(new documentapi::MapVisitorMessage);
to->getData() = from.getData();
toMsg = std::move(to);
@@ -265,16 +265,15 @@ DocumentApiConverter::toDocumentAPI(api::StorageCommand& fromMsg)
}
case api::MessageType::EMPTYBUCKETS_ID:
{
- api::EmptyBucketsCommand& from(static_cast<api::EmptyBucketsCommand&>(fromMsg));
+ auto & from(static_cast<api::EmptyBucketsCommand&>(fromMsg));
toMsg = std::make_unique<documentapi::EmptyBucketsMessage>(from.getBuckets());
break;
}
case api::MessageType::VISITOR_CREATE_ID:
{
- api::CreateVisitorCommand& from(static_cast<api::CreateVisitorCommand&>(fromMsg));
- documentapi::CreateVisitorMessage::UP to(
- new documentapi::CreateVisitorMessage(from.getLibraryName(), from.getInstanceId(),
- from.getControlDestination(), from.getDataDestination()));
+ auto & from(static_cast<api::CreateVisitorCommand&>(fromMsg));
+ auto to = std::make_unique<documentapi::CreateVisitorMessage>(from.getLibraryName(), from.getInstanceId(),
+ from.getControlDestination(), from.getDataDestination());
to->setBucketSpace(bucketResolver()->nameFromBucketSpace(from.getBucketSpace()));
to->setDocumentSelection(from.getDocumentSelection());
to->setMaximumPendingReplyCount(from.getMaximumPendingReplyCount());
@@ -291,15 +290,15 @@ DocumentApiConverter::toDocumentAPI(api::StorageCommand& fromMsg)
}
case api::MessageType::VISITOR_DESTROY_ID:
{
- api::DestroyVisitorCommand& from(static_cast<api::DestroyVisitorCommand&>(fromMsg));
- documentapi::DestroyVisitorMessage::UP to(new documentapi::DestroyVisitorMessage);
+ auto & from(static_cast<api::DestroyVisitorCommand&>(fromMsg));
+ auto to = std::make_unique<documentapi::DestroyVisitorMessage>();
to->setInstanceId(from.getInstanceId());
toMsg = std::move(to);
break;
}
case api::MessageType::STATBUCKET_ID:
{
- api::StatBucketCommand& from(static_cast<api::StatBucketCommand&>(fromMsg));
+ auto & from(static_cast<api::StatBucketCommand&>(fromMsg));
auto statMsg = std::make_unique<documentapi::StatBucketMessage>(from.getBucket().getBucketId(), from.getDocumentSelection());
statMsg->setBucketSpace(bucketResolver()->nameFromBucketSpace(from.getBucket().getBucketSpace()));
toMsg = std::move(statMsg);
diff --git a/storage/src/vespa/storage/storageserver/rpc/slime_cluster_state_bundle_codec.cpp b/storage/src/vespa/storage/storageserver/rpc/slime_cluster_state_bundle_codec.cpp
index 1c5b38967cc..8c994991b9b 100644
--- a/storage/src/vespa/storage/storageserver/rpc/slime_cluster_state_bundle_codec.cpp
+++ b/storage/src/vespa/storage/storageserver/rpc/slime_cluster_state_bundle_codec.cpp
@@ -26,11 +26,12 @@ namespace {
class OutputBuf : public vespalib::Output {
public:
explicit OutputBuf(size_t estimatedSize) : _buf(estimatedSize) { }
+ ~OutputBuf() override;
vespalib::DataBuffer & getBuf() { return _buf; }
private:
vespalib::WritableMemory reserve(size_t bytes) override {
_buf.ensureFree(bytes);
- return vespalib::WritableMemory(_buf.getFree(), _buf.getFreeLen());
+ return {_buf.getFree(), _buf.getFreeLen()};
}
Output &commit(size_t bytes) override {
_buf.moveFreeToData(bytes);
@@ -39,19 +40,21 @@ private:
vespalib::DataBuffer _buf;
};
+OutputBuf::~OutputBuf() = default;
+
vespalib::string serialize_state(const lib::ClusterState& state) {
vespalib::asciistream as;
state.serialize(as, false);
return as.str();
}
-static const Memory StatesField("states");
-static const Memory BaselineField("baseline");
-static const Memory SpacesField("spaces");
-static const Memory DeferredActivationField("deferred-activation");
-static const Memory FeedBlockField("feed-block");
-static const Memory BlockFeedInClusterField("block-feed-in-cluster");
-static const Memory DescriptionField("description");
+const Memory StatesField("states");
+const Memory BaselineField("baseline");
+const Memory SpacesField("spaces");
+const Memory DeferredActivationField("deferred-activation");
+const Memory FeedBlockField("feed-block");
+const Memory BlockFeedInClusterField("block-feed-in-cluster");
+const Memory DescriptionField("description");
}
diff --git a/storage/src/vespa/storageapi/message/searchresult.h b/storage/src/vespa/storageapi/message/searchresult.h
index 4795876102d..b12fa5e1613 100644
--- a/storage/src/vespa/storageapi/message/searchresult.h
+++ b/storage/src/vespa/storageapi/message/searchresult.h
@@ -4,8 +4,7 @@
#include "visitor.h"
#include <vespa/vdslib/container/searchresult.h>
-namespace storage {
-namespace api {
+namespace storage::api {
/**
* @class SearchResultCommand
@@ -33,5 +32,4 @@ public:
DECLARE_STORAGEREPLY(SearchResultReply, onSearchResultReply)
};
-} // api
-} // storage
+}