diff options
Diffstat (limited to 'storageapi/src/vespa/storageapi/mbusprot/protocolserialization4_2.cpp')
-rw-r--r-- | storageapi/src/vespa/storageapi/mbusprot/protocolserialization4_2.cpp | 63 |
1 files changed, 26 insertions, 37 deletions
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)); |