summaryrefslogtreecommitdiffstats
path: root/documentapi
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-08-24 17:47:41 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2017-08-24 17:47:41 +0200
commite12f3f8bafd8258ae091890f42709b64948a462e (patch)
tree25774f32e873cae3d22a641ca61e2d0725b86837 /documentapi
parent54db78e20f3bf04d498a5e6a3c4459ec7fee506a (diff)
Separate interface with a const getXXX for readonly and another getXXXSP when you really need the SP.
Diffstat (limited to 'documentapi')
-rw-r--r--documentapi/src/tests/messagebus/messagebus_test.cpp2
-rw-r--r--documentapi/src/tests/messages/messages50test.cpp10
-rw-r--r--documentapi/src/tests/messages/messages52test.cpp9
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.h3
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h15
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h4
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/documentrouteselectorpolicy.cpp6
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/searchcolumnpolicy.cpp10
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp4
-rw-r--r--documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp19
10 files changed, 38 insertions, 44 deletions
diff --git a/documentapi/src/tests/messagebus/messagebus_test.cpp b/documentapi/src/tests/messagebus/messagebus_test.cpp
index 7cad7356c8e..d8920b0577b 100644
--- a/documentapi/src/tests/messagebus/messagebus_test.cpp
+++ b/documentapi/src/tests/messagebus/messagebus_test.cpp
@@ -81,7 +81,7 @@ void Test::testMessage() {
new document::DocumentUpdate(*testdoc_type,
document::DocumentId(document::DocIdString(
"testdoc", "testme2")))));
- EXPECT_TRUE(!(upd1.getDocumentUpdate()->getId() == upd2.getDocumentUpdate()->getId()));
+ EXPECT_TRUE(!(upd1.getDocumentUpdate().getId() == upd2.getDocumentUpdate().getId()));
DocumentMessage& msg2 = static_cast<DocumentMessage&>(upd2);
EXPECT_TRUE(msg2.getType() == DocumentProtocol::MESSAGE_UPDATEDOCUMENT);
diff --git a/documentapi/src/tests/messages/messages50test.cpp b/documentapi/src/tests/messages/messages50test.cpp
index 8c20ef77201..964e4e12288 100644
--- a/documentapi/src/tests/messages/messages50test.cpp
+++ b/documentapi/src/tests/messages/messages50test.cpp
@@ -444,8 +444,8 @@ Messages50Test::testPutDocumentMessage()
mbus::Routable::UP obj = deserialize("PutDocumentMessage", DocumentProtocol::MESSAGE_PUTDOCUMENT, lang);
if (EXPECT_TRUE(obj.get() != NULL)) {
PutDocumentMessage &ref = static_cast<PutDocumentMessage&>(*obj);
- EXPECT_TRUE(ref.getDocument()->getType().getName() == "testdoc");
- EXPECT_TRUE(ref.getDocument()->getId().toString() == "doc:scheme:");
+ EXPECT_TRUE(ref.getDocument().getType().getName() == "testdoc");
+ EXPECT_TRUE(ref.getDocument().getId().toString() == "doc:scheme:");
EXPECT_EQUAL(666u, ref.getTimestamp());
EXPECT_EQUAL(37u, ref.getApproxSize());
}
@@ -737,7 +737,7 @@ Messages50Test::testUpdateDocumentMessage()
mbus::Routable::UP obj = deserialize("UpdateDocumentMessage", DocumentProtocol::MESSAGE_UPDATEDOCUMENT, lang);
if (EXPECT_TRUE(obj.get() != NULL)) {
UpdateDocumentMessage &ref = static_cast<UpdateDocumentMessage&>(*obj);
- EXPECT_EQUAL(*upd, *ref.getDocumentUpdate());
+ EXPECT_EQUAL(*upd, ref.getDocumentUpdate());
EXPECT_EQUAL(666u, ref.getOldTimestamp());
EXPECT_EQUAL(777u, ref.getNewTimestamp());
EXPECT_EQUAL(85u, ref.getApproxSize());
@@ -1047,8 +1047,8 @@ Messages50Test::testGetDocumentReply()
if (EXPECT_TRUE(obj.get() != NULL)) {
GetDocumentReply &ref = static_cast<GetDocumentReply&>(*obj);
- EXPECT_EQUAL(string("testdoc"), ref.getDocument()->getType().getName());
- EXPECT_EQUAL(string("doc:scheme:"), ref.getDocument()->getId().toString());
+ EXPECT_EQUAL(string("testdoc"), ref.getDocument().getType().getName());
+ EXPECT_EQUAL(string("doc:scheme:"), ref.getDocument().getId().toString());
}
}
return true;
diff --git a/documentapi/src/tests/messages/messages52test.cpp b/documentapi/src/tests/messages/messages52test.cpp
index d6394012688..33eb5134dce 100644
--- a/documentapi/src/tests/messages/messages52test.cpp
+++ b/documentapi/src/tests/messages/messages52test.cpp
@@ -52,8 +52,8 @@ Messages52Test::testPutDocumentMessage()
if (EXPECT_TRUE(routableUp.get() != nullptr)) {
auto & deserializedMsg = static_cast<PutDocumentMessage &>(*routableUp);
- EXPECT_EQUAL(msg.getDocument()->getType().getName(), deserializedMsg.getDocument()->getType().getName());
- EXPECT_EQUAL(msg.getDocument()->getId().toString(), deserializedMsg.getDocument()->getId().toString());
+ EXPECT_EQUAL(msg.getDocument().getType().getName(), deserializedMsg.getDocument().getType().getName());
+ EXPECT_EQUAL(msg.getDocument().getId().toString(), deserializedMsg.getDocument().getId().toString());
EXPECT_EQUAL(msg.getTimestamp(), deserializedMsg.getTimestamp());
EXPECT_EQUAL(67u, deserializedMsg.getApproxSize());
EXPECT_EQUAL(msg.getCondition().getSelection(), deserializedMsg.getCondition().getSelection());
@@ -90,8 +90,7 @@ Messages52Test::testUpdateDocumentMessage()
const DocumentTypeRepo & repo = getTypeRepo();
const document::DocumentType & docType = *repo.getDocumentType("testdoc");
- document::DocumentUpdate::SP docUpdate(new document::DocumentUpdate(docType,
- document::DocumentId("doc:scheme:")));
+ auto docUpdate = std::make_shared<document::DocumentUpdate>(docType, document::DocumentId("doc:scheme:"));
docUpdate->addFieldPathUpdate(document::FieldPathUpdate::CP(
new document::RemoveFieldPathUpdate("intfield", "testdoc.intfield > 0")));
@@ -108,7 +107,7 @@ Messages52Test::testUpdateDocumentMessage()
if (EXPECT_TRUE(routableUp.get() != nullptr)) {
auto & deserializedMsg = static_cast<UpdateDocumentMessage &>(*routableUp);
- EXPECT_EQUAL(*msg.getDocumentUpdate(), *deserializedMsg.getDocumentUpdate());
+ EXPECT_EQUAL(msg.getDocumentUpdate(), deserializedMsg.getDocumentUpdate());
EXPECT_EQUAL(msg.getOldTimestamp(), deserializedMsg.getOldTimestamp());
EXPECT_EQUAL(msg.getNewTimestamp(), deserializedMsg.getNewTimestamp());
EXPECT_EQUAL(115u, deserializedMsg.getApproxSize());
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.h b/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.h
index f4feb712d8d..2cff36325ab 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.h
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/getdocumentreply.h
@@ -38,7 +38,8 @@ public:
*
* @return The document.
*/
- const DocumentSP & getDocument() const { return _document; }
+ const document::Document & getDocument() const { return *_document; }
+ bool hasDocument() const { return _document.get() != nullptr; }
/**
* Sets the document retrieved.
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h
index 38419bafa40..9bc1c088dfa 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h
@@ -13,15 +13,11 @@ private:
uint64_t _time;
protected:
- // Implements DocumentMessage.
DocumentReply::UP doCreateReply() const override;
public:
- /**
- * Convenience typedef.
- */
- typedef std::unique_ptr<PutDocumentMessage> UP;
- typedef std::shared_ptr<PutDocumentMessage> SP;
+ using UP = std::unique_ptr<PutDocumentMessage>;
+ using SP = std::shared_ptr<PutDocumentMessage>;
/**
* Constructs a new document message for deserialization.
@@ -41,7 +37,8 @@ public:
*
* @return The document.
*/
- const DocumentSP & getDocument() const { return _document; }
+ const DocumentSP & getDocumentSP() const { return _document; }
+ const document::Document & getDocument() const { return *_document; }
/**
* Sets the document to put.
@@ -63,13 +60,9 @@ public:
* @param time The timestamp to set.
*/
void setTimestamp(uint64_t time) { _time = time; }
-
bool hasSequenceId() const override;
-
uint64_t getSequenceId() const override;
-
uint32_t getType() const override;
-
string toString() const override { return "putdocumentmessage"; }
};
diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h
index c1ce6224c5c..3a320960515 100644
--- a/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h
+++ b/documentapi/src/vespa/documentapi/messagebus/messages/updatedocumentmessage.h
@@ -42,8 +42,8 @@ public:
*
* @return The update.
*/
- const DocumentUpdateSP & getDocumentUpdate() const { return _documentUpdate; }
-
+ const DocumentUpdateSP & getDocumentUpdateSP() const { return _documentUpdate; }
+ const document::DocumentUpdate & getDocumentUpdate() const { return *_documentUpdate; }
/**
* Sets the document update to perform.
*
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/documentrouteselectorpolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/documentrouteselectorpolicy.cpp
index 011b54305bb..6756f694267 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/documentrouteselectorpolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/documentrouteselectorpolicy.cpp
@@ -124,12 +124,10 @@ DocumentRouteSelectorPolicy::select(mbus::RoutingContext &context, const vespali
const mbus::Message &msg = context.getMessage();
switch(msg.getType()) {
case DocumentProtocol::MESSAGE_PUTDOCUMENT:
- return it->second->contains(*static_cast<const PutDocumentMessage&>(msg).getDocument()) ==
- Result::True;
+ return it->second->contains(static_cast<const PutDocumentMessage&>(msg).getDocument()) == Result::True;
case DocumentProtocol::MESSAGE_UPDATEDOCUMENT:
- return it->second->contains(*static_cast<const UpdateDocumentMessage&>(msg).getDocumentUpdate()) !=
- Result::False;
+ return it->second->contains(static_cast<const UpdateDocumentMessage&>(msg).getDocumentUpdate()) != Result::False;
case DocumentProtocol::MESSAGE_MULTIOPERATION:
{
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/searchcolumnpolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/searchcolumnpolicy.cpp
index a6b1e200cd4..38610aca551 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/searchcolumnpolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/searchcolumnpolicy.cpp
@@ -53,20 +53,20 @@ SearchColumnPolicy::select(mbus::RoutingContext &context)
const mbus::Message &msg = context.getMessage();
switch(msg.getType()) {
case DocumentProtocol::MESSAGE_PUTDOCUMENT:
- id = &static_cast<const PutDocumentMessage&>(msg).getDocument()->getId();
+ id = &static_cast<const PutDocumentMessage&>(msg).getDocument().getId();
break;
case DocumentProtocol::MESSAGE_GETDOCUMENT:
- id = &static_cast<const GetDocumentMessage&>(msg).getDocumentId();
+ id = &static_cast<const GetDocumentMessage&>(msg).getDocumentId();
break;
case DocumentProtocol::MESSAGE_REMOVEDOCUMENT:
- id = &static_cast<const RemoveDocumentMessage&>(msg).getDocumentId();
+ id = &static_cast<const RemoveDocumentMessage&>(msg).getDocumentId();
break;
case DocumentProtocol::MESSAGE_UPDATEDOCUMENT:
- id = &static_cast<const UpdateDocumentMessage&>(msg).getDocumentUpdate()->getId();
- break;
+ id = &static_cast<const UpdateDocumentMessage&>(msg).getDocumentUpdate().getId();
+ break;
case DocumentProtocol::MESSAGE_MULTIOPERATION:
bucketId = (static_cast<const MultiOperationMessage&>(msg)).getBucketId();
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp
index cace5b6576a..b7b451e8ddf 100644
--- a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.cpp
@@ -119,7 +119,7 @@ StoragePolicy::doSelect(mbus::RoutingContext &context)
document::BucketId id;
switch(msg.getType()) {
case DocumentProtocol::MESSAGE_PUTDOCUMENT:
- id = _bucketIdFactory.getBucketId(static_cast<const PutDocumentMessage&>(msg).getDocument()->getId());
+ id = _bucketIdFactory.getBucketId(static_cast<const PutDocumentMessage&>(msg).getDocument().getId());
break;
case DocumentProtocol::MESSAGE_GETDOCUMENT:
@@ -131,7 +131,7 @@ StoragePolicy::doSelect(mbus::RoutingContext &context)
break;
case DocumentProtocol::MESSAGE_UPDATEDOCUMENT:
- id = _bucketIdFactory.getBucketId(static_cast<const UpdateDocumentMessage&>(msg).getDocumentUpdate()->getId());
+ id = _bucketIdFactory.getBucketId(static_cast<const UpdateDocumentMessage&>(msg).getDocumentUpdate().getId());
break;
case DocumentProtocol::MESSAGE_MULTIOPERATION:
diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp
index b566e36d8d5..504b3fcdf4f 100644
--- a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp
+++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.cpp
@@ -567,13 +567,16 @@ RoutableFactories50::GetDocumentReplyFactory::doDecode(document::ByteBuffer &buf
GetDocumentReply &reply = static_cast<GetDocumentReply&>(*ret);
bool hasDocument = decodeBoolean(buf);
+ document::Document * document = nullptr;
if (hasDocument) {
- reply.setDocument(std::make_shared<document::Document>(_repo, buf));
+ auto doc = std::make_shared<document::Document>(_repo, buf);
+ document = doc.get();
+ reply.setDocument(std::move(doc));
}
int64_t lastModified = decodeLong(buf);
reply.setLastModified(lastModified);
- if (reply.getDocument()) {
- reply.getDocument()->setLastModified(lastModified);
+ if (hasDocument) {
+ document->setLastModified(lastModified);
}
return ret;
@@ -584,10 +587,10 @@ RoutableFactories50::GetDocumentReplyFactory::doEncode(const DocumentReply &obj,
{
const GetDocumentReply &reply = static_cast<const GetDocumentReply&>(obj);
- buf.putByte(reply.getDocument().get() == NULL ? 0 : 1);
- if (reply.getDocument().get() != NULL) {
+ buf.putByte(reply.hasDocument() ? 1 : 0);
+ if (reply.hasDocument()) {
nbostream stream;
- reply.getDocument()->serialize(stream);
+ reply.getDocument().serialize(stream);
buf.putBytes(stream.peek(), stream.size());
}
buf.putLong(reply.getLastModified());
@@ -691,7 +694,7 @@ RoutableFactories50::PutDocumentMessageFactory::doEncode(const DocumentMessage &
auto & msg = static_cast<const PutDocumentMessage &>(obj);
nbostream stream;
- msg.getDocument()->serialize(stream);
+ msg.getDocument().serialize(stream);
buf.putBytes(stream.peek(), stream.size());
buf.putLong(static_cast<int64_t>(msg.getTimestamp()));
@@ -948,7 +951,7 @@ RoutableFactories50::UpdateDocumentMessageFactory::doEncode(const DocumentMessag
const UpdateDocumentMessage &msg = static_cast<const UpdateDocumentMessage&>(obj);
vespalib::nbostream stream;
- msg.getDocumentUpdate()->serializeHEAD(stream);
+ msg.getDocumentUpdate().serializeHEAD(stream);
buf.putBytes(stream.peek(), stream.size());
buf.putLong((int64_t)msg.getOldTimestamp());
buf.putLong((int64_t)msg.getNewTimestamp());