diff options
16 files changed, 90 insertions, 180 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()); diff --git a/searchcore/src/apps/vespa-dump-feed/vespa-dump-feed.cpp b/searchcore/src/apps/vespa-dump-feed/vespa-dump-feed.cpp index c38811e1962..d942049192a 100644 --- a/searchcore/src/apps/vespa-dump-feed/vespa-dump-feed.cpp +++ b/searchcore/src/apps/vespa-dump-feed/vespa-dump-feed.cpp @@ -4,13 +4,9 @@ #include <vespa/config/print/fileconfigwriter.h> #include <vespa/document/config/config-documenttypes.h> #include <vespa/document/document.h> -#include <vespa/document/repo/documenttyperepo.h> #include <vespa/documentapi/documentapi.h> #include <vespa/documentapi/loadtypes/loadtypeset.h> #include <vespa/messagebus/destinationsession.h> -#include <vespa/messagebus/imessagehandler.h> -#include <vespa/messagebus/iprotocol.h> -#include <vespa/messagebus/message.h> #include <vespa/messagebus/protocolset.h> #include <vespa/messagebus/rpcmessagebus.h> #include <vespa/vespalib/io/fileutil.h> @@ -56,7 +52,7 @@ private: OutputFile &_dat; size_t _numDocs; - void handleDocumentPut(document::Document::SP doc); + void handleDocumentPut(const document::Document::SP & doc); virtual void handleMessage(mbus::Message::UP message) override; public: @@ -66,9 +62,9 @@ public: }; void -FeedHandler::handleDocumentPut(document::Document::SP doc) +FeedHandler::handleDocumentPut(const document::Document::SP & doc) { - if (doc.get() != 0) { + if (doc) { vespalib::nbostream datStream(12345); vespalib::nbostream idxStream(12); doc->serialize(datStream); @@ -86,7 +82,7 @@ FeedHandler::handleMessage(mbus::Message::UP message) documentapi::DocumentMessage::UP msg((documentapi::DocumentMessage*)message.release()); switch (msg->getType()) { case documentapi::DocumentProtocol::MESSAGE_PUTDOCUMENT: - handleDocumentPut(((documentapi::PutDocumentMessage&)(*msg)).getDocument()); + handleDocumentPut(((documentapi::PutDocumentMessage&)(*msg)).getDocumentSP()); break; default: break; diff --git a/storage/src/tests/storageserver/documentapiconvertertest.cpp b/storage/src/tests/storageserver/documentapiconvertertest.cpp index a0553625c8c..3830d3b71cb 100644 --- a/storage/src/tests/storageserver/documentapiconvertertest.cpp +++ b/storage/src/tests/storageserver/documentapiconvertertest.cpp @@ -13,7 +13,6 @@ #include <vespa/document/bucket/bucketidfactory.h> #include <vespa/config/subscription/configuri.h> #include <vespa/vespalib/testkit/test_kit.h> -#include <climits> using document::DataType; using document::DocIdString; @@ -78,15 +77,12 @@ CPPUNIT_TEST_SUITE_REGISTRATION(DocumentApiConverterTest); void DocumentApiConverterTest::testPut() { - Document::SP - doc(new Document(_html_type, DocumentId(DocIdString("test", "test")))); + Document::SP doc(new Document(_html_type, DocumentId(DocIdString("test", "test")))); documentapi::PutDocumentMessage putmsg(doc); putmsg.setTimestamp(1234); - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(putmsg, _repo); - + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(putmsg, _repo); api::PutCommand* pc = dynamic_cast<api::PutCommand*>(cmd.get()); CPPUNIT_ASSERT(pc); @@ -100,26 +96,23 @@ void DocumentApiConverterTest::testPut() api::PutReply* pr = dynamic_cast<api::PutReply*>(rep.get()); CPPUNIT_ASSERT(pr); - std::unique_ptr<mbus::Message> mbusmsg = - _converter->toDocumentAPI(*pc, _repo); + std::unique_ptr<mbus::Message> mbusmsg = _converter->toDocumentAPI(*pc, _repo); documentapi::PutDocumentMessage* mbusput = dynamic_cast<documentapi::PutDocumentMessage*>(mbusmsg.get()); CPPUNIT_ASSERT(mbusput); - CPPUNIT_ASSERT(mbusput->getDocument().get() == doc.get()); + CPPUNIT_ASSERT(mbusput->getDocumentSP().get() == doc.get()); CPPUNIT_ASSERT(mbusput->getTimestamp() == 1234); }; void DocumentApiConverterTest::testForwardedPut() { - Document::SP - doc(new Document(_html_type, DocumentId(DocIdString("test", "test")))); + Document::SP doc(new Document(_html_type, DocumentId(DocIdString("test", "test")))); documentapi::PutDocumentMessage* putmsg = new documentapi::PutDocumentMessage(doc); std::unique_ptr<mbus::Reply> reply(((documentapi::DocumentMessage*)putmsg)->createReply()); reply->setMessage(std::unique_ptr<mbus::Message>(putmsg)); - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(*putmsg, _repo); + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(*putmsg, _repo); ((storage::api::PutCommand*)cmd.get())->setTimestamp(1234); std::unique_ptr<storage::api::StorageReply> rep = cmd->makeReply(); @@ -132,8 +125,7 @@ void DocumentApiConverterTest::testForwardedPut() void DocumentApiConverterTest::testRemove() { documentapi::RemoveDocumentMessage removemsg(document::DocumentId(document::DocIdString("test", "test"))); - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(removemsg, _repo); + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(removemsg, _repo); api::RemoveCommand* rc = dynamic_cast<api::RemoveCommand*>(cmd.get()); @@ -148,8 +140,7 @@ void DocumentApiConverterTest::testRemove() api::RemoveReply* pr = dynamic_cast<api::RemoveReply*>(rep.get()); CPPUNIT_ASSERT(pr); - std::unique_ptr<mbus::Message> mbusmsg = - _converter->toDocumentAPI(*rc, _repo); + std::unique_ptr<mbus::Message> mbusmsg = _converter->toDocumentAPI(*rc, _repo); documentapi::RemoveDocumentMessage* mbusremove = dynamic_cast<documentapi::RemoveDocumentMessage*>(mbusmsg.get()); CPPUNIT_ASSERT(mbusremove); @@ -159,11 +150,9 @@ void DocumentApiConverterTest::testRemove() void DocumentApiConverterTest::testGet() { documentapi::GetDocumentMessage getmsg( - document::DocumentId(document::DocIdString("test", "test")), - "foo bar"); + document::DocumentId(document::DocIdString("test", "test")), "foo bar"); - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(getmsg, _repo); + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(getmsg, _repo); api::GetCommand* rc = dynamic_cast<api::GetCommand*>(cmd.get()); @@ -174,17 +163,10 @@ void DocumentApiConverterTest::testGet() void DocumentApiConverterTest::testCreateVisitor() { - documentapi::CreateVisitorMessage cv( - "mylib", - "myinstance", - "control-dest", - "data-dest"); + documentapi::CreateVisitorMessage cv("mylib", "myinstance", "control-dest", "data-dest"); cv.setTimeRemaining(123456); - - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(cv, _repo); - + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(cv, _repo); api::CreateVisitorCommand* pc = dynamic_cast<api::CreateVisitorCommand*>(cmd.get()); CPPUNIT_ASSERT(pc); @@ -197,17 +179,9 @@ void DocumentApiConverterTest::testCreateVisitor() void DocumentApiConverterTest::testCreateVisitorHighTimeout() { - documentapi::CreateVisitorMessage cv( - "mylib", - "myinstance", - "control-dest", - "data-dest"); - + documentapi::CreateVisitorMessage cv("mylib", "myinstance", "control-dest", "data-dest"); cv.setTimeRemaining((uint64_t)std::numeric_limits<uint32_t>::max() + 1); // Will be INT_MAX - - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(cv, _repo); - + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(cv, _repo); api::CreateVisitorCommand* pc = dynamic_cast<api::CreateVisitorCommand*>(cmd.get()); CPPUNIT_ASSERT(pc); @@ -215,65 +189,40 @@ void DocumentApiConverterTest::testCreateVisitorHighTimeout() CPPUNIT_ASSERT_EQUAL(vespalib::string("myinstance"), pc->getInstanceId()); CPPUNIT_ASSERT_EQUAL(vespalib::string("control-dest"), pc->getControlDestination()); CPPUNIT_ASSERT_EQUAL(vespalib::string("data-dest"), pc->getDataDestination()); - CPPUNIT_ASSERT_EQUAL((uint32_t) std::numeric_limits<int32_t>::max(), - pc->getTimeout()); + CPPUNIT_ASSERT_EQUAL((uint32_t) std::numeric_limits<int32_t>::max(), pc->getTimeout()); } void DocumentApiConverterTest::testCreateVisitorReplyNotReady() { - documentapi::CreateVisitorMessage cv( - "mylib", - "myinstance", - "control-dest", - "data-dest"); - - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(cv, _repo); + documentapi::CreateVisitorMessage cv("mylib", "myinstance", "control-dest", "data-dest"); + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(cv, _repo); CPPUNIT_ASSERT(cmd.get()); api::CreateVisitorCommand& cvc = dynamic_cast<api::CreateVisitorCommand&>(*cmd); - api::CreateVisitorReply cvr(cvc); cvr.setResult(api::ReturnCode(api::ReturnCode::NOT_READY, "not ready")); std::unique_ptr<documentapi::CreateVisitorReply> reply( - dynamic_cast<documentapi::CreateVisitorReply*>( - cv.createReply().release())); + dynamic_cast<documentapi::CreateVisitorReply*>(cv.createReply().release())); CPPUNIT_ASSERT(reply.get()); - _converter->transferReplyState(cvr, *reply); - CPPUNIT_ASSERT_EQUAL((uint32_t)documentapi::DocumentProtocol::ERROR_NODE_NOT_READY, reply->getError(0).getCode()); - - CPPUNIT_ASSERT_EQUAL(document::BucketId(INT_MAX), reply->getLastBucket()); + CPPUNIT_ASSERT_EQUAL(document::BucketId(std::numeric_limits<int>::max()), reply->getLastBucket()); } void DocumentApiConverterTest::testCreateVisitorReplyLastBucket() { - documentapi::CreateVisitorMessage cv( - "mylib", - "myinstance", - "control-dest", - "data-dest"); - - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(cv, _repo); + documentapi::CreateVisitorMessage cv("mylib", "myinstance", "control-dest", "data-dest"); + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(cv, _repo); CPPUNIT_ASSERT(cmd.get()); api::CreateVisitorCommand& cvc = dynamic_cast<api::CreateVisitorCommand&>(*cmd); - - api::CreateVisitorReply cvr(cvc); cvr.setLastBucket(document::BucketId(123)); - - std::unique_ptr<documentapi::CreateVisitorReply> reply( - dynamic_cast<documentapi::CreateVisitorReply*>( - cv.createReply().release())); + dynamic_cast<documentapi::CreateVisitorReply*>(cv.createReply().release())); CPPUNIT_ASSERT(reply.get()); - _converter->transferReplyState(cvr, *reply); - CPPUNIT_ASSERT_EQUAL(document::BucketId(123), reply->getLastBucket()); } @@ -282,8 +231,7 @@ void DocumentApiConverterTest::testDestroyVisitor() { documentapi::DestroyVisitorMessage cv("myinstance"); - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(cv, _repo); + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(cv, _repo); api::DestroyVisitorCommand* pc = dynamic_cast<api::DestroyVisitorCommand*>(cmd.get()); @@ -302,8 +250,7 @@ DocumentApiConverterTest::testVisitorInfo() vicmd.setBucketsCompleted(bucketsCompleted); - std::unique_ptr<mbus::Message> mbusmsg = - _converter->toDocumentAPI(vicmd, _repo); + std::unique_ptr<mbus::Message> mbusmsg = _converter->toDocumentAPI(vicmd, _repo); documentapi::VisitorInfoMessage* mbusvi = dynamic_cast<documentapi::VisitorInfoMessage*>(mbusmsg.get()); CPPUNIT_ASSERT(mbusvi); @@ -323,8 +270,7 @@ DocumentApiConverterTest::testVisitorInfo() void DocumentApiConverterTest::testDocBlock() { - Document::SP - doc(new Document(_html_type, DocumentId(DocIdString("test", "test")))); + Document::SP doc(new Document(_html_type, DocumentId(DocIdString("test", "test")))); char buffer[10000]; vdslib::WritableDocumentList docBlock(_repo, buffer, sizeof(buffer)); @@ -335,11 +281,9 @@ DocumentApiConverterTest::testDocBlock() bucketId.setUsedBits(32); api::DocBlockCommand dbcmd(bucketId, docBlock, std::shared_ptr<void>()); - dbcmd.setTimeout(123456); - std::unique_ptr<mbus::Message> mbusmsg = - _converter->toDocumentAPI(dbcmd, _repo); + std::unique_ptr<mbus::Message> mbusmsg = _converter->toDocumentAPI(dbcmd, _repo); documentapi::MultiOperationMessage* mbusdb = dynamic_cast<documentapi::MultiOperationMessage*>(mbusmsg.get()); CPPUNIT_ASSERT(mbusdb); @@ -370,12 +314,10 @@ DocumentApiConverterTest::testDocBlockWithKeepTimeStamps() { CPPUNIT_ASSERT_EQUAL(dbcmd.keepTimeStamps(), false); - std::unique_ptr<mbus::Message> mbusmsg = - _converter->toDocumentAPI(dbcmd, _repo); + std::unique_ptr<mbus::Message> mbusmsg = _converter->toDocumentAPI(dbcmd, _repo); documentapi::MultiOperationMessage* mbusdb = dynamic_cast<documentapi::MultiOperationMessage*>(mbusmsg.get()); CPPUNIT_ASSERT(mbusdb); - CPPUNIT_ASSERT_EQUAL(mbusdb->keepTimeStamps(), false); } @@ -383,12 +325,10 @@ DocumentApiConverterTest::testDocBlockWithKeepTimeStamps() dbcmd.keepTimeStamps(true); CPPUNIT_ASSERT_EQUAL(dbcmd.keepTimeStamps(), true); - std::unique_ptr<mbus::Message> mbusmsg = - _converter->toDocumentAPI(dbcmd, _repo); + std::unique_ptr<mbus::Message> mbusmsg = _converter->toDocumentAPI(dbcmd, _repo); documentapi::MultiOperationMessage* mbusdb = dynamic_cast<documentapi::MultiOperationMessage*>(mbusmsg.get()); CPPUNIT_ASSERT(mbusdb); - CPPUNIT_ASSERT_EQUAL(mbusdb->keepTimeStamps(), true); } @@ -399,8 +339,7 @@ void DocumentApiConverterTest::testMultiOperation() { //create a document - Document::SP - doc(new Document(_html_type, DocumentId(DocIdString("test", "test")))); + Document::SP doc(new Document(_html_type, DocumentId(DocIdString("test", "test")))); document::BucketIdFactory fac; document::BucketId bucketId = fac.getBucketId(doc->getId()); @@ -409,17 +348,13 @@ DocumentApiConverterTest::testMultiOperation() { documentapi::MultiOperationMessage momsg(_repo, bucketId, 10000); - vdslib::WritableDocumentList operations(_repo, &(momsg.getBuffer()[0]), - momsg.getBuffer().size()); + vdslib::WritableDocumentList operations(_repo, &(momsg.getBuffer()[0]), momsg.getBuffer().size()); operations.addPut(*doc, 100); - momsg.setOperations(operations); - CPPUNIT_ASSERT(momsg.getBuffer().size() > 0); // Convert it to Storage API - std::unique_ptr<api::StorageCommand> stcmd = - _converter->toStorageAPI(momsg, _repo); + std::unique_ptr<api::StorageCommand> stcmd = _converter->toStorageAPI(momsg, _repo); api::MultiOperationCommand* mocmd = dynamic_cast<api::MultiOperationCommand*>(stcmd.get()); CPPUNIT_ASSERT(mocmd); @@ -443,8 +378,7 @@ DocumentApiConverterTest::testMultiOperation() mocmd.getOperations().addPut(*doc, 100); // Convert it to documentapi - std::unique_ptr<mbus::Message> mbmsg = - _converter->toDocumentAPI(mocmd, _repo); + std::unique_ptr<mbus::Message> mbmsg = _converter->toDocumentAPI(mocmd, _repo); documentapi::MultiOperationMessage* momsg = dynamic_cast<documentapi::MultiOperationMessage*>(mbmsg.get()); CPPUNIT_ASSERT(momsg); @@ -473,33 +407,28 @@ DocumentApiConverterTest::testBatchDocumentUpdate() { document::DocumentId docId(document::UserDocIdString("userdoc:test:1234:test1")); - document::DocumentUpdate::SP update( - new document::DocumentUpdate(_html_type, docId)); + document::DocumentUpdate::SP update(new document::DocumentUpdate(_html_type, docId)); updates.push_back(update); } { document::DocumentId docId(document::UserDocIdString("userdoc:test:1234:test2")); - document::DocumentUpdate::SP update( - new document::DocumentUpdate(_html_type, docId)); + document::DocumentUpdate::SP update(new document::DocumentUpdate(_html_type, docId)); updates.push_back(update); } { document::DocumentId docId(document::UserDocIdString("userdoc:test:1234:test3")); - document::DocumentUpdate::SP update( - new document::DocumentUpdate(_html_type, docId)); + document::DocumentUpdate::SP update(new document::DocumentUpdate(_html_type, docId)); updates.push_back(update); } - std::shared_ptr<documentapi::BatchDocumentUpdateMessage> msg( - new documentapi::BatchDocumentUpdateMessage(1234)); + auto msg = std::make_shared<documentapi::BatchDocumentUpdateMessage>(1234); for (std::size_t i = 0; i < updates.size(); ++i) { msg->addUpdate(updates[i]); } - std::unique_ptr<storage::api::StorageCommand> cmd = - _converter->toStorageAPI(*msg, _repo); + std::unique_ptr<storage::api::StorageCommand> cmd = _converter->toStorageAPI(*msg, _repo); api::BatchDocumentUpdateCommand* batchCmd = dynamic_cast<api::BatchDocumentUpdateCommand*>(cmd.get()); CPPUNIT_ASSERT(batchCmd); CPPUNIT_ASSERT_EQUAL(updates.size(), batchCmd->getUpdates().size()); diff --git a/storage/src/tests/visiting/visitormanagertest.cpp b/storage/src/tests/visiting/visitormanagertest.cpp index 974c756359f..3f1e9b69963 100644 --- a/storage/src/tests/visiting/visitormanagertest.cpp +++ b/storage/src/tests/visiting/visitormanagertest.cpp @@ -298,7 +298,7 @@ VisitorManagerTest::getMessagesAndReply( switch (session.sentMessages[i]->getType()) { case documentapi::DocumentProtocol::MESSAGE_PUTDOCUMENT: docs.push_back(static_cast<documentapi::PutDocumentMessage&>( - *session.sentMessages[i]).getDocument()); + *session.sentMessages[i]).getDocumentSP()); break; case documentapi::DocumentProtocol::MESSAGE_REMOVEDOCUMENT: docIds.push_back(static_cast<documentapi::RemoveDocumentMessage&>( diff --git a/storage/src/tests/visiting/visitortest.cpp b/storage/src/tests/visiting/visitortest.cpp index 85fbb6207bb..8abe7a3857d 100644 --- a/storage/src/tests/visiting/visitortest.cpp +++ b/storage/src/tests/visiting/visitortest.cpp @@ -333,26 +333,22 @@ VisitorTest::getMessagesAndReply( { vespalib::MonitorGuard guard(session.getMonitor()); CPPUNIT_ASSERT(!session.sentMessages.empty()); - std::unique_ptr<documentapi::DocumentMessage> msg( - std::move(session.sentMessages.front())); + std::unique_ptr<documentapi::DocumentMessage> msg(std::move(session.sentMessages.front())); session.sentMessages.pop_front(); CPPUNIT_ASSERT(msg->getPriority() < 16); switch (msg->getType()) { case documentapi::DocumentProtocol::MESSAGE_PUTDOCUMENT: docs.push_back( - static_cast<documentapi::PutDocumentMessage&>(*msg) - .getDocument()); + static_cast<documentapi::PutDocumentMessage&>(*msg).getDocumentSP()); break; case documentapi::DocumentProtocol::MESSAGE_REMOVEDOCUMENT: docIds.push_back( - static_cast<documentapi::RemoveDocumentMessage&>(*msg) - .getDocumentId()); + static_cast<documentapi::RemoveDocumentMessage&>(*msg).getDocumentId()); break; case documentapi::DocumentProtocol::MESSAGE_VISITORINFO: infoMessages.push_back( - static_cast<documentapi::VisitorInfoMessage&>(*msg) - .getErrorMessage()); + static_cast<documentapi::VisitorInfoMessage&>(*msg).getErrorMessage()); break; default: break; diff --git a/storage/src/vespa/storage/storageserver/documentapiconverter.cpp b/storage/src/vespa/storage/storageserver/documentapiconverter.cpp index 7dc5581d44e..9df177a32dd 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.getDocument(), from.getTimestamp())); + api::PutCommand::UP to(new api::PutCommand(document::BucketId(0), from.getDocumentSP(), from.getTimestamp())); to->setCondition(from.getCondition()); toMsg = std::move(to); break; @@ -44,7 +44,7 @@ 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.getDocumentUpdate(), + api::UpdateCommand::UP to(new api::UpdateCommand(document::BucketId(0), from.getDocumentUpdateSP(), from.getNewTimestamp())); to->setOldTimestamp(from.getOldTimestamp()); to->setCondition(from.getCondition()); diff --git a/storageserver/src/tests/storageservertest.cpp b/storageserver/src/tests/storageservertest.cpp index 2564c500cbc..f3595afe1e7 100644 --- a/storageserver/src/tests/storageservertest.cpp +++ b/storageserver/src/tests/storageservertest.cpp @@ -6,7 +6,6 @@ #include <vespa/document/base/testdocman.h> #include <vespa/documentapi/documentapi.h> #include <vespa/messagebus/rpcmessagebus.h> -#include <fstream> #include <vespa/memfilepersistence/spi/memfilepersistenceprovider.h> #include <vespa/messagebus/staticthrottlepolicy.h> #include <vespa/messagebus/testlib/slobrok.h> @@ -14,17 +13,15 @@ #include <vespa/storageapi/mbusprot/storagereply.h> #include <vespa/storageapi/message/bucketsplitting.h> #include <vespa/storageapi/message/state.h> -#include <vespa/storage/common/nodestateupdater.h> #include <vespa/storage/common/statusmetricconsumer.h> -#include <vespa/memfilepersistence/memfile/memfilecache.h> #include <tests/testhelper.h> -#include <vespa/vdstestlib/cppunit/macros.h> #include <tests/dummystoragelink.h> #include <vespa/slobrok/sbmirror.h> #include <vespa/storageserver/app/distributorprocess.h> #include <vespa/storageserver/app/memfileservicelayerprocess.h> #include <vespa/vespalib/util/exceptions.h> #include <sys/time.h> +#include <fstream> #include <vespa/log/log.h> LOG_SETUP(".storageservertest"); @@ -388,9 +385,8 @@ namespace { if (msg->getType() == DocumentProtocol::MESSAGE_PUTDOCUMENT) { documentapi::PutDocumentMessage& putMsg( - static_cast<documentapi::PutDocumentMessage&>( - *msg)); - std::cerr << " - " << putMsg.getDocument()->getId(); + static_cast<documentapi::PutDocumentMessage&>(*msg)); + std::cerr << " - " << putMsg.getDocument().getId(); } std::cerr << "\n"; } @@ -419,8 +415,7 @@ namespace { } FastOS_Thread::Sleep(1); } - LOG(info, "Currently, we have received %u ok replies and have %u " - "pending ones.", + LOG(info, "Currently, we have received %u ok replies and have %u pending ones.", _processedOk, _currentPending); } }; |