diff options
author | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-10-20 13:36:16 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-20 13:36:16 +0200 |
commit | 5fd803fe826569265db2f76d327610ac829ed7ea (patch) | |
tree | d7a341f9f71afe98c2704218a88a5cf47a93374b /documentapi | |
parent | c29d5f06c591d303ef37ae75ab6e306ea3314bd5 (diff) | |
parent | 5b37d8b706055661ab68e8b2dee96cdedeaf0c72 (diff) |
Merge pull request #3808 from vespa-engine/toregge/add-bucket-space-to-storage-commands-pass4
Adjust constructors for more storage commands to use document::Bucket
Diffstat (limited to 'documentapi')
11 files changed, 46 insertions, 96 deletions
diff --git a/documentapi/src/tests/messagebus/messagebus_test.cpp b/documentapi/src/tests/messagebus/messagebus_test.cpp index 919dc6b6570..aa3fba01ef9 100644 --- a/documentapi/src/tests/messagebus/messagebus_test.cpp +++ b/documentapi/src/tests/messagebus/messagebus_test.cpp @@ -2,6 +2,7 @@ #include <vespa/document/base/testdocrepo.h> #include <vespa/document/fieldvalue/document.h> #include <vespa/document/datatype/documenttype.h> +#include <vespa/document/test/make_document_bucket.h> #include <vespa/documentapi/documentapi.h> #include <vespa/vdslib/state/clusterstate.h> #include <vespa/vespalib/testkit/testapp.h> @@ -13,6 +14,7 @@ using namespace documentapi; using mbus::Blob; using mbus::Routable; using mbus::IRoutingPolicy; +using document::test::makeDocumentBucket; class Test : public vespalib::TestApp { DocumentTypeRepo::SP _repo; @@ -108,11 +110,11 @@ void Test::get_document_message_is_not_sequenced() { } void Test::stat_bucket_message_is_not_sequenced() { - StatBucketMessage message(document::BucketId(16, 1), ""); + StatBucketMessage message(makeDocumentBucket(document::BucketId(16, 1)), ""); EXPECT_FALSE(message.hasSequenceId()); } void Test::get_bucket_list_message_is_not_sequenced() { - GetBucketListMessage message(document::BucketId(16, 1)); + GetBucketListMessage message(makeDocumentBucket(document::BucketId(16, 1))); EXPECT_FALSE(message.hasSequenceId()); } diff --git a/documentapi/src/tests/messages/messages50test.cpp b/documentapi/src/tests/messages/messages50test.cpp index 964e4e12288..f25e3f19b08 100644 --- a/documentapi/src/tests/messages/messages50test.cpp +++ b/documentapi/src/tests/messages/messages50test.cpp @@ -7,9 +7,12 @@ #include <vespa/document/datatype/documenttype.h> #include <vespa/document/bucket/bucketidfactory.h> #include <vespa/document/select/parser.h> +#include <vespa/document/test/make_document_bucket.h> using document::DataType; using document::DocumentTypeRepo; +using document::test::makeDocumentBucket; +using document::BucketSpace; /////////////////////////////////////////////////////////////////////////////// // @@ -88,7 +91,7 @@ createDoc(const DocumentTypeRepo &repo, const string &type_name, const string &i bool Messages50Test::testGetBucketListMessage() { - GetBucketListMessage msg(document::BucketId(16, 123)); + GetBucketListMessage msg(makeDocumentBucket(document::BucketId(16, 123))); msg.setLoadType(_loadTypes["foo"]); EXPECT_EQUAL(string("foo"), msg.getLoadType().getName()); EXPECT_EQUAL(MESSAGE_BASE_LENGTH + 12u, serialize("GetBucketListMessage", msg)); @@ -98,7 +101,7 @@ Messages50Test::testGetBucketListMessage() if (EXPECT_TRUE(obj.get() != NULL)) { GetBucketListMessage &ref = static_cast<GetBucketListMessage&>(*obj); EXPECT_EQUAL(string("foo"), ref.getLoadType().getName()); - EXPECT_EQUAL(document::BucketId(16, 123), ref.getBucketId()); + EXPECT_EQUAL(document::BucketId(16, 123), ref.getBucket().getBucketId()); } } return true; @@ -132,7 +135,7 @@ Messages50Test::testEmptyBucketsMessage() bool Messages50Test::testStatBucketMessage() { - StatBucketMessage msg(document::BucketId(16, 123), "id.user=123"); + StatBucketMessage msg(makeDocumentBucket(document::BucketId(16, 123)), "id.user=123"); EXPECT_EQUAL(MESSAGE_BASE_LENGTH + 27u, serialize("StatBucketMessage", msg)); @@ -140,7 +143,7 @@ Messages50Test::testStatBucketMessage() mbus::Routable::UP obj = deserialize("StatBucketMessage", DocumentProtocol::MESSAGE_STATBUCKET, lang); if (EXPECT_TRUE(obj.get() != NULL)) { StatBucketMessage &ref = static_cast<StatBucketMessage&>(*obj); - EXPECT_EQUAL(document::BucketId(16, 123), ref.getBucketId()); + EXPECT_EQUAL(document::BucketId(16, 123), ref.getBucket().getBucketId()); EXPECT_EQUAL("id.user=123", ref.getDocumentSelection()); } } @@ -1110,7 +1113,7 @@ Messages50Test::testWrongDistributionReply() bool Messages50Test::testGetBucketListReply() { - GetBucketListReply reply; + GetBucketListReply reply(BucketSpace::placeHolder()); reply.getBuckets().push_back(GetBucketListReply::BucketInfo(document::BucketId(16, 123), "foo")); reply.getBuckets().push_back(GetBucketListReply::BucketInfo(document::BucketId(17, 1123), "bar")); reply.getBuckets().push_back(GetBucketListReply::BucketInfo(document::BucketId(18, 11123), "zoink")); diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.cpp b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.cpp index 71bb750a5aa..974135972f6 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.cpp @@ -6,16 +6,9 @@ namespace documentapi { -GetBucketListMessage::GetBucketListMessage() : +GetBucketListMessage::GetBucketListMessage(const document::Bucket &bucket) : DocumentMessage(), - _bucketId() -{ - // empty -} - -GetBucketListMessage::GetBucketListMessage(const document::BucketId &bucketId) : - DocumentMessage(), - _bucketId(bucketId) + _bucket(bucket) { // empty } @@ -23,7 +16,7 @@ GetBucketListMessage::GetBucketListMessage(const document::BucketId &bucketId) : DocumentReply::UP GetBucketListMessage::doCreateReply() const { - return DocumentReply::UP(new GetBucketListReply()); + return DocumentReply::UP(new GetBucketListReply(_bucket.getBucketSpace())); } uint32_t diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.h index 350f36cc708..6b70808aea5 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.h @@ -2,13 +2,13 @@ #pragma once #include "documentmessage.h" -#include <vespa/document/bucket/bucketid.h> +#include <vespa/document/bucket/bucket.h> namespace documentapi { class GetBucketListMessage : public DocumentMessage { private: - document::BucketId _bucketId; + document::Bucket _bucket; protected: // Implements DocumentMessage. @@ -16,30 +16,19 @@ protected: public: /** - * Constructs a new message for deserialization. - */ - GetBucketListMessage(); - - /** * Constructs a new message with initial content. * - * @param bucketId The bucket whose list to retrieve. + * @param bucket The bucket whose list to retrieve. */ - GetBucketListMessage(const document::BucketId &bucketId); + GetBucketListMessage(const document::Bucket &bucket); /** * Returns the bucket whose list to retrieve. * - * @return The bucket id. + * @return The bucket. */ - const document::BucketId& getBucketId() const { return _bucketId; } + const document::Bucket &getBucket() const { return _bucket; } - /** - * Sets the bucket whose list to retrieve. - * - * @param id The bucket id to set. - */ - void setBucketId(const document::BucketId& id) { _bucketId = id; } uint32_t getType() const override; string toString() const override { return "getbucketlistmessage"; } }; diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.cpp b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.cpp index e144158e0ef..e9f66ed1f2f 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.cpp @@ -23,8 +23,9 @@ GetBucketListReply::BucketInfo::operator==(const GetBucketListReply::BucketInfo return _bucket == rhs._bucket && _bucketInformation == rhs._bucketInformation; } -GetBucketListReply::GetBucketListReply() : +GetBucketListReply::GetBucketListReply(document::BucketSpace bucketSpace) : DocumentReply(DocumentProtocol::REPLY_GETBUCKETLIST), + _bucketSpace(bucketSpace), _buckets() { // empty diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.h b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.h index 3ded7f7d08b..3c6a2a25bfc 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.h @@ -2,7 +2,7 @@ #pragma once #include "documentreply.h" -#include <vespa/document/bucket/bucketid.h> +#include <vespa/document/bucket/bucket.h> namespace documentapi { @@ -20,13 +20,14 @@ public: }; private: + document::BucketSpace _bucketSpace; std::vector<BucketInfo> _buckets; public: /** * Constructs a new reply with no content. */ - GetBucketListReply(); + GetBucketListReply(document::BucketSpace bucketSpace); /** * Returns the bucket state contained in this. diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.cpp b/documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.cpp index 4208c9974bc..00aef46cb79 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.cpp @@ -3,15 +3,17 @@ #include "statbucketreply.h" #include <vespa/documentapi/messagebus/documentprotocol.h> +using document::BucketSpace; + namespace documentapi { StatBucketMessage::StatBucketMessage() : DocumentMessage(), - _bucket(), + _bucket(BucketSpace::placeHolder(), document::BucketId()), _documentSelection() {} -StatBucketMessage::StatBucketMessage(document::BucketId bucket, const string& documentSelection) : +StatBucketMessage::StatBucketMessage(document::Bucket bucket, const string& documentSelection) : DocumentMessage(), _bucket(bucket), _documentSelection(documentSelection) diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.h index 74e908f4a85..a13d675ee0b 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.h @@ -2,13 +2,13 @@ #pragma once #include "documentmessage.h" -#include <vespa/document/bucket/bucketid.h> +#include <vespa/document/bucket/bucket.h> namespace documentapi { class StatBucketMessage : public DocumentMessage { private: - document::BucketId _bucket; + document::Bucket _bucket; string _documentSelection; protected: @@ -25,7 +25,7 @@ public: * * @param bucket The bucket whose list to retrieve. */ - StatBucketMessage(document::BucketId bucket, const string& documentSelection); + StatBucketMessage(document::Bucket bucket, const string& documentSelection); ~StatBucketMessage(); @@ -34,14 +34,14 @@ public: * * @return The bucket id. */ - document::BucketId getBucketId() const { return _bucket; } + document::Bucket getBucket() const { return _bucket; } /** * Set the bucket to stat. * * @param id The identifier to set. */ - void setBucketId(document::BucketId id) { _bucket = id; }; + void setBucket(document::Bucket bucket) { _bucket = bucket; }; /** * Returns the document selection used to filter the documents diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp index b7b451e8ddf..b638fd1cabe 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp @@ -139,11 +139,11 @@ StoragePolicy::doSelect(mbus::RoutingContext &context) break; case DocumentProtocol::MESSAGE_STATBUCKET: - id = static_cast<const StatBucketMessage&>(msg).getBucketId(); + id = static_cast<const StatBucketMessage&>(msg).getBucket().getBucketId(); break; case DocumentProtocol::MESSAGE_GETBUCKETLIST: - id = static_cast<const GetBucketListMessage&>(msg).getBucketId(); + id = static_cast<const GetBucketListMessage&>(msg).getBucket().getBucketId(); break; case DocumentProtocol::MESSAGE_CREATEVISITOR: diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp index 504b3fcdf4f..fff46c0128d 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp @@ -10,6 +10,7 @@ using vespalib::nbostream; using std::make_unique; using std::make_shared; +using document::BucketSpace; namespace documentapi { @@ -270,36 +271,6 @@ RoutableFactories50::DestroyVisitorReplyFactory::doEncode(const DocumentReply &o } DocumentMessage::UP -RoutableFactories50::DocBlockMessageFactory::doDecode(document::ByteBuffer &buf) const -{ - (void)buf; - return DocumentMessage::UP(); // TODO: remove message type -} - -bool -RoutableFactories50::DocBlockMessageFactory::doEncode(const DocumentMessage &obj, vespalib::GrowableByteBuffer &buf) const -{ - (void)obj; - (void)buf; - return false; -} - -DocumentReply::UP -RoutableFactories50::DocBlockReplyFactory::doDecode(document::ByteBuffer &buf) const -{ - (void)buf; - return DocumentReply::UP(); // TODO: remove reply type -} - -bool -RoutableFactories50::DocBlockReplyFactory::doEncode(const DocumentReply &obj, vespalib::GrowableByteBuffer &buf) const -{ - (void)obj; - (void)buf; - return false; -} - -DocumentMessage::UP RoutableFactories50::DocumentListMessageFactory::doDecode(document::ByteBuffer &buf) const { DocumentMessage::UP ret(new DocumentListMessage()); @@ -437,26 +408,23 @@ RoutableFactories50::EmptyBucketsReplyFactory::doEncode(const DocumentReply &obj DocumentMessage::UP RoutableFactories50::GetBucketListMessageFactory::doDecode(document::ByteBuffer &buf) const { - DocumentMessage::UP ret(new GetBucketListMessage()); - GetBucketListMessage &msg = static_cast<GetBucketListMessage&>(*ret); - - msg.setBucketId(document::BucketId(decodeLong(buf))); - - return ret; + document::BucketId bucketId(decodeLong(buf)); + document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + return std::make_unique<GetBucketListMessage>(bucket); } bool RoutableFactories50::GetBucketListMessageFactory::doEncode(const DocumentMessage &obj, vespalib::GrowableByteBuffer &buf) const { const GetBucketListMessage &msg = static_cast<const GetBucketListMessage&>(obj); - buf.putLong(msg.getBucketId().getRawId()); + buf.putLong(msg.getBucket().getBucketId().getRawId()); return true; } DocumentReply::UP RoutableFactories50::GetBucketListReplyFactory::doDecode(document::ByteBuffer &buf) const { - DocumentReply::UP ret(new GetBucketListReply()); + DocumentReply::UP ret(new GetBucketListReply(BucketSpace::placeHolder())); GetBucketListReply &reply = static_cast<GetBucketListReply&>(*ret); int32_t len = decodeInt(buf); @@ -869,7 +837,8 @@ RoutableFactories50::StatBucketMessageFactory::doDecode(document::ByteBuffer &bu DocumentMessage::UP ret(new StatBucketMessage()); StatBucketMessage &msg = static_cast<StatBucketMessage&>(*ret); - msg.setBucketId(document::BucketId(decodeLong(buf))); + document::Bucket bucket(BucketSpace::placeHolder(), document::BucketId(decodeLong(buf))); + msg.setBucket(bucket); msg.setDocumentSelection(decodeString(buf)); return ret; @@ -880,7 +849,7 @@ RoutableFactories50::StatBucketMessageFactory::doEncode(const DocumentMessage &o { const StatBucketMessage &msg = static_cast<const StatBucketMessage&>(obj); - buf.putLong(msg.getBucketId().getRawId()); + buf.putLong(msg.getBucket().getBucketId().getRawId()); buf.putString(msg.getDocumentSelection()); return true; diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.h b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.h index cf9f223ab3b..102b7f16c43 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.h +++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.h @@ -200,16 +200,6 @@ public: DocumentReply::UP doDecode(document::ByteBuffer &buf) const override; bool doEncode(const DocumentReply &reply, vespalib::GrowableByteBuffer &buf) const override; }; - class DocBlockMessageFactory : public DocumentMessageFactory { - protected: - DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override; - bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override; - }; - class DocBlockReplyFactory : public DocumentReplyFactory { - protected: - DocumentReply::UP doDecode(document::ByteBuffer &buf) const override; - bool doEncode(const DocumentReply &reply, vespalib::GrowableByteBuffer &buf) const override; - }; class DocumentListMessageFactory : public DocumentMessageFactory { const document::DocumentTypeRepo &_repo; DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override; |