aboutsummaryrefslogtreecommitdiffstats
path: root/storageserver
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2020-09-25 17:17:46 +0200
committerTor Egge <Tor.Egge@broadpark.no>2020-09-25 17:17:46 +0200
commit87a73878b58b8af5a7b282216be99ce8f655dcd1 (patch)
tree11c6a26842973e4bf4d750ff125c944d9c12389d /storageserver
parent1beb8ab01f922753434a300efd02299cd5ddeaa8 (diff)
Enable setting of storage chain builder for service layer process.
Diffstat (limited to 'storageserver')
-rw-r--r--storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp13
-rw-r--r--storageserver/src/vespa/storageserver/app/servicelayerprocess.h3
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