diff options
author | Tor Brede Vekterli <vekterli@oath.com> | 2017-11-16 14:21:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-16 14:21:55 +0100 |
commit | 61aef5f9d1a2441fe6d0e716782b14f60f87daa9 (patch) | |
tree | 9c4b1cbe6ecea30256e846fd7bcd5394edd428dd /storageapi | |
parent | 7bd5de519e6ca64cb0ed2c513c2d0f97663582ce (diff) | |
parent | e42bd756e93166b99a59a5bf2d67baf22e662160 (diff) |
Merge pull request #4167 from vespa-engine/geirst/prepare-storageapi-protocol-serialization-for-new-version-with-bucket-space
Geirst/prepare storageapi protocol serialization for new version with bucket space
Diffstat (limited to 'storageapi')
5 files changed, 77 insertions, 60 deletions
diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization.h b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization.h index e32942d0303..d1e5783e609 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization.h +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization.h @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once +#include <vespa/document/bucket/bucket.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/messagebus/routable.h> #include <vespa/storageapi/mbusprot/storagemessage.h> @@ -176,6 +177,10 @@ protected: virtual SCmd::UP onDecodeBatchPutRemoveCommand(BBuf&) const = 0; virtual SRep::UP onDecodeBatchPutRemoveReply(const SCmd&, BBuf&) const = 0; + virtual document::Bucket getBucket(document::ByteBuffer& buf) const = 0; + virtual void putBucket(const document::Bucket& bucket, vespalib::GrowableByteBuffer& buf) const = 0; + virtual document::BucketSpace getBucketSpace(document::ByteBuffer& buf) const = 0; + virtual void putBucketSpace(document::BucketSpace bucketSpace, vespalib::GrowableByteBuffer& buf) const = 0; virtual api::BucketInfo getBucketInfo(document::ByteBuffer& buf) const = 0; virtual void putBucketInfo(const api::BucketInfo& info, vespalib::GrowableByteBuffer& buf) const = 0; diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization4_2.cpp b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization4_2.cpp index e4993a1ee7b..cd8e4992ba5 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization4_2.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization4_2.cpp @@ -41,7 +41,7 @@ void ProtocolSerialization4_2::onEncode( char* pos = buf.allocate(docBlockSize); vdslib::DocumentList copy(msg.getOperations(), pos, docBlockSize); buf.putBoolean(msg.keepTimeStamps()); - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); onEncodeBucketInfoCommand(buf, msg); } @@ -52,8 +52,7 @@ ProtocolSerialization4_2::onDecodeMultiOperationCommand(BBuf& buf) const std::vector<char> buffer(length); buf.getBytes(&buffer[0], length); bool keepTimestamps = SH::getBoolean(buf); - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::MultiOperationCommand::UP msg( new api::MultiOperationCommand(getTypeRepoSp(), bucket, buffer, keepTimestamps)); @@ -67,7 +66,7 @@ ProtocolSerialization4_2::onEncode( { // Serialization format - allow different types of serialization depending on source. buf.putByte(0); - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putInt(msg.getOperationCount()); for (uint32_t i = 0; i < msg.getOperationCount(); i++) { @@ -101,8 +100,7 @@ api::StorageCommand::UP ProtocolSerialization4_2::onDecodeBatchPutRemoveCommand(BBuf& buf) const { SH::getByte(buf); - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); std::unique_ptr<api::BatchPutRemoveCommand> cmd(new api::BatchPutRemoveCommand(bucket)); int length = SH::getInt(buf); @@ -164,7 +162,7 @@ void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::GetCommand& msg) const { buf.putString(msg.getDocumentId().toString()); - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putLong(msg.getBeforeTimestamp()); buf.putBoolean(msg.getFieldSet() == "[header]"); onEncodeCommand(buf, msg); @@ -174,8 +172,7 @@ api::StorageCommand::UP ProtocolSerialization4_2::onDecodeGetCommand(BBuf& buf) const { document::DocumentId did(SH::getString(buf)); - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::Timestamp beforeTimestamp(SH::getLong(buf)); bool headerOnly(SH::getBoolean(buf)); api::GetCommand::UP msg( @@ -188,7 +185,7 @@ void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::RemoveCommand& msg) const { buf.putString(msg.getDocumentId().toString()); - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putLong(msg.getTimestamp()); onEncodeBucketInfoCommand(buf, msg); } @@ -197,8 +194,7 @@ api::StorageCommand::UP ProtocolSerialization4_2::onDecodeRemoveCommand(BBuf& buf) const { document::DocumentId did(SH::getString(buf)); - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::Timestamp timestamp(SH::getLong(buf)); api::RemoveCommand::UP msg(new api::RemoveCommand(bucket, did, timestamp)); onDecodeBucketInfoCommand(buf, *msg); @@ -208,7 +204,7 @@ ProtocolSerialization4_2::onDecodeRemoveCommand(BBuf& buf) const void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::RevertCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putInt(msg.getRevertTokens().size()); for (uint32_t i=0, n=msg.getRevertTokens().size(); i<n; ++i) { buf.putLong(msg.getRevertTokens()[i]); @@ -219,8 +215,7 @@ void ProtocolSerialization4_2::onEncode( api::StorageCommand::UP ProtocolSerialization4_2::onDecodeRevertCommand(BBuf& buf) const { - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); std::vector<api::Timestamp> tokens(SH::getInt(buf)); for (uint32_t i=0, n=tokens.size(); i<n; ++i) { tokens[i] = SH::getLong(buf); @@ -233,15 +228,14 @@ ProtocolSerialization4_2::onDecodeRevertCommand(BBuf& buf) const void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::CreateBucketCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); onEncodeBucketInfoCommand(buf, msg); } api::StorageCommand::UP ProtocolSerialization4_2::onDecodeCreateBucketCommand(BBuf& buf) const { - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::CreateBucketCommand::UP msg(new api::CreateBucketCommand(bucket)); onDecodeBucketInfoCommand(buf, *msg); return api::StorageCommand::UP(msg.release()); @@ -250,7 +244,7 @@ ProtocolSerialization4_2::onDecodeCreateBucketCommand(BBuf& buf) const void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::MergeBucketCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); const std::vector<api::MergeBucketCommand::Node>& nodes(msg.getNodes()); buf.putShort(nodes.size()); for (uint32_t i=0; i<nodes.size(); ++i) { @@ -265,8 +259,7 @@ api::StorageCommand::UP ProtocolSerialization4_2::onDecodeMergeBucketCommand(BBuf& buf) const { typedef api::MergeBucketCommand::Node Node; - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); uint16_t nodeCount = SH::getShort(buf); std::vector<Node> nodes; nodes.reserve(nodeCount); @@ -285,7 +278,7 @@ ProtocolSerialization4_2::onDecodeMergeBucketCommand(BBuf& buf) const void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::GetBucketDiffCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); const std::vector<api::MergeBucketCommand::Node>& nodes(msg.getNodes()); buf.putShort(nodes.size()); for (uint32_t i=0; i<nodes.size(); ++i) { @@ -305,8 +298,7 @@ api::StorageCommand::UP ProtocolSerialization4_2::onDecodeGetBucketDiffCommand(BBuf& buf) const { typedef api::MergeBucketCommand::Node Node; - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); uint16_t nodeCount = SH::getShort(buf); std::vector<Node> nodes; nodes.reserve(nodeCount); @@ -335,7 +327,7 @@ ProtocolSerialization4_2::onDecodeGetBucketDiffCommand(BBuf& buf) const void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::ApplyBucketDiffCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); const std::vector<api::MergeBucketCommand::Node>& nodes(msg.getNodes()); buf.putShort(nodes.size()); for (uint32_t i=0; i<nodes.size(); ++i) { @@ -363,8 +355,7 @@ api::StorageCommand::UP ProtocolSerialization4_2::onDecodeApplyBucketDiffCommand(BBuf& buf) const { typedef api::MergeBucketCommand::Node Node; - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); uint16_t nodeCount = SH::getShort(buf); std::vector<Node> nodes; nodes.reserve(nodeCount); @@ -440,7 +431,7 @@ ProtocolSerialization4_2::onDecodeRequestBucketInfoReply(const SCmd& cmd, void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::NotifyBucketChangeCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); putBucketInfo(msg.getBucketInfo(), buf); onEncodeCommand(buf, msg); } @@ -448,8 +439,7 @@ void ProtocolSerialization4_2::onEncode( api::StorageCommand::UP ProtocolSerialization4_2::onDecodeNotifyBucketChangeCommand(BBuf& buf) const { - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::BucketInfo info(getBucketInfo(buf)); api::NotifyBucketChangeCommand::UP msg( new api::NotifyBucketChangeCommand(bucket, info)); @@ -476,7 +466,7 @@ ProtocolSerialization4_2::onDecodeNotifyBucketChangeReply(const SCmd& cmd, void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::SplitBucketCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putByte(msg.getMinSplitBits()); buf.putByte(msg.getMaxSplitBits()); buf.putInt(msg.getMinByteSize()); @@ -487,8 +477,7 @@ void ProtocolSerialization4_2::onEncode( api::StorageCommand::UP ProtocolSerialization4_2::onDecodeSplitBucketCommand(BBuf& buf) const { - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::SplitBucketCommand::UP msg(new api::SplitBucketCommand(bucket)); msg->setMinSplitBits(SH::getByte(buf)); msg->setMaxSplitBits(SH::getByte(buf)); @@ -531,6 +520,7 @@ void ProtocolSerialization4_2::onEncode( GBBuf& buf, const api::CreateVisitorCommand& msg) const { + putBucketSpace(msg.getBucketSpace(), buf); buf.putString(msg.getLibraryName()); buf.putString(msg.getInstanceId()); buf.putString(msg.getDocumentSelection()); @@ -562,7 +552,7 @@ ProtocolSerialization4_2::onEncode( api::StorageCommand::UP ProtocolSerialization4_2::onDecodeCreateVisitorCommand(BBuf& buf) const { - BucketSpace bucketSpace(BucketSpace::placeHolder()); + BucketSpace bucketSpace = getBucketSpace(buf); vespalib::stringref libraryName = SH::getString(buf); vespalib::stringref instanceId = SH::getString(buf); vespalib::stringref selection = SH::getString(buf); @@ -638,7 +628,7 @@ void ProtocolSerialization4_2::onEncode(GBBuf& buf, const api::RemoveLocationCommand& msg) const { buf.putString(msg.getDocumentSelection()); - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); onEncodeCommand(buf, msg); } @@ -646,8 +636,7 @@ api::StorageCommand::UP ProtocolSerialization4_2::onDecodeRemoveLocationCommand(BBuf& buf) const { vespalib::stringref documentSelection = SH::getString(buf); - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::RemoveLocationCommand::UP msg; msg.reset(new api::RemoveLocationCommand(documentSelection, bucket)); diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp index 22f58ebc58b..d6d47d877e5 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp @@ -12,6 +12,30 @@ using document::BucketSpace; namespace storage { namespace mbusprot { +document::Bucket +ProtocolSerialization5_0::getBucket(document::ByteBuffer& buf) const +{ + document::BucketId bucketId(SH::getLong(buf)); + return document::Bucket(BucketSpace::placeHolder(), bucketId); +} + +void +ProtocolSerialization5_0::putBucket(const document::Bucket& bucket, vespalib::GrowableByteBuffer& buf) const +{ + buf.putLong(bucket.getBucketId().getRawId()); +} + +document::BucketSpace +ProtocolSerialization5_0::getBucketSpace(document::ByteBuffer&) const +{ + return BucketSpace::placeHolder(); +} + +void +ProtocolSerialization5_0::putBucketSpace(document::BucketSpace, vespalib::GrowableByteBuffer&) const +{ +} + api::BucketInfo ProtocolSerialization5_0::getBucketInfo(document::ByteBuffer& buf) const { @@ -93,7 +117,7 @@ void ProtocolSerialization5_0::onEncode( GBBuf& buf, const api::PutCommand& msg) const { SH::putDocument(msg.getDocument().get(), buf); - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putLong(msg.getTimestamp()); buf.putLong(msg.getUpdateTimestamp()); onEncodeBucketInfoCommand(buf, msg); @@ -103,8 +127,7 @@ api::StorageCommand::UP ProtocolSerialization5_0::onDecodePutCommand(BBuf& buf) const { document::Document::SP doc(SH::getDocument(buf, getTypeRepo())); - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::Timestamp ts(SH::getLong(buf)); api::PutCommand::UP msg(new api::PutCommand(bucket, doc, ts)); msg->setUpdateTimestamp(SH::getLong(buf)); @@ -203,7 +226,7 @@ void ProtocolSerialization5_0::onEncode( buf.putInt(0); } - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putLong(msg.getTimestamp()); buf.putLong(msg.getOldTimestamp()); onEncodeBucketInfoCommand(buf, msg); @@ -224,8 +247,7 @@ ProtocolSerialization5_0::onDecodeUpdateCommand(BBuf& buf) const SERIALIZE_HEAD)); } - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::Timestamp timestamp(SH::getLong(buf)); api::UpdateCommand::UP msg( new api::UpdateCommand(bucket, update, timestamp)); @@ -270,7 +292,7 @@ void ProtocolSerialization5_0::onEncode( GBBuf& buf, const api::DeleteBucketCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); onEncodeBucketInfoCommand(buf, msg); putBucketInfo(msg.getBucketInfo(), buf); } @@ -278,8 +300,7 @@ ProtocolSerialization5_0::onEncode( api::StorageCommand::UP ProtocolSerialization5_0::onDecodeDeleteBucketCommand(BBuf& buf) const { - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::DeleteBucketCommand::UP msg(new api::DeleteBucketCommand(bucket)); onDecodeBucketInfoCommand(buf, *msg); if (buf.getRemaining() >= SH::BUCKET_INFO_SERIALIZED_SIZE) { @@ -495,7 +516,7 @@ void ProtocolSerialization5_0::onEncode( GBBuf& buf, const api::JoinBucketsCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putInt(msg.getSourceBuckets().size()); for (uint32_t i=0, n=msg.getSourceBuckets().size(); i<n; ++i) { buf.putLong(msg.getSourceBuckets()[i].getRawId()); @@ -507,8 +528,7 @@ ProtocolSerialization5_0::onEncode( api::StorageCommand::UP ProtocolSerialization5_0::onDecodeJoinBucketsCommand(BBuf& buf) const { - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::JoinBucketsCommand::UP msg(new api::JoinBucketsCommand(bucket)); uint32_t size = SH::getInt(buf); if (size > buf.getRemaining()) { @@ -621,6 +641,7 @@ void ProtocolSerialization5_0::onEncode( for (uint32_t i=0; i<buckets.size(); ++i) { buf.putLong(buckets[i].getRawId()); } + putBucketSpace(msg.getBucketSpace(), buf); if (buckets.size() == 0) { buf.putShort(msg.getDistributor()); buf.putString(msg.getSystemState().toString()); @@ -638,7 +659,7 @@ ProtocolSerialization5_0::onDecodeRequestBucketInfoCommand(BBuf& buf) const buckets[i] = document::BucketId(SH::getLong(buf)); } api::RequestBucketInfoCommand::UP msg; - BucketSpace bucketSpace(BucketSpace::placeHolder()); + BucketSpace bucketSpace = getBucketSpace(buf); if (buckets.size() != 0) { msg.reset(new api::RequestBucketInfoCommand(bucketSpace, buckets)); } else { diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h index ff9f08d38a9..c1285939a1c 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h @@ -15,6 +15,10 @@ public: ProtocolSerialization5_0(const document::DocumentTypeRepo::SP&, const documentapi::LoadTypeSet& loadTypes); + document::Bucket getBucket(document::ByteBuffer& buf) const override; + void putBucket(const document::Bucket& bucket, vespalib::GrowableByteBuffer& buf) const override; + document::BucketSpace getBucketSpace(document::ByteBuffer& buf) const override; + void putBucketSpace(document::BucketSpace bucketSpace, vespalib::GrowableByteBuffer& buf) const override; api::BucketInfo getBucketInfo(document::ByteBuffer& buf) const override; void putBucketInfo(const api::BucketInfo& info, vespalib::GrowableByteBuffer& buf) const override; diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.cpp b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.cpp index dc97742b733..0afdfebd5b7 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_1.cpp @@ -64,7 +64,7 @@ ProtocolSerialization5_1::ProtocolSerialization5_1( void ProtocolSerialization5_1::onEncode( GBBuf& buf, const api::SetBucketStateCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putByte(static_cast<uint8_t>(msg.getState())); onEncodeCommand(buf, msg); } @@ -72,8 +72,7 @@ void ProtocolSerialization5_1::onEncode( api::StorageCommand::UP ProtocolSerialization5_1::onDecodeSetBucketStateCommand(BBuf& buf) const { - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::SetBucketStateCommand::BUCKET_STATE state( static_cast<api::SetBucketStateCommand::BUCKET_STATE>( SH::getByte(buf))); @@ -103,7 +102,7 @@ void ProtocolSerialization5_1::onEncode( GBBuf& buf, const api::GetCommand& msg) const { buf.putString(msg.getDocumentId().toString()); - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putLong(msg.getBeforeTimestamp()); buf.putString(msg.getFieldSet()); onEncodeCommand(buf, msg); @@ -113,8 +112,7 @@ api::StorageCommand::UP ProtocolSerialization5_1::onDecodeGetCommand(BBuf& buf) const { document::DocumentId did(SH::getString(buf)); - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); api::Timestamp beforeTimestamp(SH::getLong(buf)); std::string fieldSet(SH::getString(buf)); api::GetCommand::UP msg( @@ -127,6 +125,7 @@ void ProtocolSerialization5_1::onEncode( GBBuf& buf, const api::CreateVisitorCommand& msg) const { + putBucketSpace(msg.getBucketSpace(), buf); buf.putString(msg.getLibraryName()); buf.putString(msg.getInstanceId()); buf.putString(msg.getDocumentSelection()); @@ -161,7 +160,7 @@ ProtocolSerialization5_1::onEncode( api::StorageCommand::UP ProtocolSerialization5_1::onDecodeCreateVisitorCommand(BBuf& buf) const { - BucketSpace bucketSpace(BucketSpace::placeHolder()); + BucketSpace bucketSpace = getBucketSpace(buf); vespalib::stringref libraryName = SH::getString(buf); vespalib::stringref instanceId = SH::getString(buf); vespalib::stringref selection = SH::getString(buf); @@ -208,7 +207,7 @@ ProtocolSerialization5_1::onDecodeCreateVisitorCommand(BBuf& buf) const void ProtocolSerialization5_1::onEncode( GBBuf& buf, const api::CreateBucketCommand& msg) const { - buf.putLong(msg.getBucketId().getRawId()); + putBucket(msg.getBucket(), buf); buf.putBoolean(msg.getActive()); onEncodeBucketInfoCommand(buf, msg); } @@ -216,8 +215,7 @@ void ProtocolSerialization5_1::onEncode( api::StorageCommand::UP ProtocolSerialization5_1::onDecodeCreateBucketCommand(BBuf& buf) const { - document::BucketId bucketId(SH::getLong(buf)); - document::Bucket bucket(BucketSpace::placeHolder(), bucketId); + document::Bucket bucket = getBucket(buf); bool setActive = SH::getBoolean(buf); api::CreateBucketCommand::UP msg(new api::CreateBucketCommand(bucket)); msg->setActive(setActive); |