diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-24 14:33:33 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-24 14:33:33 +0200 |
commit | 92bf04e1975af1518b377ff00c511fac9a60e238 (patch) | |
tree | ec8377ccf8613201e4e67d880880b60b650667de /documentapi/src | |
parent | 5cb560cf05e0181052adfe9e89030f91c1a56307 (diff) |
Move shared_ptrs when possible.
Diffstat (limited to 'documentapi/src')
8 files changed, 41 insertions, 98 deletions
diff --git a/documentapi/src/tests/policies/policies_test.cpp b/documentapi/src/tests/policies/policies_test.cpp index 0eb08f1e632..3629604aeea 100644 --- a/documentapi/src/tests/policies/policies_test.cpp +++ b/documentapi/src/tests/policies/policies_test.cpp @@ -738,7 +738,7 @@ Test::multipleGetRepliesAreMergedToFoundDocument() doc.reset(new Document(*_docType, DocumentId("doc:scheme:yarn"))); doc->setLastModified(123456ULL); } - mbus::Reply::UP reply(new GetDocumentReply(doc)); + mbus::Reply::UP reply(new GetDocumentReply(std::move(doc))); selected[i]->handleReply(std::move(reply)); } mbus::Reply::UP reply = frame.getReceptor().getReply(600); diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.cpp b/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.cpp index 41431dc305e..c7422a529a3 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.cpp @@ -2,6 +2,7 @@ #include "getdocumentreply.h" #include <vespa/documentapi/messagebus/documentprotocol.h> +#include <vespa/document/fieldvalue/document.h> namespace documentapi { @@ -15,30 +16,18 @@ GetDocumentReply::~GetDocumentReply() {} GetDocumentReply::GetDocumentReply(document::Document::SP document) : DocumentAcceptedReply(DocumentProtocol::REPLY_GETDOCUMENT), - _document(document), + _document(std::move(document)), _lastModified(0) { - if (_document.get()) { + if (_document) { _lastModified = _document->getLastModified(); } } -document::Document::SP -GetDocumentReply::getDocument() -{ - return _document; -} - -std::shared_ptr<const document::Document> -GetDocumentReply::getDocument() const -{ - return _document; -} - void GetDocumentReply::setDocument(document::Document::SP document) { - _document = document; + _document = std::move(document); if (document.get()) { _lastModified = document->getLastModified(); } else { @@ -46,10 +35,4 @@ GetDocumentReply::setDocument(document::Document::SP document) } } -void -GetDocumentReply::setLastModified(uint64_t lastModified) -{ - _lastModified = lastModified; -} - } diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.h b/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.h index 04859af51ea..f4feb712d8d 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.h @@ -2,14 +2,16 @@ #pragma once #include "documentacceptedreply.h" -#include <vespa/document/fieldvalue/document.h> + +namespace document { class Document; } namespace documentapi { class GetDocumentReply : public DocumentAcceptedReply { private: - document::Document::SP _document; - uint64_t _lastModified; + using DocumentSP = std::shared_ptr<document::Document>; + DocumentSP _document; + uint64_t _lastModified; public: /** @@ -29,28 +31,21 @@ public: * * @param document The document requested. */ - GetDocumentReply(document::Document::SP document); - - /** - * Returns the document retrieved. - * - * @return The document. - */ - document::Document::SP getDocument(); + GetDocumentReply(DocumentSP document); /** * Returns the document retrieved. * * @return The document. */ - std::shared_ptr<const document::Document> getDocument() const; + const DocumentSP & getDocument() const { return _document; } /** * Sets the document retrieved. * * @param document The document. */ - void setDocument(document::Document::SP document); + void setDocument(DocumentSP document); /** * Returns the date the document was last modified. @@ -64,7 +59,7 @@ public: * * @param lastModified The date. */ - void setLastModified(uint64_t lastModified); + void setLastModified(uint64_t lastModified) { _lastModified = lastModified; } string toString() const override { return "getdocumentreply"; } }; diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.cpp b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.cpp index efd2e405267..6753d269ad6 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.cpp @@ -2,6 +2,7 @@ #include "putdocumentmessage.h" #include "writedocumentreply.h" #include <vespa/documentapi/messagebus/documentprotocol.h> +#include <vespa/document/fieldvalue/document.h> #include <vespa/vespalib/util/exceptions.h> namespace documentapi { @@ -17,7 +18,7 @@ PutDocumentMessage::PutDocumentMessage(document::Document::SP document) : _document(), _time(0) { - setDocument(document); + setDocument(std::move(document)); } PutDocumentMessage::~PutDocumentMessage() {} @@ -46,25 +47,13 @@ PutDocumentMessage::getType() const return DocumentProtocol::MESSAGE_PUTDOCUMENT; } -document::Document::SP -PutDocumentMessage::getDocument() -{ - return _document; -} - -std::shared_ptr<const document::Document> -PutDocumentMessage::getDocument() const -{ - return _document; -} - void PutDocumentMessage::setDocument(document::Document::SP document) { - if (document.get() == NULL) { + if ( ! document ) { throw vespalib::IllegalArgumentException("Document can not be null.", VESPA_STRLOC); } - _document = document; + _document = std::move(document); } } diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h index e4b43aaaf37..38419bafa40 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h @@ -2,14 +2,15 @@ #pragma once #include "testandsetmessage.h" -#include <vespa/document/fieldvalue/document.h> +namespace document { class Document; } namespace documentapi { class PutDocumentMessage : public TestAndSetMessage { private: - document::Document::SP _document; - uint64_t _time; + using DocumentSP = std::shared_ptr<document::Document>; + DocumentSP _document; + uint64_t _time; protected: // Implements DocumentMessage. @@ -32,7 +33,7 @@ public: * * @param document The document to put. */ - PutDocumentMessage(document::Document::SP document); + PutDocumentMessage(DocumentSP document); ~PutDocumentMessage(); /** @@ -40,21 +41,14 @@ public: * * @return The document. */ - document::Document::SP getDocument(); - - /** - * Returns the document to put. - * - * @return The document. - */ - std::shared_ptr<const document::Document> getDocument() const; + const DocumentSP & getDocument() const { return _document; } /** * Sets the document to put. * * @param document The document to set. */ - void setDocument(document::Document::SP document); + void setDocument(DocumentSP document); /** * Returns the timestamp of the document to put. diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.cpp b/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.cpp index ef8a2b74298..db5dafce271 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.cpp @@ -3,6 +3,7 @@ #include "updatedocumentmessage.h" #include "updatedocumentreply.h" #include <vespa/documentapi/messagebus/documentprotocol.h> +#include <vespa/document/update/documentupdate.h> #include <vespa/vespalib/util/exceptions.h> namespace documentapi { @@ -20,7 +21,7 @@ UpdateDocumentMessage::UpdateDocumentMessage(document::DocumentUpdate::SP docume _oldTime(0), _newTime(0) { - setDocumentUpdate(documentUpdate); + setDocumentUpdate(std::move(documentUpdate)); } UpdateDocumentMessage::~UpdateDocumentMessage() {} @@ -49,25 +50,13 @@ UpdateDocumentMessage::getType() const return DocumentProtocol::MESSAGE_UPDATEDOCUMENT; } -document::DocumentUpdate::SP -UpdateDocumentMessage::getDocumentUpdate() -{ - return _documentUpdate; -} - -std::shared_ptr<const document::DocumentUpdate> -UpdateDocumentMessage::getDocumentUpdate() const -{ - return _documentUpdate; -} - void UpdateDocumentMessage::setDocumentUpdate(document::DocumentUpdate::SP documentUpdate) { - if (documentUpdate.get() == NULL) { + if ( ! documentUpdate) { throw vespalib::IllegalArgumentException("Document update can not be null.", VESPA_STRLOC); } - _documentUpdate = documentUpdate; + _documentUpdate = std::move(documentUpdate); } } diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h index 25991191eeb..c1ce6224c5c 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h @@ -2,15 +2,17 @@ #pragma once #include "testandsetmessage.h" -#include <vespa/document/update/documentupdate.h> + +namespace document { class DocumentUpdate; } namespace documentapi { class UpdateDocumentMessage : public TestAndSetMessage { private: - document::DocumentUpdate::SP _documentUpdate; - uint64_t _oldTime; - uint64_t _newTime; + using DocumentUpdateSP = std::shared_ptr<document::DocumentUpdate>; + DocumentUpdateSP _documentUpdate; + uint64_t _oldTime; + uint64_t _newTime; protected: DocumentReply::UP doCreateReply() const override; @@ -33,28 +35,21 @@ public: * * @param documentUpdate The document update to perform. */ - UpdateDocumentMessage(document::DocumentUpdate::SP documentUpdate); - - /** - * Returns the document update to perform. - * - * @return The update. - */ - document::DocumentUpdate::SP getDocumentUpdate(); + UpdateDocumentMessage(DocumentUpdateSP documentUpdate); /** * Returns the document update to perform. * * @return The update. */ - std::shared_ptr<const document::DocumentUpdate> getDocumentUpdate() const; + const DocumentUpdateSP & getDocumentUpdate() const { return _documentUpdate; } /** * Sets the document update to perform. * * @param documentUpdate The document update to set. */ - void setDocumentUpdate(document::DocumentUpdate::SP documentUpdate); + void setDocumentUpdate(DocumentUpdateSP documentUpdate); /** * Returns the timestamp required for this update to be applied. diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp index e1b6035d5e0..b566e36d8d5 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp @@ -567,15 +567,13 @@ RoutableFactories50::GetDocumentReplyFactory::doDecode(document::ByteBuffer &buf GetDocumentReply &reply = static_cast<GetDocumentReply&>(*ret); bool hasDocument = decodeBoolean(buf); - document::Document::SP document; if (hasDocument) { - document.reset(new document::Document(_repo, buf)); - reply.setDocument(document); + reply.setDocument(std::make_shared<document::Document>(_repo, buf)); } int64_t lastModified = decodeLong(buf); reply.setLastModified(lastModified); - if (document.get()) { - document->setLastModified(lastModified); + if (reply.getDocument()) { + reply.getDocument()->setLastModified(lastModified); } return ret; |