diff options
author | Arne H Juul <arnej27959@users.noreply.github.com> | 2017-04-24 12:10:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-24 12:10:42 +0200 |
commit | 9ff4bdb407ed8d855a3f86a17c99906ff738177b (patch) | |
tree | fc2b050224d7dde92d57e1f9cac12c1e5aaf6b90 /documentapi | |
parent | 32ae190acc9ac5081049e1c7008d1602c68cf821 (diff) |
Revert "Balder/enforce override 2"
Diffstat (limited to 'documentapi')
35 files changed, 228 insertions, 63 deletions
diff --git a/documentapi/src/tests/loadtypes/testrunner.cpp b/documentapi/src/tests/loadtypes/testrunner.cpp index bdcdcdab944..71200f84224 100644 --- a/documentapi/src/tests/loadtypes/testrunner.cpp +++ b/documentapi/src/tests/loadtypes/testrunner.cpp @@ -1,11 +1,12 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/log/log.h> #include <vespa/vdstestlib/cppunit/cppunittestrunner.h> -#include <vespa/log/log.h> LOG_SETUP("storagecppunittests"); int -main(int argc, const char *argv[]) +main(int argc, char **argv) { vdstestlib::CppUnitTestRunner testRunner; return testRunner.run(argc, argv); diff --git a/documentapi/src/tests/policies/testframe.cpp b/documentapi/src/tests/policies/testframe.cpp index db8a1b48924..8d5b6585529 100644 --- a/documentapi/src/tests/policies/testframe.cpp +++ b/documentapi/src/tests/policies/testframe.cpp @@ -1,4 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/log/log.h> +LOG_SETUP(".testframe"); #include "testframe.h" #include <vespa/messagebus/emptyreply.h> @@ -8,9 +11,6 @@ #include <vespa/messagebus/testlib/simpleprotocol.h> #include <vespa/messagebus/testlib/simplereply.h> -#include <vespa/log/log.h> -LOG_SETUP(".testframe"); - using document::DocumentTypeRepo; using namespace documentapi; diff --git a/documentapi/src/tests/policies/testframe.h b/documentapi/src/tests/policies/testframe.h index f0e37d979f3..e0780733331 100644 --- a/documentapi/src/tests/policies/testframe.h +++ b/documentapi/src/tests/policies/testframe.h @@ -197,6 +197,8 @@ public: * @return Handle to the system state. */ documentapi::SystemStateHandle getSystemState(); + + // Implements IReplyHandler. void handleReply(mbus::Reply::UP reply) override; }; diff --git a/documentapi/src/tests/replymerger/replymerger_test.cpp b/documentapi/src/tests/replymerger/replymerger_test.cpp index b26290e0bcd..8803994b0cf 100644 --- a/documentapi/src/tests/replymerger/replymerger_test.cpp +++ b/documentapi/src/tests/replymerger/replymerger_test.cpp @@ -1,5 +1,8 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/log/log.h> +LOG_SETUP("replymerger_test"); +#include <vespa/fastos/fastos.h> #include <iostream> #include <vespa/vespalib/testkit/testapp.h> #include <vespa/documentapi/messagebus/replymerger.h> diff --git a/documentapi/src/tests/routablefactory/routablefactory.cpp b/documentapi/src/tests/routablefactory/routablefactory.cpp index b4449891af2..620142e803b 100644 --- a/documentapi/src/tests/routablefactory/routablefactory.cpp +++ b/documentapi/src/tests/routablefactory/routablefactory.cpp @@ -1,4 +1,5 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> #include <vespa/document/repo/documenttyperepo.h> #include <vespa/documentapi/messagebus/documentprotocol.h> #include <vespa/documentapi/messagebus/routablefactories51.h> diff --git a/documentapi/src/tests/systemstate/systemstate.cpp b/documentapi/src/tests/systemstate/systemstate.cpp index e3163937a3f..a797f55c625 100644 --- a/documentapi/src/tests/systemstate/systemstate.cpp +++ b/documentapi/src/tests/systemstate/systemstate.cpp @@ -1,12 +1,12 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/fastos/fastos.h> +#include <vespa/log/log.h> +LOG_SETUP("systemstate_test"); #include <vespa/documentapi/messagebus/systemstate/systemstate.h> #include <vespa/documentapi/messagebus/systemstate/systemstatehandle.h> #include <vespa/vespalib/testkit/testapp.h> -#include <vespa/log/log.h> -LOG_SETUP("systemstate_test"); - using namespace documentapi; class Test : public vespalib::TestApp { diff --git a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h index e1c2b7f4f35..b35cce81b40 100644 --- a/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h +++ b/documentapi/src/vespa/documentapi/messagebus/documentprotocol.h @@ -303,9 +303,17 @@ public: * @return The system state. */ SystemState &getSystemState() { return *_systemState; } + + // Implements IProtocol. const mbus::string &getName() const override { return NAME; } + + // Implements IProtocol. mbus::IRoutingPolicy::UP createPolicy(const mbus::string &name, const mbus::string ¶m) const override; + + // Implements IProtocol. mbus::Blob encode(const vespalib::Version &version, const mbus::Routable &routable) const override; + + // Implements IProtocol. mbus::Routable::UP decode(const vespalib::Version &version, mbus::BlobRef data) const override; }; diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.h index 2887c8435e1..b4adf41ca79 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/documentmessage.h @@ -82,6 +82,7 @@ public: _approxSize = approxSize; } + // Implements mbus::Message. const mbus::string& getProtocol() const override; }; diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.h b/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.h index 69563bcc63b..2850c412807 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/documentreply.h @@ -32,7 +32,7 @@ public: /** * Virtual destructor required for inheritance. */ - ~DocumentReply() { } + virtual ~DocumentReply() { } /** * Returns the priority tag for this message. This is an optional tag added for VDS that is not interpreted by the @@ -41,6 +41,7 @@ public: * @return The priority. */ Priority::Value getPriority() const { return _priority; } + uint8_t priority() const override { return (uint8_t)_priority; } /** @@ -49,8 +50,13 @@ public: * @param priority The priority to set. */ void setPriority(Priority::Value p) { _priority = p; } + + // Implements mbus::Reply. const mbus::string& getProtocol() const override; + + // Implements mbus::Reply. uint32_t getType() const override { return _type; } }; } + diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/documentsummarymessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/documentsummarymessage.h index 0c9c8b09a0c..ac5e141da23 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/documentsummarymessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/documentsummarymessage.h @@ -1,8 +1,8 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "visitor.h" #include <vespa/vdslib/container/documentsummary.h> +#include <vespa/documentapi/messagebus/messages/visitor.h> namespace documentapi { @@ -30,9 +30,15 @@ public: * @param summary The document summary to contain. */ DocumentSummaryMessage(const vdslib::DocumentSummary &summary); + + // Overrides VisitorMessage. uint32_t getApproxSize() const override; + + // Implements VisitorMessage. uint32_t getType() const override; + string toString() const override { return "documentsummarymessage"; } }; } + diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/emptybucketsmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/emptybucketsmessage.h index bd1805a4a17..54ce4e8de4c 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/emptybucketsmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/emptybucketsmessage.h @@ -1,8 +1,8 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "visitor.h" #include <vespa/document/bucket/bucketid.h> +#include <vespa/documentapi/messagebus/messages/visitor.h> namespace documentapi { @@ -21,14 +21,18 @@ protected: public: EmptyBucketsMessage(); // must be serialized into + EmptyBucketsMessage(const std::vector<document::BucketId> &bucketIds); std::vector<document::BucketId> &getBucketIds() { return _bucketIds; } const std::vector<document::BucketId> &getBucketIds() const { return _bucketIds; } void setBucketIds(const std::vector<document::BucketId> &bucketIds); + void resize(uint32_t size); + uint32_t getType() const override; + string toString() const override { return "emptybucketsmessage"; } }; diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.h index 2e1e92652d9..c08e36aa3fd 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistmessage.h @@ -40,10 +40,18 @@ public: * @param id The bucket id to set. */ void setBucketId(const document::BucketId& id) { _bucketId = id; } + + // Overrides DocumentMessage. bool hasSequenceId() const override; + + // Overrides DocumentMessage. uint64_t getSequenceId() const override; + + // Implements DocumentMessage. uint32_t getType() const override; + string toString() const override { return "getbucketlistmessage"; } }; } + diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.h b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.h index 0b7df089bce..a207ef206e4 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketlistreply.h @@ -1,7 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "documentreply.h" +#include <vespa/documentapi/messagebus/messages/documentreply.h> #include <vespa/document/bucket/bucketid.h> namespace documentapi { diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketstatemessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketstatemessage.h index 62129a79003..ed27ed11212 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/getbucketstatemessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/getbucketstatemessage.h @@ -1,8 +1,8 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "documentmessage.h" #include <vespa/document/bucket/bucketid.h> +#include <vespa/documentapi/messagebus/messages/documentmessage.h> namespace documentapi { @@ -40,9 +40,16 @@ public: * @param bucket The bucket id to set. */ void setBucketId(document::BucketId bucket) { _bucket = bucket; } + + // Overrides DocumentMessage. bool hasSequenceId() const override; + + // Overrides DocumentMessage. uint64_t getSequenceId() const override; + + // Implements DocumentMessage. uint32_t getType() const override; + string toString() const override { return "getbucketstatemessage"; } }; diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/multioperationmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/multioperationmessage.h index 4c6f8bf9de7..ac78aea6251 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/multioperationmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/multioperationmessage.h @@ -1,12 +1,12 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "visitor.h" -#include "documentreply.h" #include <vespa/vdslib/container/parameters.h> #include <vespa/vdslib/container/documentlist.h> #include <vespa/vdslib/container/operationlist.h> #include <vespa/document/bucket/bucketid.h> +#include <vespa/documentapi/messagebus/messages/visitor.h> +#include <vespa/documentapi/messagebus/messages/documentreply.h> #include <vespa/documentapi/messagebus/documentprotocol.h> namespace documentapi { diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h index 4537da0fb6e..46af0dfb7a4 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/putdocumentmessage.h @@ -1,8 +1,8 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "testandsetmessage.h" #include <vespa/document/fieldvalue/document.h> +#include <vespa/documentapi/messagebus/messages/testandsetmessage.h> namespace documentapi { diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/removedocumentmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/removedocumentmessage.h index a47e35f3098..3904cf0f243 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/removedocumentmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/removedocumentmessage.h @@ -1,8 +1,8 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "testandsetmessage.h" #include <vespa/document/base/documentid.h> +#include <vespa/documentapi/messagebus/messages/testandsetmessage.h> namespace documentapi { diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/removelocationmessage.h b/documentapi/src/vespa/documentapi/messagebus/messages/removelocationmessage.h index ce15fe4eda0..acaf3357d4d 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/removelocationmessage.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/removelocationmessage.h @@ -1,7 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "documentmessage.h" +#include <vespa/documentapi/messagebus/messages/documentmessage.h> #include <vespa/document/bucket/bucketid.h> #include <vespa/document/bucket/bucketselector.h> #include <vespa/document/select/parser.h> @@ -17,9 +17,13 @@ public: RemoveLocationMessage(const document::BucketIdFactory& factory, document::select::Parser& parser, const string& documentSelection); const string& getDocumentSelection() const { return _documentSelection; } - const document::BucketId& getBucketId() const { return _bucketId; }; + uint32_t getType() const override; + + const document::BucketId& getBucketId() const { return _bucketId; }; + string toString() const override { return "removelocationmessage"; } + protected: DocumentReply::UP doCreateReply() const override; diff --git a/documentapi/src/vespa/documentapi/messagebus/messages/visitor.h b/documentapi/src/vespa/documentapi/messagebus/messages/visitor.h index ce30be3ecc2..43045fd44c6 100644 --- a/documentapi/src/vespa/documentapi/messagebus/messages/visitor.h +++ b/documentapi/src/vespa/documentapi/messagebus/messages/visitor.h @@ -1,16 +1,20 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. - +/** + * @file persistence.h + * + * Persistence related commands, like put, get & remove + */ #pragma once -#include "writedocumentreply.h" -#include "documentmessage.h" -#include "documentreply.h" #include <vespa/vdslib/container/parameters.h> #include <vespa/vdslib/container/documentlist.h> #include <vespa/vdslib/container/visitorstatistics.h> #include <vespa/document/bucket/bucketid.h> +#include <vespa/documentapi/messagebus/messages/documentmessage.h> +#include <vespa/documentapi/messagebus/messages/documentreply.h> #include <vespa/documentapi/messagebus/documentprotocol.h> #include <vespa/document/select/orderingspecification.h> +#include <vespa/documentapi/messagebus/messages/writedocumentreply.h> namespace documentapi { @@ -135,12 +139,14 @@ public: typedef std::unique_ptr<DestroyVisitorMessage> UP; DestroyVisitorMessage(); // must be deserialized into + DestroyVisitorMessage(const string &instanceId); const string& getInstanceId() const { return _instanceId; } void setInstanceId(const string& id) { _instanceId = id; } uint32_t getType() const override; + string toString() const override { return "destroyvisitormessage"; } }; @@ -208,6 +214,7 @@ public: void setErrorMessage(const string& errorMessage) { _errorMessage = errorMessage; }; uint32_t getType() const override; + string toString() const override { return "visitorinfomessage"; } }; @@ -234,6 +241,7 @@ public: uint32_t getApproxSize() const override; uint32_t getType() const override; + string toString() const override { return "mapvisitormessage"; } }; @@ -248,9 +256,12 @@ public: class Entry { public: Entry(); - Entry(int64_t timestamp, document::Document::SP doc, bool removeEntry); + Entry(int64_t timestamp, + document::Document::SP doc, + bool removeEntry); Entry(const Entry& other); - Entry(const document::DocumentTypeRepo &repo, document::ByteBuffer& buf); + Entry(const document::DocumentTypeRepo &repo, + document::ByteBuffer& buf); int64_t getTimestamp() { return _timestamp; } const document::Document::SP& getDocument() { return _document; } @@ -282,6 +293,7 @@ public: const std::vector<Entry>& getDocuments() const { return _documents; }; uint32_t getType() const override; + string toString() const override { return "documentlistmessage"; } }; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/andpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/andpolicy.h index a5dc1872e44..0edba2c0872 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/andpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/andpolicy.h @@ -1,6 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once +#include <vector> #include <vespa/messagebus/routing/hop.h> #include <vespa/messagebus/routing/iroutingpolicy.h> #include <vespa/documentapi/common.h> @@ -25,9 +26,19 @@ public: * @param param A string of recipients to select unless recipients have been configured. */ ANDPolicy(const string& param); - ~ANDPolicy(); - void select(mbus::RoutingContext &context) override; - void merge(mbus::RoutingContext &context) override; + + /** + * Destructor. + * + * Frees all allocated resources. + */ + virtual ~ANDPolicy(); + + // Inherit doc from IRoutingPolicy. + virtual void select(mbus::RoutingContext &context) override; + + // Inherit doc from IRoutingPolicy. + virtual void merge(mbus::RoutingContext &context) override; private: ANDPolicy(const ANDPolicy &); // hide diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/contentpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/contentpolicy.h index bf17a77ca6a..2f901ebad2d 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/contentpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/contentpolicy.h @@ -10,7 +10,7 @@ class ContentPolicy : public StoragePolicy public: ContentPolicy(const string& param); private: - string createConfigId(const string & clusterName) const override; + virtual string createConfigId(const string & clusterName) const override; }; } diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/documentrouteselectorpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/documentrouteselectorpolicy.h index 362185576ff..678210b1416 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/documentrouteselectorpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/documentrouteselectorpolicy.h @@ -1,11 +1,11 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "config-documentrouteselectorpolicy.h" #include <vespa/document/select/node.h> #include <map> #include <vespa/messagebus/routing/iroutingpolicy.h> #include <vespa/vespalib/util/sync.h> +#include <vespa/documentapi/messagebus/policies/config-documentrouteselectorpolicy.h> #include <vespa/documentapi/common.h> #include <vespa/config/config.h> #include <vespa/config/helper/configfetcher.h> @@ -64,8 +64,14 @@ public: * @return The error string, or null if no error. */ const string &getError() const; + + // Implements Subscriber. void configure(std::unique_ptr<messagebus::protocol::DocumentrouteselectorpolicyConfig> cfg) override; + + // Implements IRoutingPolicy. void select(mbus::RoutingContext &context) override; + + // Implements IRoutingPolicy. void merge(mbus::RoutingContext &context) override; }; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/errorpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/errorpolicy.h index fddccb1e3d9..790e0ab923c 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/errorpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/errorpolicy.h @@ -22,7 +22,11 @@ public: * @param msg The message of the error to assign. */ ErrorPolicy(const string &msg); + + // Implements IRoutingPolicy. void select(mbus::RoutingContext &context) override; + + // Implements IRoutingPolicy. void merge(mbus::RoutingContext &context) override; }; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.h index 9dd400f69c3..d1e01cdbe59 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/externpolicy.h @@ -51,7 +51,13 @@ public: * @param param The address to use for this, if empty this will resolve to hostname. */ ExternPolicy(const string ¶m); - ~ExternPolicy(); + + /** + * Destructor. + * + * Frees all allocated resources. + */ + virtual ~ExternPolicy(); /** * This is a safety mechanism to allow the constructor to fail and signal that it can not be used. @@ -68,7 +74,11 @@ public: * @return The mirror pointer. */ slobrok::api::IMirrorAPI &getMirror() { return *_mirror; } + + // Overrides IRoutingPolicy. void select(mbus::RoutingContext &ctx) override; + + // Overrides IRoutingPolicy. void merge(mbus::RoutingContext &ctx) override; }; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.h index 825c4a85d35..6a2a673807f 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/externslobrokpolicy.h @@ -1,7 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "asyncinitializationpolicy.h" +#include <vespa/documentapi/messagebus/policies/asyncinitializationpolicy.h> #include <vespa/config-slobroks.h> #include <vespa/vdslib/distribution/distribution.h> #include <vespa/slobrok/imirrorapi.h> @@ -29,15 +29,20 @@ protected: public: ExternSlobrokPolicy(const std::map<string, string>& params); - ~ExternSlobrokPolicy(); + virtual ~ExternSlobrokPolicy(); /** * @return a pointer to the slobrok mirror owned by this policy, if any. * If the policy uses the default mirror API, NULL is returned. */ const slobrok::api::IMirrorAPI* getMirror() const { return _mirror.get(); } + slobrok::api::IMirrorAPI::SpecList lookup(mbus::RoutingContext &context, const string& pattern); - string init() override; + + /** + * Initializes the policy + */ + virtual string init() override; }; } diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.h index 7b0e7e1f110..0541b784b1f 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/loadbalancerpolicy.h @@ -1,8 +1,8 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include "loadbalancer.h" -#include "externslobrokpolicy.h" +#include <vespa/documentapi/messagebus/policies/loadbalancer.h> +#include <vespa/documentapi/messagebus/policies/externslobrokpolicy.h> namespace documentapi { @@ -10,7 +10,8 @@ class LoadBalancerPolicy : public ExternSlobrokPolicy { public: LoadBalancerPolicy(const string& param); - void doSelect(mbus::RoutingContext &context) override; + + virtual void doSelect(mbus::RoutingContext &context) override; /** Finds the TCP address of the target docproc. @@ -21,7 +22,7 @@ public: return _loadBalancer->getRecipient(lookup(context, _pattern)); } - void merge(mbus::RoutingContext &context) override; + virtual void merge(mbus::RoutingContext &context) override; private: string _pattern; diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/localservicepolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/localservicepolicy.h index d471e3051c8..af63403a8b1 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/localservicepolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/localservicepolicy.h @@ -74,9 +74,19 @@ public: * @param param The address to use for this, if empty this will resolve to hostname. */ LocalServicePolicy(const string ¶m); - ~LocalServicePolicy(); - void select(mbus::RoutingContext &context) override; - void merge(mbus::RoutingContext &context) override; + + /** + * Destructor. + * + * Frees all allocated resources. + */ + virtual ~LocalServicePolicy(); + + // Inherit doc from IRoutingPolicy. + virtual void select(mbus::RoutingContext &context) override; + + // Inherit doc from IRoutingPolicy. + virtual void merge(mbus::RoutingContext &context) override; }; } diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.cpp index 4d260a8e81f..f55967b1c09 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.cpp @@ -18,8 +18,6 @@ MessageTypePolicy::MessageTypePolicy(const config::ConfigUri & configUri) : _fetcher.start(); } -MessageTypePolicy::~MessageTypePolicy() {} - void MessageTypePolicy::configure(std::unique_ptr<MessagetyperouteselectorpolicyConfig> cfg) { diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.h index d9a324a79c5..d29439db50c 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.h @@ -43,10 +43,16 @@ public: * @param configUri The configuration uri to subscribe with. */ MessageTypePolicy(const config::ConfigUri & configUri); - ~MessageTypePolicy(); + + // Implements Subscriber. void configure(std::unique_ptr<vespa::config::content::MessagetyperouteselectorpolicyConfig> cfg) override; + + // Implements IRoutingPolicy. void select(mbus::RoutingContext &context) override; + + // Implements IRoutingPolicy. void merge(mbus::RoutingContext &context) override; }; } + diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.h index a14c2afdbc7..3a3a22090f9 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/roundrobinpolicy.h @@ -61,9 +61,19 @@ public: * in slobrok. */ RoundRobinPolicy(const string ¶m); - ~RoundRobinPolicy(); - void select(mbus::RoutingContext &context) override; - void merge(mbus::RoutingContext &context) override; + + /** + * Destructor. + * + * Frees all allocated resources. + */ + virtual ~RoundRobinPolicy(); + + // Inherit doc from IRoutingPolicy. + virtual void select(mbus::RoutingContext &context) override; + + // Inherit doc from IRoutingPolicy. + virtual void merge(mbus::RoutingContext &context) override; }; } diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.h index c73c4c8560d..ef6478e368a 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/storagepolicy.h @@ -39,9 +39,13 @@ private: public: StoragePolicy(const string& param); - ~StoragePolicy(); - void doSelect(mbus::RoutingContext &context) override; - void merge(mbus::RoutingContext &context) override; + virtual ~StoragePolicy(); + + // Inherit doc from IRoutingPolicy. + virtual void doSelect(mbus::RoutingContext &context) override; + + // Inherit doc from IRoutingPolicy. + virtual void merge(mbus::RoutingContext &context) override; void updateStateFromReply(WrongDistributionReply& reply); @@ -52,6 +56,7 @@ public: const storage::lib::ClusterState* getSystemState() const { return _state.get(); } virtual void configure(std::unique_ptr<storage::lib::Distribution::DistributionConfig> config); + string init() override; private: diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/subsetservicepolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/subsetservicepolicy.h index 4d6dadb7156..49724785361 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/subsetservicepolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/subsetservicepolicy.h @@ -65,9 +65,20 @@ public: * @param param The number of services to include in the set. */ SubsetServicePolicy(const string ¶m); - ~SubsetServicePolicy(); - void select(mbus::RoutingContext &context) override; - void merge(mbus::RoutingContext &context) override; + + /** + * Destructor. + * + * Frees all allocated resources. + */ + virtual ~SubsetServicePolicy(); + + // Inherit doc from IRoutingPolicy. + virtual void select(mbus::RoutingContext &context) override; + + // Inherit doc from IRoutingPolicy. + virtual void merge(mbus::RoutingContext &context) override; }; } + diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.h b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.h index c715792f263..aed43b8b2e5 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablefactories50.h +++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories50.h @@ -99,7 +99,11 @@ public: */ typedef std::unique_ptr<IRoutableFactory> UP; typedef std::shared_ptr<IRoutableFactory> SP; + + // Implements IRoutableFactory. bool encode(const mbus::Routable &obj, vespalib::GrowableByteBuffer &out) const override; + + // Implements IRoutableFactory. mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const override; }; @@ -139,7 +143,10 @@ public: typedef std::unique_ptr<IRoutableFactory> UP; typedef std::shared_ptr<IRoutableFactory> SP; + // Implements IRoutableFactory. bool encode(const mbus::Routable &obj, vespalib::GrowableByteBuffer &out) const override; + + // Implements IRoutableFactory. mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const override; }; @@ -173,7 +180,8 @@ public: DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override; bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override; public: - BatchDocumentUpdateMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {} + BatchDocumentUpdateMessageFactory(const document::DocumentTypeRepo &r) + : _repo(r) {} }; class BatchDocumentUpdateReplyFactory : public DocumentReplyFactory { protected: @@ -186,7 +194,8 @@ public: DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override; bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override; public: - CreateVisitorMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {} + CreateVisitorMessageFactory(const document::DocumentTypeRepo &r) + : _repo(r) {} }; class CreateVisitorReplyFactory : public DocumentReplyFactory { protected: @@ -276,7 +285,8 @@ public: DocumentReply::UP doDecode(document::ByteBuffer &buf) const override; bool doEncode(const DocumentReply &msg, vespalib::GrowableByteBuffer &buf) const override; public: - GetDocumentReplyFactory(const document::DocumentTypeRepo &r) : _repo(r) {} + GetDocumentReplyFactory(const document::DocumentTypeRepo &r) + : _repo(r) {} }; class MapVisitorMessageFactory : public DocumentMessageFactory { const document::DocumentTypeRepo &_repo; @@ -284,7 +294,8 @@ public: DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override; bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override; public: - MapVisitorMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {} + MapVisitorMessageFactory(const document::DocumentTypeRepo &r) + : _repo(r) {} }; class MapVisitorReplyFactory : public DocumentReplyFactory { protected: @@ -297,7 +308,8 @@ public: DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override; bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override; public: - MultiOperationMessageFactory(const document::DocumentTypeRepo::SP &r) : _repo(r) {} + MultiOperationMessageFactory(const document::DocumentTypeRepo::SP &r) + : _repo(r) {} }; class MultiOperationReplyFactory : public DocumentReplyFactory { protected: @@ -314,7 +326,8 @@ public: bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override; public: void decodeInto(PutDocumentMessage & msg, document::ByteBuffer & buf) const; - PutDocumentMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {} + PutDocumentMessageFactory(const document::DocumentTypeRepo &r) + : _repo(r) {} }; class PutDocumentReplyFactory : public DocumentReplyFactory { protected: @@ -341,7 +354,8 @@ public: DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override; bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override; public: - RemoveLocationMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {} + RemoveLocationMessageFactory(const document::DocumentTypeRepo &r) + : _repo(r) {} }; class RemoveLocationReplyFactory : public DocumentReplyFactory { protected: @@ -388,7 +402,8 @@ public: bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override; public: void decodeInto(UpdateDocumentMessage & msg, document::ByteBuffer & buf) const; - UpdateDocumentMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {} + UpdateDocumentMessageFactory(const document::DocumentTypeRepo &r) + : _repo(r) {} }; class UpdateDocumentReplyFactory : public DocumentReplyFactory { protected: diff --git a/documentapi/src/vespa/documentapi/messagebus/routablefactories51.h b/documentapi/src/vespa/documentapi/messagebus/routablefactories51.h index 429c86e5049..bfa25c21d84 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routablefactories51.h +++ b/documentapi/src/vespa/documentapi/messagebus/routablefactories51.h @@ -58,7 +58,10 @@ public: typedef std::unique_ptr<IRoutableFactory> UP; typedef std::shared_ptr<IRoutableFactory> SP; + // Implements IRoutableFactory. bool encode(const mbus::Routable &obj, vespalib::GrowableByteBuffer &out) const override; + + // Implements IRoutableFactory. mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const override; }; @@ -98,7 +101,10 @@ public: typedef std::unique_ptr<IRoutableFactory> UP; typedef std::shared_ptr<IRoutableFactory> SP; + // Implements IRoutableFactory. bool encode(const mbus::Routable &obj, vespalib::GrowableByteBuffer &out) const override; + + // Implements IRoutableFactory. mbus::Routable::UP decode(document::ByteBuffer &in, const LoadTypeSet& loadTypes) const override; }; @@ -139,7 +145,8 @@ public: DocumentMessage::UP doDecode(document::ByteBuffer &buf) const override; bool doEncode(const DocumentMessage &msg, vespalib::GrowableByteBuffer &buf) const override; public: - CreateVisitorMessageFactory(const document::DocumentTypeRepo &r) : _repo(r) {} + CreateVisitorMessageFactory(const document::DocumentTypeRepo &r) + : _repo(r) {} }; class GetDocumentMessageFactory : public DocumentMessageFactory { diff --git a/documentapi/src/vespa/documentapi/messagebus/routingpolicyfactories.h b/documentapi/src/vespa/documentapi/messagebus/routingpolicyfactories.h index a41ae155170..906fc508bd7 100644 --- a/documentapi/src/vespa/documentapi/messagebus/routingpolicyfactories.h +++ b/documentapi/src/vespa/documentapi/messagebus/routingpolicyfactories.h @@ -36,7 +36,9 @@ public: const document::DocumentTypeRepo &_repo; string _configId; public: - DocumentRouteSelectorPolicyFactory(const document::DocumentTypeRepo &repo, const string &configId); + DocumentRouteSelectorPolicyFactory( + const document::DocumentTypeRepo &repo, + const string &configId); mbus::IRoutingPolicy::UP createPolicy(const string ¶m) const override; }; class ExternPolicyFactory : public IRoutingPolicyFactory { @@ -66,3 +68,4 @@ public: }; } + |