diff options
Diffstat (limited to 'storageserver')
6 files changed, 41 insertions, 10 deletions
diff --git a/storageserver/src/vespa/storageserver/app/distributorprocess.h b/storageserver/src/vespa/storageserver/app/distributorprocess.h index 8911372b05e..476dd054cd0 100644 --- a/storageserver/src/vespa/storageserver/app/distributorprocess.h +++ b/storageserver/src/vespa/storageserver/app/distributorprocess.h @@ -8,6 +8,7 @@ #pragma once #include "process.h" +#include <vespa/storage/storageserver/distributornode.h> namespace storage { diff --git a/storageserver/src/vespa/storageserver/app/process.cpp b/storageserver/src/vespa/storageserver/app/process.cpp index 352254fba14..c873cb15bb1 100644 --- a/storageserver/src/vespa/storageserver/app/process.cpp +++ b/storageserver/src/vespa/storageserver/app/process.cpp @@ -1,6 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "process.h" +#include <vespa/storage/storageserver/storagenode.h> #include <vespa/vespalib/util/exceptions.h> #include <vespa/log/log.h> diff --git a/storageserver/src/vespa/storageserver/app/process.h b/storageserver/src/vespa/storageserver/app/process.h index 06e76425fdc..50ceeb43c14 100644 --- a/storageserver/src/vespa/storageserver/app/process.h +++ b/storageserver/src/vespa/storageserver/app/process.h @@ -14,23 +14,29 @@ #pragma once -#include <vespa/document/datatype/documenttype.h> +#include <vespa/document/config/config-documenttypes.h> #include <vespa/storage/storageserver/applicationgenerationfetcher.h> -#include <vespa/storage/storageserver/distributornode.h> -#include <vespa/storage/storageserver/servicelayernode.h> -#include <vespa/config/config.h> +#include <vespa/config/subscription/configuri.h> +#include <vespa/config/subscription/configsubscriber.h> + + +namespace document { class DocumentTypeRepo; } namespace storage { +class StorageNode; +class StorageNodeContext; + class Process : public ApplicationGenerationFetcher { protected: + using DocumentTypeRepoSP = std::shared_ptr<document::DocumentTypeRepo>; config::ConfigUri _configUri; - document::DocumentTypeRepo::SP getTypeRepo() { return _repos.back(); } + DocumentTypeRepoSP getTypeRepo() { return _repos.back(); } config::ConfigSubscriber _configSubscriber; private: config::ConfigHandle<document::DocumenttypesConfig>::UP _documentHandler; - std::vector<document::DocumentTypeRepo::SP> _repos; + std::vector<DocumentTypeRepoSP> _repos; public: typedef std::unique_ptr<Process> UP; diff --git a/storageserver/src/vespa/storageserver/app/rpcservicelayerprocess.cpp b/storageserver/src/vespa/storageserver/app/rpcservicelayerprocess.cpp index c8b40be2404..fa37ed10190 100644 --- a/storageserver/src/vespa/storageserver/app/rpcservicelayerprocess.cpp +++ b/storageserver/src/vespa/storageserver/app/rpcservicelayerprocess.cpp @@ -1,6 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "rpcservicelayerprocess.h" +#include <vespa/storage/config/config-stor-server.h> #include <vespa/config/helper/configgetter.hpp> #include <vespa/log/log.h> diff --git a/storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp b/storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp index 696e79503d7..30b71560287 100644 --- a/storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp +++ b/storageserver/src/vespa/storageserver/app/servicelayerprocess.cpp @@ -1,6 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include "servicelayerprocess.h" +#include <vespa/storage/storageserver/servicelayernode.h> #include <vespa/searchvisitor/searchvisitor.h> namespace storage { @@ -28,4 +29,19 @@ ServiceLayerProcess::createNode() _node->init(); } +StorageNode& +ServiceLayerProcess::getNode() { + return *_node; +} + +StorageNodeContext& +ServiceLayerProcess::getContext() { + return _context; +} + +std::string +ServiceLayerProcess::getComponentName() const { + return "servicelayer"; +} + } // storage diff --git a/storageserver/src/vespa/storageserver/app/servicelayerprocess.h b/storageserver/src/vespa/storageserver/app/servicelayerprocess.h index 4140e072a50..dbef3930c20 100644 --- a/storageserver/src/vespa/storageserver/app/servicelayerprocess.h +++ b/storageserver/src/vespa/storageserver/app/servicelayerprocess.h @@ -17,15 +17,21 @@ #pragma once #include "process.h" +#include <vespa/storage/storageserver/servicelayernodecontext.h> +#include <vespa/storage/common/visitorfactory.h> #include <vespa/config/config.h> #include <vespa/config/helper/configfetcher.h> #include <vespa/config-persistence.h> namespace storage { +namespace spi { class PersistenceProvider; } + +class ServiceLayerNode; + class ServiceLayerProcess : public Process { VisitorFactory::Map _externalVisitors; - ServiceLayerNode::UP _node; + std::unique_ptr<ServiceLayerNode> _node; protected: ServiceLayerNodeContext _context; @@ -40,9 +46,9 @@ public: virtual spi::PersistenceProvider& getProvider() = 0; void createNode() override; - StorageNode& getNode() override { return *_node; } - StorageNodeContext& getContext() override { return _context; } - std::string getComponentName() const override { return "servicelayer"; } + StorageNode& getNode() override; + StorageNodeContext& getContext() override; + std::string getComponentName() const override; }; } // storage |