blob: 7ddda9d86ed9f3b971b17b3a8750edb32e9ab9c5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/config/helper/configfetcher.h>
#include <vespa/config/subscription/configuri.h>
#include <vespa/config-stateserver.h>
namespace vespalib {
struct HealthProducer;
struct MetricsProducer;
struct ComponentConfigProducer;
class StateServer;
}
namespace slobrok {
class ReconfigurableStateServer : private config::IFetcherCallback<vespa::config::core::StateserverConfig> {
public:
ReconfigurableStateServer(const config::ConfigUri & configUri,
vespalib::HealthProducer & healt,
vespalib::MetricsProducer & metrics,
vespalib::ComponentConfigProducer & component);
~ReconfigurableStateServer();
private:
void configure(std::unique_ptr<vespa::config::core::StateserverConfig> config) override;
vespalib::HealthProducer & _health;
vespalib::MetricsProducer & _metrics;
vespalib::ComponentConfigProducer & _components;
std::unique_ptr<config::ConfigFetcher> _configFetcher;
std::unique_ptr<vespalib::StateServer> _server;
};
}
|