Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::concepts::ServiceFactory Concept Referenceexport

A callable that creates service instances. More...

#include <service.h>

Concept definition

template<typename F, typename T>
concept kcenon::common::concepts::ServiceFactory = std::invocable<F, di::IServiceContainer&> &&
std::convertible_to<std::invoke_result_t<F, di::IServiceContainer&>,
std::shared_ptr<T>>
A callable that creates service instances.
Definition service.h:98

Detailed Description

A callable that creates service instances.

A callable that creates a service instance.

Service factories receive a reference to the container (for resolving dependencies) and return a shared_ptr to the service instance.

Example usage:

template<ServiceInterface T, ServiceFactory<T> F>
void register_factory(IServiceContainer& container, F&& factory) {
container.register_factory<T>(std::forward<F>(factory));
}

Definition at line 98 of file service.h.