diff options
author | Geir Storli <geirst@oath.com> | 2017-11-16 12:13:11 +0000 |
---|---|---|
committer | Geir Storli <geirst@oath.com> | 2017-11-16 12:13:11 +0000 |
commit | 44372c19d4eef184e871c2d30654ef0067516575 (patch) | |
tree | 2c799d574f6e433d071fd6d8bfc7b53b56e719dd /storageapi | |
parent | 10edd5182871638bbfef82f48c068d3e6ead9248 (diff) |
Add API function to encode a bucket.
Diffstat (limited to 'storageapi')
5 files changed, 27 insertions, 19 deletions
diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization.h b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization.h index 53762003428..5ceeecd3f47 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization.h +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization.h @@ -178,6 +178,7 @@ protected: 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 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 3d30385e28f..9e9b5d1f797 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); } @@ -66,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++) { @@ -162,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); @@ -185,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); } @@ -204,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]); @@ -228,7 +228,7 @@ 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); } @@ -244,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) { @@ -278,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) { @@ -327,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) { @@ -431,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); } @@ -466,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()); @@ -627,7 +627,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); } diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp index 096973e91e5..1b4f44a101c 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.cpp @@ -19,6 +19,12 @@ ProtocolSerialization5_0::getBucket(document::ByteBuffer& buf) const 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 { @@ -106,7 +112,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); @@ -215,7 +221,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); @@ -281,7 +287,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); } @@ -505,7 +511,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()); diff --git a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h index 12f3ee07068..796db52f420 100644 --- a/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h +++ b/storageapi/src/vespa/storageapi/mbusprot/protocolserialization5_0.h @@ -16,6 +16,7 @@ public: 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; 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 07095b2b523..492f8297a3d 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); } @@ -102,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); @@ -206,7 +206,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); } |