diff options
Diffstat (limited to 'storageserver/src/vespa/storageserver/app/process.h')
-rw-r--r-- | storageserver/src/vespa/storageserver/app/process.h | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/storageserver/src/vespa/storageserver/app/process.h b/storageserver/src/vespa/storageserver/app/process.h index e70427c6e04..a30611b78c8 100644 --- a/storageserver/src/vespa/storageserver/app/process.h +++ b/storageserver/src/vespa/storageserver/app/process.h @@ -14,10 +14,15 @@ #pragma once +#include <vespa/config-bucketspaces.h> +#include <vespa/config-stor-distribution.h> +#include <vespa/config/subscription/configsubscriber.h> +#include <vespa/config/subscription/configuri.h> #include <vespa/document/config/config-documenttypes.h> +#include <vespa/storage/config/config-stor-bouncer.h> +#include <vespa/storage/config/config-stor-communicationmanager.h> +#include <vespa/storage/config/config-stor-server.h> #include <vespa/storage/storageserver/applicationgenerationfetcher.h> -#include <vespa/config/subscription/configuri.h> -#include <vespa/config/subscription/configsubscriber.h> namespace document { class DocumentTypeRepo; } @@ -28,19 +33,32 @@ struct StorageNodeContext; class Process : public ApplicationGenerationFetcher { protected: + using DocumentTypesConfig = document::config::DocumenttypesConfig; + using BucketspacesConfig = vespa::config::content::core::BucketspacesConfig; + using CommunicationManagerConfig = vespa::config::content::core::StorCommunicationmanagerConfig; + using StorBouncerConfig = vespa::config::content::core::StorBouncerConfig; + using StorDistributionConfig = vespa::config::content::StorDistributionConfig; + using StorServerConfig = vespa::config::content::core::StorServerConfig; + using DocumentTypeRepoSP = std::shared_ptr<const document::DocumentTypeRepo>; config::ConfigUri _configUri; DocumentTypeRepoSP getTypeRepo() { return _repos.back(); } config::ConfigSubscriber _configSubscriber; + std::unique_ptr<config::ConfigHandle<DocumentTypesConfig>> _document_cfg_handle; + std::unique_ptr<config::ConfigHandle<BucketspacesConfig>> _bucket_spaces_cfg_handle; + std::unique_ptr<config::ConfigHandle<CommunicationManagerConfig>> _comm_mgr_cfg_handle; + std::unique_ptr<config::ConfigHandle<StorBouncerConfig>> _bouncer_cfg_handle; + std::unique_ptr<config::ConfigHandle<StorDistributionConfig>> _distribution_cfg_handle; + std::unique_ptr<config::ConfigHandle<StorServerConfig>> _server_cfg_handle; + private: - config::ConfigHandle<document::config::DocumenttypesConfig>::UP _documentHandler; std::vector<DocumentTypeRepoSP> _repos; public: using UP = std::unique_ptr<Process>; - Process(const config::ConfigUri & configUri); + explicit Process(const config::ConfigUri & configUri); ~Process() override; virtual void setupConfig(vespalib::duration subscribeTimeout); |