129 std::unique_ptr<database_backend>
create(
const std::string& name)
const;
201template<
typename BackendType>
Helper class for automatic backend registration.
backend_registrar(const std::string &name)
Constructor that registers the backend.
Singleton registry for database backend plugins.
~backend_registry()=default
std::vector< std::string > available_backends() const
Get list of all registered backend names.
backend_registry(const backend_registry &)=delete
void clear()
Clear all registered backends (for testing)
backend_registry()=default
backend_registry & operator=(backend_registry &&)=delete
backend_registry & operator=(const backend_registry &)=delete
kcenon::common::VoidResult unregister_backend(const std::string &name)
Unregister a backend (for testing or dynamic unloading)
static backend_registry & instance()
Get the singleton instance.
bool has_backend(const std::string &name) const
Check if a backend is registered.
std::unique_ptr< database_backend > create(const std::string &name) const
Create a backend instance by name.
std::map< std::string, backend_factory_fn > factories_
kcenon::common::VoidResult register_backend(const std::string &name, backend_factory_fn factory)
Register a backend factory function.
size_t backend_count() const
Get number of registered backends.
backend_registry(backend_registry &&)=delete
Abstract interface for database backends.
std::unique_ptr< database_backend >(*)() backend_factory_fn
Factory function type for creating database backends.
std::unique_ptr< database_backend > create_backend(const std::string &name)
Convenience function for creating backends (static method style)
bool has_backend(const std::string &name)
Convenience function for checking backend availability.
std::vector< std::string > available_backends()
Convenience function for getting available backends.