summaryrefslogtreecommitdiffstats
path: root/documentapi
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-11-23 19:54:57 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-11-23 19:54:57 +0000
commit45ef55eb4c13ed89391b4c61f81c719fc4f2033a (patch)
tree03f6bd5476689e6fb921213fe49addac06073014 /documentapi
parent66445f857b81b051c1572409ce19d032cb03024c (diff)
- Reorder members for compactness.
- Avoid needing the definition of Error everywhere. - use std::make_xxx and other c++11 constructs.
Diffstat (limited to 'documentapi')
-rw-r--r--documentapi/src/tests/messages/messages60test.cpp11
-rw-r--r--documentapi/src/tests/replymerger/replymerger_test.cpp1
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp93
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.cpp9
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.h16
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/documentreply.cpp6
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/documentreply.h2
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.cpp3
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.h3
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/andpolicy.cpp14
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.cpp16
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.h3
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.cpp1
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.cpp4
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp2
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/routablefactories60.h14
16 files changed, 97 insertions, 101 deletions
diff --git a/documentapi/src/tests/messages/messages60test.cpp b/documentapi/src/tests/messages/messages60test.cpp
index c7bb1015e02..8b895fb2b59 100644
--- a/documentapi/src/tests/messages/messages60test.cpp
+++ b/documentapi/src/tests/messages/messages60test.cpp
@@ -323,6 +323,7 @@ Messages60Test::testGetDocumentMessage()
{
GetDocumentMessage tmp(document::DocumentId("id:ns:testdoc::"), "foo bar");
+ EXPECT_EQUAL(360u, sizeof(GetDocumentMessage));
EXPECT_EQUAL(MESSAGE_BASE_LENGTH + (size_t)31, serialize("GetDocumentMessage", tmp));
for (uint32_t lang = 0; lang < NUM_LANGUAGES; ++lang) {
@@ -400,6 +401,7 @@ Messages60Test::testPutDocumentMessage()
msg.setTimestamp(666);
msg.setCondition(TestAndSetCondition("There's just one condition"));
+ EXPECT_EQUAL(280u, sizeof(PutDocumentMessage));
EXPECT_EQUAL(MESSAGE_BASE_LENGTH +
45u +
serializedLength(msg.getCondition().getSelection()),
@@ -447,6 +449,7 @@ Messages60Test::testPutDocumentReply()
reply.setHighestModificationTimestamp(30);
EXPECT_EQUAL(13u, serialize("PutDocumentReply", reply));
+ EXPECT_EQUAL(112u, sizeof(WriteDocumentReply));
for (uint32_t lang = 0; lang < NUM_LANGUAGES; ++lang) {
mbus::Routable::UP obj = deserialize("PutDocumentReply", DocumentProtocol::REPLY_PUTDOCUMENT, lang);
@@ -466,6 +469,7 @@ Messages60Test::testUpdateDocumentReply()
reply.setHighestModificationTimestamp(30);
EXPECT_EQUAL(14u, serialize("UpdateDocumentReply", reply));
+ EXPECT_EQUAL(120u, sizeof(UpdateDocumentReply));
for (uint32_t lang = 0; lang < NUM_LANGUAGES; ++lang) {
mbus::Routable::UP obj = deserialize("UpdateDocumentReply", DocumentProtocol::REPLY_UPDATEDOCUMENT, lang);
@@ -485,12 +489,13 @@ Messages60Test::testRemoveDocumentMessage()
msg.setCondition(TestAndSetCondition("There's just one condition"));
+ EXPECT_EQUAL(360u, sizeof(RemoveDocumentMessage));
EXPECT_EQUAL(MESSAGE_BASE_LENGTH + size_t(20) + serializedLength(msg.getCondition().getSelection()), serialize("RemoveDocumentMessage", msg));
for (uint32_t lang = 0; lang < NUM_LANGUAGES; ++lang) {
auto routablePtr = deserialize("RemoveDocumentMessage", DocumentProtocol::MESSAGE_REMOVEDOCUMENT, lang);
- if (EXPECT_TRUE(routablePtr.get() != nullptr)) {
+ if (EXPECT_TRUE(routablePtr)) {
auto & ref = static_cast<RemoveDocumentMessage &>(*routablePtr);
EXPECT_EQUAL(string("id:ns:testdoc::"), ref.getDocumentId().toString());
EXPECT_EQUAL(msg.getCondition().getSelection(), ref.getCondition().getSelection());
@@ -506,6 +511,7 @@ Messages60Test::testRemoveDocumentReply()
std::vector<uint64_t> ts;
reply.setWasFound(false);
reply.setHighestModificationTimestamp(30);
+ EXPECT_EQUAL(120u, sizeof(RemoveDocumentReply));
EXPECT_EQUAL(14u, serialize("RemoveDocumentReply", reply));
@@ -663,12 +669,13 @@ Messages60Test::testUpdateDocumentMessage()
msg.setNewTimestamp(777u);
msg.setCondition(TestAndSetCondition("There's just one condition"));
+ EXPECT_EQUAL(288u, sizeof(UpdateDocumentMessage));
EXPECT_EQUAL(MESSAGE_BASE_LENGTH + 93u + serializedLength(msg.getCondition().getSelection()), serialize("UpdateDocumentMessage", msg));
for (uint32_t lang = 0; lang < NUM_LANGUAGES; ++lang) {
auto routableUp = deserialize("UpdateDocumentMessage", DocumentProtocol::MESSAGE_UPDATEDOCUMENT, lang);
- if (EXPECT_TRUE(routableUp.get() != nullptr)) {
+ if (EXPECT_TRUE(routableUp)) {
auto & deserializedMsg = static_cast<UpdateDocumentMessage &>(*routableUp);
EXPECT_EQUAL(msg.getDocumentUpdate(), deserializedMsg.getDocumentUpdate());
EXPECT_EQUAL(msg.getOldTimestamp(), deserializedMsg.getOldTimestamp());
diff --git a/documentapi/src/tests/replymerger/replymerger_test.cpp b/documentapi/src/tests/replymerger/replymerger_test.cpp
index 4626ccd0a60..f74ad23da1d 100644
--- a/documentapi/src/tests/replymerger/replymerger_test.cpp
+++ b/documentapi/src/tests/replymerger/replymerger_test.cpp
@@ -8,6 +8,7 @@
#include <vespa/documentapi/messagebus/messages/updatedocumentreply.h>
#include <vespa/documentapi/messagebus/messages/getdocumentreply.h>
#include <vespa/messagebus/emptyreply.h>
+#include <vespa/messagebus/error.h>
using namespace documentapi;
diff --git a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp
index dcfc0fa5f6e..a957ce5e4ff 100644
--- a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.cpp
@@ -8,6 +8,7 @@
#include <vespa/document/util/stringutil.h>
#include <vespa/documentapi/documentapi.h>
#include <vespa/vespalib/util/exceptions.h>
+#include <vespa/messagebus/error.h>
#include <sstream>
#include <cassert>
@@ -31,16 +32,16 @@ DocumentProtocol::DocumentProtocol(const LoadTypeSet& loadTypes,
string cfg = (configId.empty() ? "client" : configId);
// When adding factories to this list, please KEEP THEM ORDERED alphabetically like they are now.
- putRoutingPolicyFactory("AND", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::AndPolicyFactory()));
- putRoutingPolicyFactory("Content", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::ContentPolicyFactory()));
- putRoutingPolicyFactory("MessageType", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::MessageTypePolicyFactory()));
- putRoutingPolicyFactory("DocumentRouteSelector", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::DocumentRouteSelectorPolicyFactory(*_repo, cfg)));
- putRoutingPolicyFactory("Extern", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::ExternPolicyFactory()));
- putRoutingPolicyFactory("LocalService", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::LocalServicePolicyFactory()));
- putRoutingPolicyFactory("RoundRobin", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::RoundRobinPolicyFactory()));
- putRoutingPolicyFactory("Storage", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::StoragePolicyFactory()));
- putRoutingPolicyFactory("SubsetService", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::SubsetServicePolicyFactory()));
- putRoutingPolicyFactory("LoadBalancer", IRoutingPolicyFactory::SP(new RoutingPolicyFactories::LoadBalancerPolicyFactory()));
+ putRoutingPolicyFactory("AND", std::make_shared<RoutingPolicyFactories::AndPolicyFactory>());
+ putRoutingPolicyFactory("Content", std::make_shared<RoutingPolicyFactories::ContentPolicyFactory>());
+ putRoutingPolicyFactory("MessageType", std::make_shared<RoutingPolicyFactories::MessageTypePolicyFactory>());
+ putRoutingPolicyFactory("DocumentRouteSelector", std::make_shared<RoutingPolicyFactories::DocumentRouteSelectorPolicyFactory>(*_repo, cfg));
+ putRoutingPolicyFactory("Extern", std::make_shared<RoutingPolicyFactories::ExternPolicyFactory>());
+ putRoutingPolicyFactory("LocalService", std::make_shared<RoutingPolicyFactories::LocalServicePolicyFactory>());
+ putRoutingPolicyFactory("RoundRobin", std::make_shared<RoutingPolicyFactories::RoundRobinPolicyFactory>());
+ putRoutingPolicyFactory("Storage", std::make_shared<RoutingPolicyFactories::StoragePolicyFactory>());
+ putRoutingPolicyFactory("SubsetService", std::make_shared<RoutingPolicyFactories::SubsetServicePolicyFactory>());
+ putRoutingPolicyFactory("LoadBalancer", std::make_shared<RoutingPolicyFactories::LoadBalancerPolicyFactory>());
// Prepare version specifications to use when adding routable factories.
vespalib::VersionSpecification version6(6, 221);
@@ -48,42 +49,42 @@ DocumentProtocol::DocumentProtocol(const LoadTypeSet& loadTypes,
std::vector<vespalib::VersionSpecification> from6 = { version6 };
// Add 6.x serialization
- putRoutableFactory(MESSAGE_CREATEVISITOR, IRoutableFactory::SP(new RoutableFactories60::CreateVisitorMessageFactory()), from6);
- putRoutableFactory(MESSAGE_DESTROYVISITOR, IRoutableFactory::SP(new RoutableFactories60::DestroyVisitorMessageFactory()), from6);
- putRoutableFactory(MESSAGE_DOCUMENTLIST, IRoutableFactory::SP(new RoutableFactories60::DocumentListMessageFactory(*_repo)), from6);
- putRoutableFactory(MESSAGE_DOCUMENTSUMMARY, IRoutableFactory::SP(new RoutableFactories60::DocumentSummaryMessageFactory()), from6);
- putRoutableFactory(MESSAGE_EMPTYBUCKETS, IRoutableFactory::SP(new RoutableFactories60::EmptyBucketsMessageFactory()), from6);
- putRoutableFactory(MESSAGE_GETBUCKETLIST, IRoutableFactory::SP(new RoutableFactories60::GetBucketListMessageFactory()), from6);
- putRoutableFactory(MESSAGE_GETBUCKETSTATE, IRoutableFactory::SP(new RoutableFactories60::GetBucketStateMessageFactory()), from6);
- putRoutableFactory(MESSAGE_GETDOCUMENT, IRoutableFactory::SP(new RoutableFactories60::GetDocumentMessageFactory()), from6);
- putRoutableFactory(MESSAGE_MAPVISITOR, IRoutableFactory::SP(new RoutableFactories60::MapVisitorMessageFactory()), from6);
- putRoutableFactory(MESSAGE_PUTDOCUMENT, IRoutableFactory::SP(new RoutableFactories60::PutDocumentMessageFactory(*_repo)), from6);
- putRoutableFactory(MESSAGE_QUERYRESULT, IRoutableFactory::SP(new RoutableFactories60::QueryResultMessageFactory()), from6);
- putRoutableFactory(MESSAGE_REMOVEDOCUMENT, IRoutableFactory::SP(new RoutableFactories60::RemoveDocumentMessageFactory()), from6);
- putRoutableFactory(MESSAGE_REMOVELOCATION, IRoutableFactory::SP(new RoutableFactories60::RemoveLocationMessageFactory(*_repo)), from6);
- putRoutableFactory(MESSAGE_SEARCHRESULT, IRoutableFactory::SP(new RoutableFactories60::SearchResultMessageFactory()), from6);
- putRoutableFactory(MESSAGE_STATBUCKET, IRoutableFactory::SP(new RoutableFactories60::StatBucketMessageFactory()), from6);
- putRoutableFactory(MESSAGE_UPDATEDOCUMENT, IRoutableFactory::SP(new RoutableFactories60::UpdateDocumentMessageFactory(*_repo)), from6);
- putRoutableFactory(MESSAGE_VISITORINFO, IRoutableFactory::SP(new RoutableFactories60::VisitorInfoMessageFactory()), from6);
- putRoutableFactory(REPLY_CREATEVISITOR, IRoutableFactory::SP(new RoutableFactories60::CreateVisitorReplyFactory()), from6);
- putRoutableFactory(REPLY_DESTROYVISITOR, IRoutableFactory::SP(new RoutableFactories60::DestroyVisitorReplyFactory()), from6);
- putRoutableFactory(REPLY_DOCUMENTIGNORED, IRoutableFactory::SP(new RoutableFactories60::DocumentIgnoredReplyFactory()), from6);
- putRoutableFactory(REPLY_DOCUMENTLIST, IRoutableFactory::SP(new RoutableFactories60::DocumentListReplyFactory()), from6);
- putRoutableFactory(REPLY_DOCUMENTSUMMARY, IRoutableFactory::SP(new RoutableFactories60::DocumentSummaryReplyFactory()), from6);
- putRoutableFactory(REPLY_EMPTYBUCKETS, IRoutableFactory::SP(new RoutableFactories60::EmptyBucketsReplyFactory()), from6);
- putRoutableFactory(REPLY_GETBUCKETLIST, IRoutableFactory::SP(new RoutableFactories60::GetBucketListReplyFactory()), from6);
- putRoutableFactory(REPLY_GETBUCKETSTATE, IRoutableFactory::SP(new RoutableFactories60::GetBucketStateReplyFactory()), from6);
- putRoutableFactory(REPLY_GETDOCUMENT, IRoutableFactory::SP(new RoutableFactories60::GetDocumentReplyFactory(*_repo)), from6);
- putRoutableFactory(REPLY_MAPVISITOR, IRoutableFactory::SP(new RoutableFactories60::MapVisitorReplyFactory()), from6);
- putRoutableFactory(REPLY_PUTDOCUMENT, IRoutableFactory::SP(new RoutableFactories60::PutDocumentReplyFactory()), from6);
- putRoutableFactory(REPLY_QUERYRESULT, IRoutableFactory::SP(new RoutableFactories60::QueryResultReplyFactory()), from6);
- putRoutableFactory(REPLY_REMOVEDOCUMENT, IRoutableFactory::SP(new RoutableFactories60::RemoveDocumentReplyFactory()), from6);
- putRoutableFactory(REPLY_REMOVELOCATION, IRoutableFactory::SP(new RoutableFactories60::RemoveLocationReplyFactory()), from6);
- putRoutableFactory(REPLY_SEARCHRESULT, IRoutableFactory::SP(new RoutableFactories60::SearchResultReplyFactory()), from6);
- putRoutableFactory(REPLY_STATBUCKET, IRoutableFactory::SP(new RoutableFactories60::StatBucketReplyFactory()), from6);
- putRoutableFactory(REPLY_UPDATEDOCUMENT, IRoutableFactory::SP(new RoutableFactories60::UpdateDocumentReplyFactory()), from6);
- putRoutableFactory(REPLY_VISITORINFO, IRoutableFactory::SP(new RoutableFactories60::VisitorInfoReplyFactory()), from6);
- putRoutableFactory(REPLY_WRONGDISTRIBUTION, IRoutableFactory::SP(new RoutableFactories60::WrongDistributionReplyFactory()), from6);
+ putRoutableFactory(MESSAGE_CREATEVISITOR, std::make_shared<RoutableFactories60::CreateVisitorMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_DESTROYVISITOR, std::make_shared<RoutableFactories60::DestroyVisitorMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_DOCUMENTLIST, std::make_shared<RoutableFactories60::DocumentListMessageFactory>(*_repo), from6);
+ putRoutableFactory(MESSAGE_DOCUMENTSUMMARY, std::make_shared<RoutableFactories60::DocumentSummaryMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_EMPTYBUCKETS, std::make_shared<RoutableFactories60::EmptyBucketsMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_GETBUCKETLIST, std::make_shared<RoutableFactories60::GetBucketListMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_GETBUCKETSTATE, std::make_shared<RoutableFactories60::GetBucketStateMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_GETDOCUMENT, std::make_shared<RoutableFactories60::GetDocumentMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_MAPVISITOR, std::make_shared<RoutableFactories60::MapVisitorMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_PUTDOCUMENT, std::make_shared<RoutableFactories60::PutDocumentMessageFactory>(*_repo), from6);
+ putRoutableFactory(MESSAGE_QUERYRESULT, std::make_shared<RoutableFactories60::QueryResultMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_REMOVEDOCUMENT, std::make_shared<RoutableFactories60::RemoveDocumentMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_REMOVELOCATION, std::make_shared<RoutableFactories60::RemoveLocationMessageFactory>(*_repo), from6);
+ putRoutableFactory(MESSAGE_SEARCHRESULT, std::make_shared<RoutableFactories60::SearchResultMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_STATBUCKET, std::make_shared<RoutableFactories60::StatBucketMessageFactory>(), from6);
+ putRoutableFactory(MESSAGE_UPDATEDOCUMENT, std::make_shared<RoutableFactories60::UpdateDocumentMessageFactory>(*_repo), from6);
+ putRoutableFactory(MESSAGE_VISITORINFO, std::make_shared<RoutableFactories60::VisitorInfoMessageFactory>(), from6);
+ putRoutableFactory(REPLY_CREATEVISITOR, std::make_shared<RoutableFactories60::CreateVisitorReplyFactory>(), from6);
+ putRoutableFactory(REPLY_DESTROYVISITOR, std::make_shared<RoutableFactories60::DestroyVisitorReplyFactory>(), from6);
+ putRoutableFactory(REPLY_DOCUMENTIGNORED, std::make_shared<RoutableFactories60::DocumentIgnoredReplyFactory>(), from6);
+ putRoutableFactory(REPLY_DOCUMENTLIST, std::make_shared<RoutableFactories60::DocumentListReplyFactory>(), from6);
+ putRoutableFactory(REPLY_DOCUMENTSUMMARY, std::make_shared<RoutableFactories60::DocumentSummaryReplyFactory>(), from6);
+ putRoutableFactory(REPLY_EMPTYBUCKETS, std::make_shared<RoutableFactories60::EmptyBucketsReplyFactory>(), from6);
+ putRoutableFactory(REPLY_GETBUCKETLIST, std::make_shared<RoutableFactories60::GetBucketListReplyFactory>(), from6);
+ putRoutableFactory(REPLY_GETBUCKETSTATE, std::make_shared<RoutableFactories60::GetBucketStateReplyFactory>(), from6);
+ putRoutableFactory(REPLY_GETDOCUMENT, std::make_shared<RoutableFactories60::GetDocumentReplyFactory>(*_repo), from6);
+ putRoutableFactory(REPLY_MAPVISITOR, std::make_shared<RoutableFactories60::MapVisitorReplyFactory>(), from6);
+ putRoutableFactory(REPLY_PUTDOCUMENT, std::make_shared<RoutableFactories60::PutDocumentReplyFactory>(), from6);
+ putRoutableFactory(REPLY_QUERYRESULT, std::make_shared<RoutableFactories60::QueryResultReplyFactory>(), from6);
+ putRoutableFactory(REPLY_REMOVEDOCUMENT, std::make_shared<RoutableFactories60::RemoveDocumentReplyFactory>(), from6);
+ putRoutableFactory(REPLY_REMOVELOCATION, std::make_shared<RoutableFactories60::RemoveLocationReplyFactory>(), from6);
+ putRoutableFactory(REPLY_SEARCHRESULT, std::make_shared<RoutableFactories60::SearchResultReplyFactory>(), from6);
+ putRoutableFactory(REPLY_STATBUCKET, std::make_shared<RoutableFactories60::StatBucketReplyFactory>(), from6);
+ putRoutableFactory(REPLY_UPDATEDOCUMENT, std::make_shared<RoutableFactories60::UpdateDocumentReplyFactory>(), from6);
+ putRoutableFactory(REPLY_VISITORINFO, std::make_shared<RoutableFactories60::VisitorInfoReplyFactory>(), from6);
+ putRoutableFactory(REPLY_WRONGDISTRIBUTION, std::make_shared<RoutableFactories60::WrongDistributionReplyFactory>(), from6);
}
DocumentProtocol::~DocumentProtocol() = default;
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.cpp b/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.cpp
index 199d83749c2..892562ccd3a 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.cpp
@@ -2,23 +2,22 @@
#include "documentmessage.h"
#include <vespa/documentapi/messagebus/documentprotocol.h>
-#include <cassert>
namespace documentapi {
DocumentMessage::DocumentMessage() :
mbus::Message(),
- _priority(Priority::PRI_NORMAL_3),
_loadType(LoadType::DEFAULT),
+ _priority(Priority::PRI_NORMAL_3),
_approxSize(1024)
{}
+DocumentMessage::~DocumentMessage() = default;
+
mbus::Reply::UP
DocumentMessage::createReply() const
{
- mbus::Reply::UP ret(doCreateReply().release());
- assert(ret.get() != nullptr);
- return ret;
+ return doCreateReply();
}
const mbus::string&
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.h
index 6e1507068eb..77a4cc23b69 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.h
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.h
@@ -4,15 +4,14 @@
#include "documentreply.h"
#include <vespa/documentapi/loadtypes/loadtype.h>
#include <vespa/messagebus/message.h>
-#include <vespa/messagebus/reply.h>
namespace documentapi {
class DocumentMessage : public mbus::Message {
private:
+ LoadType _loadType;
Priority::Value _priority;
- LoadType _loadType;
- uint32_t _approxSize; // Not sent on wire; set by deserializer or by caller.
+ uint32_t _approxSize; // Not sent on wire; set by deserializer or by caller.
protected:
/**
@@ -30,15 +29,8 @@ public:
typedef std::unique_ptr<DocumentMessage> UP;
typedef std::shared_ptr<DocumentMessage> SP;
- /**
- * Constructs a new document message with no content.
- */
DocumentMessage();
-
- /**
- * Virtual destructor required for inheritance.
- */
- virtual ~DocumentMessage() { }
+ ~DocumentMessage() override;
/**
* Creates and returns a reply to this message. This method uses the internal {@link #doCreateReply()} to
@@ -47,7 +39,7 @@ public:
*
* @return The created reply.
*/
- mbus::Reply::UP createReply() const;
+ std::unique_ptr<mbus::Reply> createReply() const;
/**
* Returns the priority of this message.
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.cpp b/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.cpp
index 5a2478cbd65..d16f5d5cd66 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.cpp
@@ -9,9 +9,9 @@ DocumentReply::DocumentReply(uint32_t type) :
mbus::Reply(),
_type(type),
_priority(Priority::PRI_NORMAL_3)
-{
- // empty
-}
+{ }
+
+DocumentReply::~DocumentReply() = default;
const mbus::string&
DocumentReply::getProtocol() const
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.h b/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.h
index c166a4acb73..136c4983516 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.h
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.h
@@ -32,7 +32,7 @@ public:
/**
* Virtual destructor required for inheritance.
*/
- ~DocumentReply() { }
+ ~DocumentReply() override;
/**
* Returns the priority tag for this message. This is an optional tag added for VDS that is not interpreted by the
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.cpp b/documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.cpp
index f9a48cb0755..2c6a0d08032 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.cpp
@@ -4,6 +4,7 @@
namespace documentapi {
-TestAndSetMessage::~TestAndSetMessage() { }
+TestAndSetMessage::TestAndSetMessage() = default;
+TestAndSetMessage::~TestAndSetMessage() = default;
}
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.h
index d3e912549c4..2e623121c85 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.h
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/testandsetmessage.h
@@ -12,7 +12,8 @@ private:
TestAndSetCondition _condition;
public:
- ~TestAndSetMessage();
+ TestAndSetMessage();
+ ~TestAndSetMessage() override;
void setCondition(const TestAndSetCondition & condition) { _condition = condition; }
const TestAndSetCondition & getCondition() const { return _condition; }
};
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/andpolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/andpolicy.cpp
index baca64353fc..0683c0179cc 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/andpolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/andpolicy.cpp
@@ -1,8 +1,5 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "andpolicy.h"
-#include <vespa/messagebus/error.h>
-#include <vespa/messagebus/errorcode.h>
-#include <vespa/messagebus/emptyreply.h>
#include <vespa/messagebus/routing/routingcontext.h>
#include <vespa/documentapi/messagebus/documentprotocol.h>
@@ -18,10 +15,7 @@ ANDPolicy::ANDPolicy(const string &param)
}
}
-ANDPolicy::~ANDPolicy()
-{
- // empty
-}
+ANDPolicy::~ANDPolicy() = default;
void
ANDPolicy::select(mbus::RoutingContext &context)
@@ -29,11 +23,9 @@ ANDPolicy::select(mbus::RoutingContext &context)
if (_hops.empty()) {
context.addChildren(context.getAllRecipients());
} else {
- for (std::vector<mbus::Hop>::iterator it = _hops.begin();
- it != _hops.end(); ++it)
- {
+ for (auto & hop : _hops) {
mbus::Route route = context.getRoute();
- route.setHop(0, *it);
+ route.setHop(0, hop);
context.addChild(route);
}
}
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.cpp
index 82cda6c773f..21b09f32419 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.cpp
@@ -9,6 +9,7 @@
#include "asyncinitializationpolicy.h"
#include <vespa/vespalib/util/threadstackexecutor.h>
#include <vespa/messagebus/emptyreply.h>
+#include <vespa/messagebus/error.h>
#include <vespa/documentapi/messagebus/documentprotocol.h>
#include <vespa/vespalib/text/stringtokenizer.h>
@@ -50,20 +51,23 @@ AsyncInitializationPolicy::initSynchronous()
_state = State::DONE;
}
+namespace {
+
mbus::Error
-AsyncInitializationPolicy::currentPolicyInitError() const
-{
+currentPolicyInitError(vespalib::stringref error) {
// If an init error has been recorded for the last init attempt, report
// it back until we've managed to successfully complete the init step.
- if (_error.empty()) {
+ if (error.empty()) {
return mbus::Error(DocumentProtocol::ERROR_NODE_NOT_READY,
"Waiting to initialize policy");
} else {
return mbus::Error(DocumentProtocol::ERROR_POLICY_FAILURE,
- "Error when creating policy: " + _error);
+ "Error when creating policy: " + error);
}
}
+}
+
void
AsyncInitializationPolicy::select(mbus::RoutingContext& context)
{
@@ -87,7 +91,7 @@ AsyncInitializationPolicy::select(mbus::RoutingContext& context)
if (_state != State::DONE) {
auto reply = std::make_unique<mbus::EmptyReply>();
- reply->addError(currentPolicyInitError());
+ reply->addError(currentPolicyInitError(_error));
context.setReply(std::move(reply));
return;
}
@@ -96,7 +100,7 @@ AsyncInitializationPolicy::select(mbus::RoutingContext& context)
// deadlock (executor will stall until all its tasks have finished
// executing, and any queued tasks would attempt to take the mutex
// we're currently holding, deadlocking both threads).
- _executor.reset(nullptr);
+ _executor.reset();
}
doSelect(context);
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.h
index 0e30da8e7c8..3061eb3d337 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.h
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/asyncinitializationpolicy.h
@@ -2,7 +2,6 @@
#pragma once
#include <vespa/messagebus/routing/iroutingpolicy.h>
-#include <vespa/messagebus/error.h>
#include <vespa/vespalib/util/executor.h>
#include <vespa/documentapi/common.h>
#include <map>
@@ -42,8 +41,6 @@ public:
void needAsynchronousInit() { _syncInit = false; }
private:
- mbus::Error currentPolicyInitError() const;
-
class Task : public vespalib::Executor::Task
{
public:
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.cpp
index 3bf17213b26..feee7db8640 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.cpp
@@ -2,6 +2,7 @@
#include "loadbalancerpolicy.h"
#include <vespa/messagebus/emptyreply.h>
#include <vespa/messagebus/errorcode.h>
+#include <vespa/messagebus/error.h>
#include <vespa/messagebus/routing/ihopdirective.h>
#include <vespa/messagebus/routing/routingcontext.h>
#include <vespa/messagebus/routing/verbatimdirective.h>
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.cpp
index a58f3439df2..e780806c8c0 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.cpp
@@ -3,7 +3,7 @@
#include "roundrobinpolicy.h"
#include <vespa/documentapi/messagebus/documentprotocol.h>
#include <vespa/messagebus/emptyreply.h>
-#include <vespa/messagebus/routing/verbatimdirective.h>
+#include <vespa/messagebus/error.h>
namespace documentapi {
@@ -18,7 +18,7 @@ RoundRobinPolicy::RoundRobinPolicy(const string &) :
_cache()
{}
-RoundRobinPolicy::~RoundRobinPolicy() {}
+RoundRobinPolicy::~RoundRobinPolicy() = default;
void
RoundRobinPolicy::select(mbus::RoutingContext &ctx)
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp
index e49d412fee1..3fc1df0352a 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp
@@ -4,7 +4,7 @@
#include <vespa/document/base/documentid.h>
#include <vespa/document/update/documentupdate.h>
#include <vespa/messagebus/emptyreply.h>
-#include <vespa/messagebus/routing/verbatimdirective.h>
+#include <vespa/messagebus/error.h>
#include <vespa/documentapi/documentapi.h>
#include <vespa/vdslib/state/clusterstate.h>
#include <vespa/vespalib/stllike/asciistream.h>
diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h
index 0a997f3ffd9..579abbda291 100644
--- a/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h
+++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories60.h
@@ -137,7 +137,7 @@ public:
virtual bool encodeBucketSpace(vespalib::stringref bucketSpace, vespalib::GrowableByteBuffer& buf) const;
virtual string decodeBucketSpace(document::ByteBuffer&) const;
public:
- CreateVisitorMessageFactory() : DocumentMessageFactory() {}
+ CreateVisitorMessageFactory() noexcept : DocumentMessageFactory() {}
};
class CreateVisitorReplyFactory : public DocumentReplyFactory {
protected:
@@ -164,7 +164,7 @@ public:
DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override;
bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override;
public:
- DocumentListMessageFactory(const document::DocumentTypeRepo &r)
+ DocumentListMessageFactory(const document::DocumentTypeRepo &r) noexcept
: _repo(r) {}
};
class DocumentListReplyFactory : public DocumentReplyFactory {
@@ -224,14 +224,14 @@ public:
DocumentReply::UP doDecode(document::ByteBuffer &buf) const override;
bool doEncode(const DocumentReply &msg, vespalib::GrowableByteBuffer &buf) const override;
public:
- GetDocumentReplyFactory(const document::DocumentTypeRepo &r) : _repo(r) {}
+ GetDocumentReplyFactory(const document::DocumentTypeRepo &r) noexcept : _repo(r) {}
};
class MapVisitorMessageFactory : public DocumentMessageFactory {
protected:
DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override;
bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override;
public:
- MapVisitorMessageFactory() : DocumentMessageFactory() {}
+ MapVisitorMessageFactory() noexcept : DocumentMessageFactory() {}
};
class MapVisitorReplyFactory : public DocumentReplyFactory {
protected:
@@ -248,7 +248,7 @@ public:
bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override;
public:
void decodeInto(PutDocumentMessage & msg, document::ByteBuffer & buf) const;
- PutDocumentMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {}
+ PutDocumentMessageFactory(const document::DocumentTypeRepo &r) noexcept : _repo(r) {}
};
class PutDocumentReplyFactory : public DocumentReplyFactory {
protected:
@@ -275,7 +275,7 @@ public:
DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override;
bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override;
public:
- RemoveLocationMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {}
+ RemoveLocationMessageFactory(const document::DocumentTypeRepo &r) noexcept : _repo(r) {}
};
class RemoveLocationReplyFactory : public DocumentReplyFactory {
protected:
@@ -324,7 +324,7 @@ public:
bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override;
public:
void decodeInto(UpdateDocumentMessage & msg, document::ByteBuffer & buf) const;
- UpdateDocumentMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {}
+ UpdateDocumentMessageFactory(const document::DocumentTypeRepo &r) noexcept : _repo(r) {}
};
class UpdateDocumentReplyFactory : public DocumentReplyFactory {
protected: