// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once #include #include #include namespace proton { class DocumentDBConfigOwner; /* * Interface class for owner of a proton configurer, with callback methods * for adding/removing document dbs and applying bootstrap config. */ class IProtonConfigurerOwner { public: using InitializeThreads = std::shared_ptr; virtual ~IProtonConfigurerOwner() = default; virtual std::shared_ptr addDocumentDB(const DocTypeName &docTypeName, document::BucketSpace bucketSpace, const vespalib::string &configId, const std::shared_ptr &bootstrapConfig, const std::shared_ptr &documentDBConfig, InitializeThreads initializeThreads) = 0; virtual void removeDocumentDB(const DocTypeName &docTypeName) = 0; virtual void applyConfig(const std::shared_ptr &bootstrapConfig) = 0; }; } // namespace proton