ServiceFcnFactory#

template<class FactoryFcn>
class ServiceFcnFactory : public sb::di::IServiceFactory#

Public Types

using ReturnType = std::invoke_result_t<FactoryFcn, IServiceProvider&>#
using IsReturnTypeUniquePtr = utils::IsUniquePtr<ReturnType>#
using ServiceType = typename IsReturnTypeUniquePtr::Type#

Public Functions

inline ServiceFcnFactory(FactoryFcn factoryFunction)#
inline virtual TypeId getServiceTypeId() const#

Get the TypeId of the service instances that the factory will create.

inline virtual IServiceInstance::Ptr createInstance(IServiceProvider &serviceProvider) const#

Create a service instance object.

inline virtual IServiceFactory::Ptr clone()#

Returns copy of self factory.

Note that IServiceFactory implementation must be copyable