aboutsummaryrefslogtreecommitdiffstats
path: root/documentapi
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-06-07 07:34:57 +0200
committerHenning Baldersheim <balder@oath.com>2018-06-12 22:50:28 +0200
commit6c04171843d0d9ebc99f6b91303a76c62eb2aef4 (patch)
tree338ffa8e190c93ef4abab1ebd1ac79036c74cfd2 /documentapi
parent047ea0bed80966554e29a1db1b35361d946a3866 (diff)
1 - Use a backing buffer for the DocumentUpdate that always is source of truth.
2 - Use this buffer for re-serialization. 3 - Make deserialization lazy where possible. Currently lazy on replay and when arriving over the storageapi. Still needs to eager over documentapi. 4 - Deserialize eagerly in the persistence thread since those are plentyfull and not bottlenecked, instead of in the single master thread. Use real repo.
Diffstat (limited to 'documentapi')
-rw-r--r--documentapi/src/tests/messagebus/messagebus_test.cpp4
-rw-r--r--documentapi/src/tests/messages/messages50test.cpp13
-rw-r--r--documentapi/src/tests/messages/messages52test.cpp2
-rw-r--r--documentapi/src/tests/policies/policies_test.cpp4
4 files changed, 11 insertions, 12 deletions
diff --git a/documentapi/src/tests/messagebus/messagebus_test.cpp b/documentapi/src/tests/messagebus/messagebus_test.cpp
index cd2820d8c05..dff3f3f1bac 100644
--- a/documentapi/src/tests/messagebus/messagebus_test.cpp
+++ b/documentapi/src/tests/messagebus/messagebus_test.cpp
@@ -59,7 +59,7 @@ void Test::testMessage() {
// Test one update.
UpdateDocumentMessage upd1(
document::DocumentUpdate::SP(
- new document::DocumentUpdate(*testdoc_type,
+ new document::DocumentUpdate(*_repo, *testdoc_type,
document::DocumentId(document::DocIdString(
"testdoc", "testme1")))));
@@ -80,7 +80,7 @@ void Test::testMessage() {
// Compare to another.
UpdateDocumentMessage upd2(
document::DocumentUpdate::SP(
- new document::DocumentUpdate(*testdoc_type,
+ new document::DocumentUpdate(*_repo, *testdoc_type,
document::DocumentId(document::DocIdString(
"testdoc", "testme2")))));
EXPECT_TRUE(!(upd1.getDocumentUpdate().getId() == upd2.getDocumentUpdate().getId()));
diff --git a/documentapi/src/tests/messages/messages50test.cpp b/documentapi/src/tests/messages/messages50test.cpp
index 48728ff6057..6705277d5c3 100644
--- a/documentapi/src/tests/messages/messages50test.cpp
+++ b/documentapi/src/tests/messages/messages50test.cpp
@@ -672,8 +672,7 @@ Messages50Test::testUpdateDocumentMessage()
{
const DocumentTypeRepo &repo = getTypeRepo();
const document::DocumentType &docType = *repo.getDocumentType("testdoc");
- document::DocumentUpdate::SP
- upd(new document::DocumentUpdate(docType, document::DocumentId("doc:scheme:")));
+ auto upd(std::make_shared<document::DocumentUpdate>(repo, docType, document::DocumentId("doc:scheme:")));
upd->addFieldPathUpdate(document::FieldPathUpdate::CP(
new document::RemoveFieldPathUpdate("intfield", "testdoc.intfield > 0")));
UpdateDocumentMessage msg(upd);
@@ -682,7 +681,7 @@ Messages50Test::testUpdateDocumentMessage()
EXPECT_EQUAL(MESSAGE_BASE_LENGTH + 89u, serialize("UpdateDocumentMessage", msg));
for (uint32_t lang = 0; lang < NUM_LANGUAGES; ++lang) {
mbus::Routable::UP obj = deserialize("UpdateDocumentMessage", DocumentProtocol::MESSAGE_UPDATEDOCUMENT, lang);
- if (EXPECT_TRUE(obj.get() != NULL)) {
+ if (EXPECT_TRUE(obj.get() != nullptr)) {
UpdateDocumentMessage &ref = static_cast<UpdateDocumentMessage&>(*obj);
EXPECT_EQUAL(*upd, ref.getDocumentUpdate());
EXPECT_EQUAL(666u, ref.getOldTimestamp());
@@ -703,21 +702,21 @@ Messages50Test::testBatchDocumentUpdateMessage()
{
document::DocumentUpdate::SP upd;
- upd.reset(new document::DocumentUpdate(docType, document::DocumentId("userdoc:footype:1234:foo")));
+ upd.reset(new document::DocumentUpdate(repo, docType, document::DocumentId("userdoc:footype:1234:foo")));
upd->addFieldPathUpdate(document::FieldPathUpdate::CP(
new document::RemoveFieldPathUpdate("intfield", "testdoc.intfield > 0")));
msg.addUpdate(upd);
}
{
document::DocumentUpdate::SP upd;
- upd.reset(new document::DocumentUpdate(docType, document::DocumentId("orderdoc(32,17):footype:1234:123456789:foo")));
+ upd.reset(new document::DocumentUpdate(repo, docType, document::DocumentId("orderdoc(32,17):footype:1234:123456789:foo")));
upd->addFieldPathUpdate(document::FieldPathUpdate::CP(
new document::RemoveFieldPathUpdate("intfield", "testdoc.intfield > 0")));
msg.addUpdate(upd);
}
try {
document::DocumentUpdate::SP upd;
- upd.reset(new document::DocumentUpdate(docType, document::DocumentId("userdoc:footype:5678:foo")));
+ upd.reset(new document::DocumentUpdate(repo, docType, document::DocumentId("userdoc:footype:5678:foo")));
upd->addFieldPathUpdate(document::FieldPathUpdate::CP(
new document::RemoveFieldPathUpdate("intfield", "testdoc.intfield > 0")));
msg.addUpdate(upd);
@@ -726,7 +725,7 @@ Messages50Test::testBatchDocumentUpdateMessage()
}
try {
document::DocumentUpdate::SP upd;
- upd.reset(new document::DocumentUpdate(docType, document::DocumentId("groupdoc:footype:hable:foo")));
+ upd.reset(new document::DocumentUpdate(repo, docType, document::DocumentId("groupdoc:footype:hable:foo")));
upd->addFieldPathUpdate(document::FieldPathUpdate::CP(
new document::RemoveFieldPathUpdate("intfield", "testdoc.intfield > 0")));
msg.addUpdate(upd);
diff --git a/documentapi/src/tests/messages/messages52test.cpp b/documentapi/src/tests/messages/messages52test.cpp
index eaf8bbec8c4..8f5d7381500 100644
--- a/documentapi/src/tests/messages/messages52test.cpp
+++ b/documentapi/src/tests/messages/messages52test.cpp
@@ -91,7 +91,7 @@ Messages52Test::testUpdateDocumentMessage()
const DocumentTypeRepo & repo = getTypeRepo();
const document::DocumentType & docType = *repo.getDocumentType("testdoc");
- auto docUpdate = std::make_shared<document::DocumentUpdate>(docType, document::DocumentId("doc:scheme:"));
+ auto docUpdate = std::make_shared<document::DocumentUpdate>(repo, docType, document::DocumentId("doc:scheme:"));
docUpdate->addFieldPathUpdate(document::FieldPathUpdate::CP(
new document::RemoveFieldPathUpdate("intfield", "testdoc.intfield > 0")));
diff --git a/documentapi/src/tests/policies/policies_test.cpp b/documentapi/src/tests/policies/policies_test.cpp
index 7852136dfc7..3e804c30415 100644
--- a/documentapi/src/tests/policies/policies_test.cpp
+++ b/documentapi/src/tests/policies/policies_test.cpp
@@ -621,7 +621,7 @@ Test::testDocumentRouteSelector()
EXPECT_TRUE(frame.testSelect(StringList().add("foo").add("bar")));
frame.setMessage(make_unique<UpdateDocumentMessage>(
- make_shared<DocumentUpdate>(*_docType, DocumentId("doc:scheme:"))));
+ make_shared<DocumentUpdate>(*_repo, *_docType, DocumentId("doc:scheme:"))));
EXPECT_TRUE(frame.testSelect(StringList().add("foo")));
put = make_unique<PutDocumentMessage>(make_shared<Document>(*_docType, DocumentId("doc:scheme:")));
@@ -650,7 +650,7 @@ Test::testDocumentRouteSelectorIgnore()
EXPECT_EQUAL(0u, reply->getNumErrors());
frame.setMessage(make_unique<UpdateDocumentMessage>(
- make_shared<DocumentUpdate>(*_docType, DocumentId("doc:scheme:"))));
+ make_shared<DocumentUpdate>(*_repo, *_docType, DocumentId("doc:scheme:"))));
EXPECT_TRUE(frame.testSelect(StringList().add("docproc/cluster.foo")));
}