summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--storage/src/vespa/storage/common/i_storage_chain_builder.h2
-rw-r--r--storage/src/vespa/storage/common/storage_chain_builder.h2
-rw-r--r--storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp13
-rw-r--r--storageserver/src/vespa/storageserver/app/servicelayerprocess.h3
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