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 /storageserver | |
parent | 1beb8ab01f922753434a300efd02299cd5ddeaa8 (diff) |
Enable setting of storage chain builder for service layer process.
Diffstat (limited to 'storageserver')
-rw-r--r-- | storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp | 13 | ||||
-rw-r--r-- | storageserver/src/vespa/storageserver/app/servicelayerprocess.h | 3 |
2 files changed, 16 insertions, 0 deletions
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 |