ServiceInstanceProvider#
-
class ServiceInstanceProvider : public sb::di::IServiceInstanceProvider#
Subclassed by sb::di::details::core::ServiceInstanceProviderRoot
Public Types
-
using Ptr = std::unique_ptr<ServiceInstanceProvider>#
Public Functions
-
ServiceInstanceProvider(IServiceInstanceProviderRoot &root, ServiceProviderOptions options)#
-
ServiceInstanceProvider(ServiceInstanceProvider&&) = delete#
-
ServiceInstanceProvider(const ServiceInstanceProvider&) = delete#
-
ServiceInstanceProvider &operator=(const ServiceInstanceProvider&) = delete#
-
ServiceInstanceProvider &operator=(ServiceInstanceProvider&&) = delete#
-
virtual void init(ServiceProvider &serviceProvider) override#
Initializes instance provider.
-
virtual const ServiceProviderOptions &getOptions() const override#
Get service provider options.
-
virtual IServiceInstanceProvider::Ptr createScope() const override#
Create a scoped service instance provider.
Scoped service instance provider creates/holds its own scoped services
-
virtual const ServiceInstance &getInstance(TypeId serviceTypeId) override#
Returns service instance reference, might throw exception.
If service was not registered or was registered as transient, method throws exception
- Throws:
sb::di::ServiceNotFoundException –
-
virtual const ServiceInstance *tryGetInstance(TypeId serviceTypeId) override#
Returns service instance pointer.
If service was not registered or was registered as transient, method returns null
-
virtual const OneOrList<ServiceInstance> *tryGetInstances(TypeId serviceTypeId) override#
Returns service instances.
If service instance was not registered or was registered as transient, method returns null
-
virtual ServiceInstance createInstance(TypeId serviceTypeId) override#
Creates service instance unique pointer, might throw exception.
If service was not registered or was registered as scoped/singleton, method throw exception
- Throws:
sb::di::ServiceNotFoundException –
-
virtual ServiceInstance tryCreateInstance(TypeId serviceTypeId) override#
Creates service instance unique pointer, might be null.
If service was not registered or was registered as scoped/singleton, method returns invalid instance
-
virtual std::optional<OneOrList<ServiceInstance>> tryCreateInstances(TypeId serviceTypeId) override#
Creates service instances.
If service was not registered or was registered as scoped/singleton, method returns null option
-
virtual ServiceInstance createInstanceInPlace(TypeId serviceTypeId) override#
Creates service instance in place, might throw exception.
If service was not registered or was registered as scoped/singleton, method throws exception
- Throws:
sb::di::ServiceNotFoundException –
-
virtual ServiceInstance tryCreateInstanceInPlace(TypeId serviceTypeId) override#
Creates service instance in place.
If service was not registered or was registered as scoped/singleton, method returns invalid instance
-
void clear()#
-
using Ptr = std::unique_ptr<ServiceInstanceProvider>#