#pragma once #include #include #include #include namespace DB { /** Factory of query engine runtime components / services. * Helps to host query engine in external applications * by replacing or reconfiguring its components. */ class IRuntimeComponentsFactory { public: virtual ~IRuntimeComponentsFactory() = default; virtual std::unique_ptr createUsersManager() = 0; virtual std::unique_ptr createGeoDictionariesLoader() = 0; // Repositories with configurations of user-defined objects (dictionaries, models) virtual std::unique_ptr createExternalDictionariesConfigRepository() = 0; virtual std::unique_ptr createExternalModelsConfigRepository() = 0; }; }