summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h1
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h6
-rw-r--r--storage/src/vespa/storage/storageserver/documentapiconverter.cpp14
3 files changed, 11 insertions, 10 deletions
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h
index 9bc1c088dfa..f86e594dfa4 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h
@@ -38,6 +38,7 @@ public:
* @return The document.
*/
const DocumentSP & getDocumentSP() const { return _document; }
+ DocumentSP stealDocument() { return std::move(_document); }
const document::Document & getDocument() const { return *_document; }
/**
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h
index 3a320960515..55cb22e05e0 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h
@@ -21,8 +21,8 @@ public:
/**
* Convenience typedef.
*/
- typedef std::unique_ptr<UpdateDocumentMessage> UP;
- typedef std::shared_ptr<UpdateDocumentMessage> SP;
+ using UP = std::unique_ptr<UpdateDocumentMessage>;
+ using SP = std::shared_ptr<UpdateDocumentMessage>;
/**
* Constructs a new document message for deserialization.
@@ -42,7 +42,7 @@ public:
*
* @return The update.
*/
- const DocumentUpdateSP & getDocumentUpdateSP() const { return _documentUpdate; }
+ DocumentUpdateSP stealDocumentUpdate() const { return std::move(_documentUpdate); }
const document::DocumentUpdate & getDocumentUpdate() const { return *_documentUpdate; }
/**
* Sets the document update to perform.
diff --git a/storage/src/vespa/storage/storageserver/documentapiconverter.cpp b/storage/src/vespa/storage/storageserver/documentapiconverter.cpp
index 9df177a32dd..59f3a1f6a27 100644
--- a/storage/src/vespa/storage/storageserver/documentapiconverter.cpp
+++ b/storage/src/vespa/storage/storageserver/documentapiconverter.cpp
@@ -36,7 +36,7 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentMessage& fromMsg,
case DocumentProtocol::MESSAGE_PUTDOCUMENT:
{
documentapi::PutDocumentMessage& from(static_cast<documentapi::PutDocumentMessage&>(fromMsg));
- api::PutCommand::UP to(new api::PutCommand(document::BucketId(0), from.getDocumentSP(), from.getTimestamp()));
+ auto to = std::make_unique<api::PutCommand>(document::BucketId(0), from.stealDocument(), from.getTimestamp());
to->setCondition(from.getCondition());
toMsg = std::move(to);
break;
@@ -44,8 +44,8 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentMessage& fromMsg,
case DocumentProtocol::MESSAGE_UPDATEDOCUMENT:
{
documentapi::UpdateDocumentMessage& from(static_cast<documentapi::UpdateDocumentMessage&>(fromMsg));
- api::UpdateCommand::UP to(new api::UpdateCommand(document::BucketId(0), from.getDocumentUpdateSP(),
- from.getNewTimestamp()));
+ auto to = std::make_unique<api::UpdateCommand>(document::BucketId(0), from.stealDocumentUpdate(),
+ from.getNewTimestamp());
to->setOldTimestamp(from.getOldTimestamp());
to->setCondition(from.getCondition());
toMsg = std::move(to);
@@ -54,7 +54,7 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentMessage& fromMsg,
case DocumentProtocol::MESSAGE_REMOVEDOCUMENT:
{
documentapi::RemoveDocumentMessage& from(static_cast<documentapi::RemoveDocumentMessage&>(fromMsg));
- api::RemoveCommand::UP to(new api::RemoveCommand(document::BucketId(0), from.getDocumentId(), 0));
+ auto to = std::make_unique<api::RemoveCommand>(document::BucketId(0), from.getDocumentId(), 0);
to->setCondition(from.getCondition());
toMsg = std::move(to);
break;
@@ -62,15 +62,15 @@ DocumentApiConverter::toStorageAPI(documentapi::DocumentMessage& fromMsg,
case DocumentProtocol::MESSAGE_GETDOCUMENT:
{
documentapi::GetDocumentMessage& from(static_cast<documentapi::GetDocumentMessage&>(fromMsg));
- api::GetCommand::UP to(new api::GetCommand(document::BucketId(0), from.getDocumentId(), from.getFieldSet()));
+ auto to = std::make_unique<api::GetCommand>(document::BucketId(0), from.getDocumentId(), from.getFieldSet());
toMsg.reset(to.release());
break;
}
case DocumentProtocol::MESSAGE_CREATEVISITOR:
{
documentapi::CreateVisitorMessage& from(static_cast<documentapi::CreateVisitorMessage&>(fromMsg));
- api::CreateVisitorCommand::UP to(new api::CreateVisitorCommand(from.getLibraryName(), from.getInstanceId(),
- from.getDocumentSelection()));
+ auto to = std::make_unique<api::CreateVisitorCommand>(from.getLibraryName(), from.getInstanceId(),
+ from.getDocumentSelection());
to->setControlDestination(from.getControlDestination());
to->setDataDestination(from.getDataDestination());