diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-06-03 08:39:54 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-06-06 09:12:38 +0200 |
commit | fdfc2ee5b03c00caa4c655a4ba3dab5554ba354a (patch) | |
tree | c1be9b153b2bf4ce5bdf2661a452c2250a2f9e98 /documentapi | |
parent | 02a2201dbce24db2586d94f37a6093192a0da691 (diff) |
Hide the implementation details.
Diffstat (limited to 'documentapi')
-rw-r--r-- | documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.cpp | 20 | ||||
-rw-r--r-- | documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.h | 13 |
2 files changed, 23 insertions, 10 deletions
diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.cpp b/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.cpp index 4d260a8e81f..ba4d0cff079 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.cpp +++ b/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.cpp @@ -1,12 +1,26 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + #include "messagetypepolicy.h" #include <vespa/documentapi/messagebus/documentprotocol.h> +#include <vespa/messagebus/routing/route.h> +#include <vespa/messagebus/routing/routingcontext.h> #include <vespa/vespalib/stllike/hash_map.hpp> using vespa::config::content::MessagetyperouteselectorpolicyConfig; namespace documentapi { +namespace policy { + +using MessageTypeMapT = vespalib::hash_map<int, mbus::Route>; + +class MessageTypeMap : public MessageTypeMapT { +public: + using MessageTypeMapT::MessageTypeMapT; +}; + +} + MessageTypePolicy::MessageTypePolicy(const config::ConfigUri & configUri) : mbus::IRoutingPolicy(), config::IFetcherCallback<MessagetyperouteselectorpolicyConfig>(), @@ -23,7 +37,7 @@ MessageTypePolicy::~MessageTypePolicy() {} void MessageTypePolicy::configure(std::unique_ptr<MessagetyperouteselectorpolicyConfig> cfg) { - std::unique_ptr<MessageTypeMap> map(new MessageTypeMap); + auto map = std::make_unique<policy::MessageTypeMap>(); for (size_t i(0), m(cfg->route.size()); i < m; i++) { const MessagetyperouteselectorpolicyConfig::Route & r = cfg->route[i]; (*map)[r.messagetype] = mbus::Route::parse(r.name); @@ -38,8 +52,8 @@ void MessageTypePolicy::select(mbus::RoutingContext & context) { int messageType = context.getMessage().getType(); - std::shared_ptr<MessageTypeMap> map = _map.get(); - MessageTypeMap::const_iterator found = map->find(messageType); + std::shared_ptr<policy::MessageTypeMap> map = _map.get(); + policy::MessageTypeMap::const_iterator found = map->find(messageType); if (found != map->end()) { context.addChild(found->second); } else { diff --git a/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.h b/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.h index d9a324a79c5..18ae4d1acb8 100644 --- a/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.h +++ b/documentapi/src/vespa/documentapi/messagebus/policies/messagetypepolicy.h @@ -1,20 +1,20 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <vespa/document/select/node.h> -#include <map> #include <vespa/messagebus/routing/iroutingpolicy.h> -#include <vespa/messagebus/routing/route.h> -#include <vespa/messagebus/routing/routingcontext.h> -#include <vespa/vespalib/util/sync.h> #include <vespa/vespalib/util/ptrholder.h> #include <vespa/config-messagetyperouteselectorpolicy.h> #include <vespa/config/config.h> #include <vespa/config/helper/configfetcher.h> #include <vespa/documentapi/common.h> +namespace mbus { + class RoutingContext; + class Route; +} namespace documentapi { +namespace policy {class MessageTypeMap; } /** * This policy is responsible for selecting among the given recipient routes * according to the configured document selection properties. To factilitate @@ -26,8 +26,7 @@ class MessageTypePolicy : public mbus::IRoutingPolicy, public config::IFetcherCallback<vespa::config::content::MessagetyperouteselectorpolicyConfig> { private: - typedef vespalib::hash_map<int, mbus::Route> MessageTypeMap; - typedef vespalib::PtrHolder<MessageTypeMap> MessageTypeHolder; + typedef vespalib::PtrHolder<policy::MessageTypeMap> MessageTypeHolder; typedef vespalib::PtrHolder<mbus::Route> RouteHolder; MessageTypeHolder _map; |