diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2020-09-25 17:17:46 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2020-09-25 17:17:46 +0200 |
commit | 87a73878b58b8af5a7b282216be99ce8f655dcd1 (patch) | |
tree | 11c6a26842973e4bf4d750ff125c944d9c12389d | |
parent | 1beb8ab01f922753434a300efd02299cd5ddeaa8 (diff) |
Enable setting of storage chain builder for service layer process.
4 files changed, 18 insertions, 2 deletions
diff --git a/storage/src/vespa/storage/common/i_storage_chain_builder.h b/storage/src/vespa/storage/common/i_storage_chain_builder.h index f50cc7572e9..8f4708ad7ac 100644 --- a/storage/src/vespa/storage/common/i_storage_chain_builder.h +++ b/storage/src/vespa/storage/common/i_storage_chain_builder.h @@ -15,7 +15,7 @@ class IStorageChainBuilder { public: virtual ~IStorageChainBuilder() = default; - virtual void add(std::unique_ptr<StorageLink> child) = 0; + virtual void add(std::unique_ptr<StorageLink> link) = 0; virtual std::unique_ptr<StorageLink> build() && = 0; }; diff --git a/storage/src/vespa/storage/common/storage_chain_builder.h b/storage/src/vespa/storage/common/storage_chain_builder.h index fc9ca7ec1c9..ce4087e0bd0 100644 --- a/storage/src/vespa/storage/common/storage_chain_builder.h +++ b/storage/src/vespa/storage/common/storage_chain_builder.h @@ -16,7 +16,7 @@ protected: public: StorageChainBuilder(); ~StorageChainBuilder() override; - void add(std::unique_ptr<StorageLink> child) override; + void add(std::unique_ptr<StorageLink> link) override; std::unique_ptr<StorageLink> build() && override; }; diff --git a/storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp b/storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp index 4ff3810d85f..bdb53ce6a60 100644 --- a/storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp +++ b/storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp @@ -2,6 +2,7 @@ #include "servicelayerprocess.h" #include <vespa/config/helper/configgetter.hpp> +#include <vespa/storage/common/i_storage_chain_builder.h> #include <vespa/storage/config/config-stor-server.h> #include <vespa/storage/storageserver/servicelayernode.h> #include <vespa/searchvisitor/searchvisitor.h> @@ -24,6 +25,9 @@ bool configured_to_use_btree_db(const config::ConfigUri& config_uri) { ServiceLayerProcess::ServiceLayerProcess(const config::ConfigUri& configUri) : Process(configUri), + _externalVisitors(), + _node(), + _storage_chain_builder(), _context(std::make_unique<framework::defaultimplementation::RealClock>(), configured_to_use_btree_db(configUri)) { @@ -44,6 +48,9 @@ ServiceLayerProcess::createNode() _externalVisitors["searchvisitor"] = std::make_shared<streaming::SearchVisitorFactory>(_configUri); setupProvider(); _node = std::make_unique<ServiceLayerNode>(_configUri, _context, *this, getProvider(), _externalVisitors); + if (_storage_chain_builder) { + _node->set_storage_chain_builder(std::move(_storage_chain_builder)); + } _node->init(); } @@ -62,4 +69,10 @@ ServiceLayerProcess::getComponentName() const { return "servicelayer"; } +void +ServiceLayerProcess::set_storage_chain_builder(std::unique_ptr<IStorageChainBuilder> builder) +{ + _storage_chain_builder = std::move(builder); +} + } // storage diff --git a/storageserver/src/vespa/storageserver/app/servicelayerprocess.h b/storageserver/src/vespa/storageserver/app/servicelayerprocess.h index b24640cbbd7..63776c02a52 100644 --- a/storageserver/src/vespa/storageserver/app/servicelayerprocess.h +++ b/storageserver/src/vespa/storageserver/app/servicelayerprocess.h @@ -27,10 +27,12 @@ namespace storage { namespace spi { struct PersistenceProvider; } class ServiceLayerNode; +class IStorageChainBuilder; class ServiceLayerProcess : public Process { VisitorFactory::Map _externalVisitors; std::unique_ptr<ServiceLayerNode> _node; + std::unique_ptr<IStorageChainBuilder> _storage_chain_builder; protected: ServiceLayerNodeContext _context; @@ -48,6 +50,7 @@ public: StorageNode& getNode() override; StorageNodeContext& getContext() override; std::string getComponentName() const override; + void set_storage_chain_builder(std::unique_ptr<IStorageChainBuilder> builder); }; } // storage |