diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-02-01 19:27:41 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-02-01 19:27:41 +0000 |
commit | 54cd94fa8d90a8b56c4b64ab2aba3b9c1d5bc5d9 (patch) | |
tree | 54b1d96ba46cd07831d947dd2ba0f5decbfbebe3 /storage | |
parent | 514a9d3eb8756afdaf47b253f7f893c9047eebf8 (diff) |
Deinline large destructors and clean up some code based on clion hints.
Diffstat (limited to 'storage')
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 +} |