summaryrefslogtreecommitdiffstats
path: root/slobrok
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-02-05 23:32:00 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-02-06 00:26:08 +0000
commit4c5a7cac411b30b9b4bd3ca067efcc9f3719b0ea (patch)
tree2e09c62b854357bbb1c8d433898d004e3f3995a5 /slobrok
parentb84ef936b1cedce0b99f79e03b2fe25a8db5f7c3 (diff)
Reduce code visibility and include only what you need from config library.
Diffstat (limited to 'slobrok')
-rw-r--r--slobrok/src/tests/configure/configure.cpp1
-rw-r--r--slobrok/src/vespa/slobrok/cfg.cpp16
-rw-r--r--slobrok/src/vespa/slobrok/cfg.h13
-rw-r--r--slobrok/src/vespa/slobrok/server/configshim.cpp4
-rw-r--r--slobrok/src/vespa/slobrok/server/configshim.h2
-rw-r--r--slobrok/src/vespa/slobrok/server/reconfigurable_stateserver.cpp3
-rw-r--r--slobrok/src/vespa/slobrok/server/sbenv.h6
7 files changed, 29 insertions, 16 deletions
diff --git a/slobrok/src/tests/configure/configure.cpp b/slobrok/src/tests/configure/configure.cpp
index 77705864f80..295906fe8c1 100644
--- a/slobrok/src/tests/configure/configure.cpp
+++ b/slobrok/src/tests/configure/configure.cpp
@@ -4,7 +4,6 @@
#include <vespa/slobrok/sbmirror.h>
#include <vespa/slobrok/sbregister.h>
#include <vespa/slobrok/server/slobrokserver.h>
-#include <vespa/config/config.h>
#include <vespa/config/common/configcontext.h>
#include <vespa/config-slobroks.h>
#include <vespa/fnet/transport.h>
diff --git a/slobrok/src/vespa/slobrok/cfg.cpp b/slobrok/src/vespa/slobrok/cfg.cpp
index 557e94d56d8..12e41bac4fc 100644
--- a/slobrok/src/vespa/slobrok/cfg.cpp
+++ b/slobrok/src/vespa/slobrok/cfg.cpp
@@ -1,5 +1,6 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "cfg.h"
+#include <vespa/config/subscription/configsubscriber.hpp>
namespace slobrok {
@@ -21,7 +22,7 @@ extract(const cloud::config::SlobroksConfig &cfg)
bool
Configurator::poll()
{
- bool retval = _subscriber.nextGenerationNow();
+ bool retval = _subscriber->nextGenerationNow();
if (retval) {
std::unique_ptr<cloud::config::SlobroksConfig> cfg = _handle->getConfig();
_target.setup(extract(*cfg));
@@ -31,12 +32,21 @@ Configurator::poll()
Configurator::Configurator(Configurable& target, const config::ConfigUri & uri)
- : _subscriber(uri.getContext()),
- _handle(_subscriber.subscribe<cloud::config::SlobroksConfig>(uri.getConfigId())),
+ : _subscriber(std::make_unique<config::ConfigSubscriber>(uri.getContext())),
+ _handle(_subscriber->subscribe<cloud::config::SlobroksConfig>(uri.getConfigId())),
_target(target)
{
}
+Configurator::~Configurator() = default;
+
+
+int64_t
+Configurator::getGeneration() const {
+ return _subscriber->getGeneration();
+}
+
+
ConfiguratorFactory::ConfiguratorFactory(const config::ConfigUri& uri)
: _uri(uri)
{
diff --git a/slobrok/src/vespa/slobrok/cfg.h b/slobrok/src/vespa/slobrok/cfg.h
index d3150a6f941..bd7bffe1d15 100644
--- a/slobrok/src/vespa/slobrok/cfg.h
+++ b/slobrok/src/vespa/slobrok/cfg.h
@@ -3,8 +3,12 @@
#include <vespa/vespalib/util/ptrholder.h>
#include <vespa/config-slobroks.h>
-#include <vespa/config/config.h>
+#include <vespa/config/subscription/configuri.h>
+#include <vespa/config/subscription/confighandle.h>
+namespace config {
+ class ConfigSubscriber;
+}
namespace slobrok {
class Configurable {
@@ -16,15 +20,16 @@ public:
class Configurator {
private:
- config::ConfigSubscriber _subscriber;
- config::ConfigHandle<cloud::config::SlobroksConfig>::UP _handle;
+ std::unique_ptr<config::ConfigSubscriber> _subscriber;
+ std::unique_ptr<config::ConfigHandle<cloud::config::SlobroksConfig>> _handle;
Configurable &_target;
public:
Configurator(Configurable &target, const config::ConfigUri & uri);
+ ~Configurator();
bool poll();
typedef std::unique_ptr<Configurator> UP;
- int64_t getGeneration() const { return _subscriber.getGeneration(); }
+ int64_t getGeneration() const;
};
class ConfiguratorFactory {
diff --git a/slobrok/src/vespa/slobrok/server/configshim.cpp b/slobrok/src/vespa/slobrok/server/configshim.cpp
index d6922685009..cc4892e616c 100644
--- a/slobrok/src/vespa/slobrok/server/configshim.cpp
+++ b/slobrok/src/vespa/slobrok/server/configshim.cpp
@@ -18,11 +18,11 @@ ConfigShim::ConfigShim(uint32_t port, const std::string& cfgId)
_factory(config::ConfigUri(_configId))
{}
-ConfigShim::ConfigShim(uint32_t port, const std::string& cfgId, config::IConfigContext::SP cfgCtx)
+ConfigShim::ConfigShim(uint32_t port, const std::string& cfgId, std::shared_ptr<config::IConfigContext> cfgCtx)
: _port(port),
_enableStateServer(false),
_configId(cfgId),
- _factory(config::ConfigUri(cfgId, cfgCtx))
+ _factory(config::ConfigUri(cfgId, std::move(cfgCtx)))
{}
ConfigShim::~ConfigShim() = default;
diff --git a/slobrok/src/vespa/slobrok/server/configshim.h b/slobrok/src/vespa/slobrok/server/configshim.h
index aebbe2dece4..f31eeb5c463 100644
--- a/slobrok/src/vespa/slobrok/server/configshim.h
+++ b/slobrok/src/vespa/slobrok/server/configshim.h
@@ -17,7 +17,7 @@ private:
public:
ConfigShim(uint32_t port);
ConfigShim(uint32_t port, const std::string& cfgId);
- ConfigShim(uint32_t port, const std::string& cfgId, config::IConfigContext::SP cfgCtx);
+ ConfigShim(uint32_t port, const std::string& cfgId, std::shared_ptr<config::IConfigContext> cfgCtx);
~ConfigShim();
ConfigShim & enableStateServer(bool v) { _enableStateServer = v; return *this; }
diff --git a/slobrok/src/vespa/slobrok/server/reconfigurable_stateserver.cpp b/slobrok/src/vespa/slobrok/server/reconfigurable_stateserver.cpp
index f2ebc7ce78d..1bf6596744d 100644
--- a/slobrok/src/vespa/slobrok/server/reconfigurable_stateserver.cpp
+++ b/slobrok/src/vespa/slobrok/server/reconfigurable_stateserver.cpp
@@ -3,11 +3,10 @@
#include "reconfigurable_stateserver.h"
#include <vespa/vespalib/util/exceptions.h>
#include <vespa/vespalib/net/state_server.h>
+#include <vespa/config/helper/configfetcher.hpp>
#include <thread>
#include <vespa/log/log.h>
-#include <vespa/config/common/exceptions.h>
-
LOG_SETUP(".slobrok.server.reconfigurable_stateserver");
using namespace std::chrono_literals;
diff --git a/slobrok/src/vespa/slobrok/server/sbenv.h b/slobrok/src/vespa/slobrok/server/sbenv.h
index a27680365a0..644344285ad 100644
--- a/slobrok/src/vespa/slobrok/server/sbenv.h
+++ b/slobrok/src/vespa/slobrok/server/sbenv.h
@@ -39,9 +39,9 @@ private:
std::unique_ptr<FNET_Transport> _transport;
std::unique_ptr<FRT_Supervisor> _supervisor;
- ConfigShim _configShim;
- Configurator::UP _configurator;
- bool _shuttingDown;
+ ConfigShim _configShim;
+ std::unique_ptr<Configurator> _configurator;
+ bool _shuttingDown;
SBEnv(const SBEnv &); // Not used
SBEnv &operator=(const SBEnv &); // Not used