IServiceFactory#

struct IServiceFactory#

Interface for all service factories.

Subclassed by sb::di::details::ExternalServiceFactory< T >, sb::di::details::ExternalServiceFcnFactory< FactoryFcn >, sb::di::details::ServiceCtorFactory< T >, sb::di::details::ServiceFcnFactory< FactoryFcn >

Public Types

using Ptr = std::unique_ptr<IServiceFactory>#

Public Functions

virtual TypeId getServiceTypeId() const = 0#

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

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

Create a service instance object.

virtual IServiceFactory::Ptr clone() = 0#

Returns copy of self factory.

Note that IServiceFactory implementation must be copyable

virtual ~IServiceFactory() = default#