summaryrefslogtreecommitdiffstats
path: root/documentapi
diff options
context:
space:
mode:
authorTor Brede Vekterli <vekterli@yahoo-inc.com>2017-10-20 13:36:16 +0200
committerGitHub <noreply@github.com>2017-10-20 13:36:16 +0200
commit5fd803fe826569265db2f76d327610ac829ed7ea (patch)
treed7a341f9f71afe98c2704218a88a5cf47a93374b /documentapi
parentc29d5f06c591d303ef37ae75ab6e306ea3314bd5 (diff)
parent5b37d8b706055661ab68e8b2dee96cdedeaf0c72 (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')
-rw-r--r--documentapi/src/tests/messagebus/messagebus_test.cpp6
-rw-r--r--documentapi/src/tests/messages/messages50test.cpp13
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.cpp13
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.h23
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.cpp3
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.h5
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.cpp6
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/statbucketmessage.h10
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp4
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp49
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/routablefactories50.h10
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;