summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-12-20 14:41:39 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2016-12-20 15:50:29 +0100
commit51bc810507f2067ebd2646274d3cda5cb583a620 (patch)
treecbff1f6464262c2e6b3a622db93d044bab69a532 /config
parent530e52e17a85836d58cac58c89b71c189c6f9873 (diff)
Further decouple some hpp files, config and the attributevector.
Diffstat (limited to 'config')
-rw-r--r--config/src/tests/configgen/configgen.cpp5
-rw-r--r--config/src/tests/configmanager/configmanager.cpp6
-rw-r--r--config/src/tests/getconfig/getconfig.cpp3
-rw-r--r--config/src/tests/print/print.cpp3
-rw-r--r--config/src/vespa/config/common/timingvalues.h1
-rw-r--r--config/src/vespa/config/helper/configgetter.h13
-rw-r--r--config/src/vespa/config/helper/configgetter.hpp2
-rw-r--r--config/src/vespa/config/subscription/configinstancespec.h3
-rw-r--r--config/src/vespa/config/subscription/configsubscriptionset.cpp2
-rw-r--r--config/src/vespa/config/subscription/configsubscriptionset.h6
-rw-r--r--config/src/vespa/config/subscription/sourcespec.cpp9
-rw-r--r--config/src/vespa/config/subscription/sourcespec.h31
12 files changed, 43 insertions, 41 deletions
diff --git a/config/src/tests/configgen/configgen.cpp b/config/src/tests/configgen/configgen.cpp
index bd8aea0a89a..25915293310 100644
--- a/config/src/tests/configgen/configgen.cpp
+++ b/config/src/tests/configgen/configgen.cpp
@@ -1,9 +1,8 @@
// 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("configgen");
+
#include <vespa/vespalib/testkit/test_kit.h>
#include <vespa/config/config.h>
+#include <vespa/config/helper/configgetter.hpp>
#include "config-motd.h"
using namespace config;
diff --git a/config/src/tests/configmanager/configmanager.cpp b/config/src/tests/configmanager/configmanager.cpp
index 38d6aa85065..d0e8f5444e0 100644
--- a/config/src/tests/configmanager/configmanager.cpp
+++ b/config/src/tests/configmanager/configmanager.cpp
@@ -1,11 +1,10 @@
// 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("configmanager");
+
#include <vespa/vespalib/testkit/test_kit.h>
#include <vespa/vespalib/util/noncopyable.hpp>
#include <vespa/config/common/configmanager.h>
#include <vespa/config/common/exceptions.h>
+#include <vespa/config/common/timingvalues.h>
#include <vespa/config/subscription/sourcespec.h>
#include <vespa/config/raw/rawsource.h>
#include "config-my.h"
@@ -41,7 +40,6 @@ namespace {
{
_data->numGetConfig++;
if (_data->respond) {
- LOG(info, "put into holder");
_holder->handle(ConfigUpdate::UP(new ConfigUpdate(ConfigValue(), true, _data->generation)));
}
}
diff --git a/config/src/tests/getconfig/getconfig.cpp b/config/src/tests/getconfig/getconfig.cpp
index 77e2f57dbc8..4ffd8b5e806 100644
--- a/config/src/tests/getconfig/getconfig.cpp
+++ b/config/src/tests/getconfig/getconfig.cpp
@@ -1,7 +1,8 @@
// 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/vespalib/testkit/test_kit.h>
#include <vespa/config/config.h>
+#include <vespa/config/helper/configgetter.hpp>
#include <vespa/config/raw/rawsource.h>
#include "config-my.h"
diff --git a/config/src/tests/print/print.cpp b/config/src/tests/print/print.cpp
index 761a3b32f73..b8b2d7cd5ef 100644
--- a/config/src/tests/print/print.cpp
+++ b/config/src/tests/print/print.cpp
@@ -1,10 +1,11 @@
// 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/vespalib/testkit/test_kit.h>
#include <vespa/config/config.h>
#include <vespa/config/print.h>
#include <vespa/config/print/fileconfigreader.h>
#include <vespa/config/print/istreamconfigreader.h>
+#include <vespa/config/helper/configgetter.hpp>
#include "config-my.h"
#include "config-motd.h"
diff --git a/config/src/vespa/config/common/timingvalues.h b/config/src/vespa/config/common/timingvalues.h
index 244e80540c4..2f2c5842c82 100644
--- a/config/src/vespa/config/common/timingvalues.h
+++ b/config/src/vespa/config/common/timingvalues.h
@@ -3,6 +3,7 @@
#pragma once
#include <cstdint>
+
namespace config {
static const uint64_t DEFAULT_NEXTCONFIG_TIMEOUT = 55000;
diff --git a/config/src/vespa/config/helper/configgetter.h b/config/src/vespa/config/helper/configgetter.h
index ee0cba1988c..da683fe542b 100644
--- a/config/src/vespa/config/helper/configgetter.h
+++ b/config/src/vespa/config/helper/configgetter.h
@@ -1,14 +1,15 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
-#include <vespa/config/config.h>
+
+#include <vespa/config/subscription/sourcespec.h>
#include <vespa/config/common/timingvalues.h>
-#include <vespa/config/subscription/confighandle.h>
-#include <vespa/vespalib/util/threadstackexecutor.h>
#include "ifetchercallback.h"
namespace config {
+class IConfigContext;
+
/**
* A config fetcher subscribes to a config and notifies a callback when done
*/
@@ -17,13 +18,11 @@ class ConfigGetter
{
public:
static std::unique_ptr<ConfigType> getConfig(int64_t &generation, const std::string & configId, const SourceSpec & spec = ServerSpec());
- static std::unique_ptr<ConfigType> getConfig(int64_t &generation, const std::string & configId, const IConfigContext::SP & context, uint64_t subscribeTimeout = DEFAULT_SUBSCRIBE_TIMEOUT);
+ static std::unique_ptr<ConfigType> getConfig(int64_t &generation, const std::string & configId, const std::shared_ptr<IConfigContext> & context, uint64_t subscribeTimeout = DEFAULT_SUBSCRIBE_TIMEOUT);
static std::unique_ptr<ConfigType> getConfig(const std::string & configId, const SourceSpec & spec = ServerSpec());
- static std::unique_ptr<ConfigType> getConfig(const std::string & configId, const IConfigContext::SP & context, uint64_t subscribeTimeout = DEFAULT_SUBSCRIBE_TIMEOUT);
+ static std::unique_ptr<ConfigType> getConfig(const std::string & configId, const std::shared_ptr<IConfigContext> & context, uint64_t subscribeTimeout = DEFAULT_SUBSCRIBE_TIMEOUT);
};
} // namespace config
-#include "configgetter.hpp"
-
diff --git a/config/src/vespa/config/helper/configgetter.hpp b/config/src/vespa/config/helper/configgetter.hpp
index 5452908a144..b0612768aae 100644
--- a/config/src/vespa/config/helper/configgetter.hpp
+++ b/config/src/vespa/config/helper/configgetter.hpp
@@ -1,5 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#include "configgetter.h"
+#include <vespa/config/subscription/configsubscriber.h>
namespace config {
template <typename ConfigType>
diff --git a/config/src/vespa/config/subscription/configinstancespec.h b/config/src/vespa/config/subscription/configinstancespec.h
index 0ba861eb90c..a75f7eea3de 100644
--- a/config/src/vespa/config/subscription/configinstancespec.h
+++ b/config/src/vespa/config/subscription/configinstancespec.h
@@ -3,6 +3,7 @@
#pragma once
#include "sourcespec.h"
+#include <vespa/config/common/configkey.h>
#include <vespa/vespalib/stllike/asciistream.h>
namespace config {
@@ -14,7 +15,7 @@ class ConfigInstanceSpec : public SourceSpec
{
public:
ConfigInstanceSpec(const ConfigInstance & instance);
- SourceFactory::UP createSourceFactory(const TimingValues & timingValues) const;
+ std::unique_ptr<SourceFactory> createSourceFactory(const TimingValues & timingValues) const;
private:
const ConfigKey _key;
vespalib::asciistream _buffer;
diff --git a/config/src/vespa/config/subscription/configsubscriptionset.cpp b/config/src/vespa/config/subscription/configsubscriptionset.cpp
index 91635a33222..2884a1a4507 100644
--- a/config/src/vespa/config/subscription/configsubscriptionset.cpp
+++ b/config/src/vespa/config/subscription/configsubscriptionset.cpp
@@ -2,8 +2,8 @@
#include "configsubscriptionset.h"
#include <vespa/config/common/exceptions.h>
+#include <vespa/config/common/misc.h>
#include <thread>
-#include <chrono>
#include <vespa/log/log.h>
LOG_SETUP(".config.subscription.configsubscriptionset");
diff --git a/config/src/vespa/config/subscription/configsubscriptionset.h b/config/src/vespa/config/subscription/configsubscriptionset.h
index 3c425baf26c..ec696a6e3ac 100644
--- a/config/src/vespa/config/subscription/configsubscriptionset.h
+++ b/config/src/vespa/config/subscription/configsubscriptionset.h
@@ -1,15 +1,13 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+//
#pragma once
-#include <memory>
-#include <map>
+
#include <vespa/config/common/iconfigholder.h>
#include <vespa/config/common/configcontext.h>
#include "confighandle.h"
#include "subscriptionid.h"
#include "configsubscription.h"
#include "configprovider.h"
-#include <vespa/vespalib/util/sync.h>
-#include <vespa/vespalib/util/priority_queue.h>
namespace config {
diff --git a/config/src/vespa/config/subscription/sourcespec.cpp b/config/src/vespa/config/subscription/sourcespec.cpp
index 2b4c71b8c21..5537533c05f 100644
--- a/config/src/vespa/config/subscription/sourcespec.cpp
+++ b/config/src/vespa/config/subscription/sourcespec.cpp
@@ -6,18 +6,19 @@
#include <vespa/config/file/filesourcefactory.h>
#include <vespa/config/frt/frtsourcefactory.h>
#include <vespa/config/frt/frtconnectionpool.h>
-#include <vespa/config/frt/protocol.h>
-#include <vespa/config/frt/connectionfactory.h>
#include <vespa/config/set/configsetsourcefactory.h>
#include <vespa/config/set/configinstancesourcefactory.h>
#include <vespa/vespalib/text/stringtokenizer.h>
#include <vespa/config/print/asciiconfigwriter.h>
-#include <vespa/log/log.h>
-LOG_SETUP(".config.subscription.sourcespec");
namespace config {
+class BuilderMap : public std::map<ConfigKey, ConfigInstance *> {
+ using Parent = std::map<ConfigKey, ConfigInstance *>;
+ using Parent::Parent;
+};
+
RawSpec::RawSpec(const vespalib::string & config)
: _config(config)
{
diff --git a/config/src/vespa/config/subscription/sourcespec.h b/config/src/vespa/config/subscription/sourcespec.h
index c6cc8ed38c5..d58b8f9a7f5 100644
--- a/config/src/vespa/config/subscription/sourcespec.h
+++ b/config/src/vespa/config/subscription/sourcespec.h
@@ -2,16 +2,15 @@
#pragma once
-#include <vespa/vespalib/stllike/hash_fun.h>
#include <vespa/vespalib/stllike/string.h>
-#include <vespa/config/common/sourcefactory.h>
-#include <vespa/config/common/timingvalues.h>
#include <vespa/config/common/compressiontype.h>
-#include <vespa/config/set/configsetsourcefactory.h>
-#include <vespa/config/configgen/configinstance.h>
namespace config {
+class ConfigInstance;
+class SourceFactory;
+class TimingValues;
+
typedef vespalib::string SourceSpecKey;
/**
@@ -21,7 +20,8 @@ typedef vespalib::string SourceSpecKey;
class SourceSpec
{
public:
- typedef std::unique_ptr<SourceSpec> UP; /// Convenience typedef
+ using SourceFactorySP = std::unique_ptr<SourceFactory>;
+ using UP = std::unique_ptr<SourceSpec>; /// Convenience typedef
/**
* Creates a source factory from which to create config sources for new
@@ -34,7 +34,7 @@ public:
* @param timingValues Timing values to be used for this source.
* @return An std::unique_ptr<Source> that can be used to ask for config.
*/
- virtual SourceFactory::UP createSourceFactory(const TimingValues & timingValues) const = 0;
+ virtual SourceFactorySP createSourceFactory(const TimingValues & timingValues) const = 0;
virtual ~SourceSpec() { }
};
@@ -53,7 +53,7 @@ public:
RawSpec(const vespalib::string & config);
// Implements SourceSpec
- SourceFactory::UP createSourceFactory(const TimingValues & timingValues) const;
+ SourceFactorySP createSourceFactory(const TimingValues & timingValues) const;
/**
* Returns the string representation of this config.
@@ -88,7 +88,7 @@ public:
const vespalib::string & getFileName() const { return _fileName; }
// Implements SourceSpec
- SourceFactory::UP createSourceFactory(const TimingValues & timingValues) const;
+ SourceFactorySP createSourceFactory(const TimingValues & timingValues) const;
private:
void verifyName(const vespalib::string & fileName);
vespalib::string _fileName;
@@ -116,7 +116,7 @@ public:
const vespalib::string & getDirName() const { return _dirName; }
// Implements SourceSpec
- SourceFactory::UP createSourceFactory(const TimingValues & timingValues) const;
+ SourceFactorySP createSourceFactory(const TimingValues & timingValues) const;
private:
vespalib::string _dirName;
};
@@ -153,7 +153,7 @@ public:
ServerSpec(const vespalib::string & hostSpec);
// Implements SourceSpec
- virtual SourceFactory::UP createSourceFactory(const TimingValues & timingValues) const;
+ virtual SourceFactorySP createSourceFactory(const TimingValues & timingValues) const;
/**
* Add another host to this source spec, allowing failover.
@@ -205,15 +205,16 @@ private:
* A ConfigSet gives the ability to serve config from a set of ConfigInstance
* builders.
*/
+
+class BuilderMap;
+
class ConfigSet : public SourceSpec
{
public:
/// Constructs a new empty ConfigSet
ConfigSet();
- /// Mapping of config keys to builders
- typedef ConfigSetSourceFactory::BuilderMap BuilderMap;
- typedef ConfigSetSourceFactory::BuilderMapSP BuilderMapSP;
+ using BuilderMapSP = std::shared_ptr<BuilderMap>;
/**
* Add a builder to serve config from. The builder must be of a
* 'ConfigType'Builder, and the configId must be the id to which you want to
@@ -227,7 +228,7 @@ public:
void addBuilder(const vespalib::string & configId, ConfigInstance * builder);
// Implements SourceSpec
- SourceFactory::UP createSourceFactory(const TimingValues & timingValues) const;
+ SourceFactorySP createSourceFactory(const TimingValues & timingValues) const;
private:
BuilderMapSP _builderMap;
};