solinject  1.0.0
C++17 Dependency Injection header-only library
sol::di::impl::ScopedServiceBuilders Class Reference

Scoped DI service builders collection. More...

#include <ScopedServiceBuilders.hpp>

Public Types

template<class T >
using Factory = typename IServiceTyped< T >::Factory
 Factory function that accepts a reference to a DI container and returns a pointer to an instance of a service. More...
 
template<class T >
using ServicePtr = typename IServiceTyped< T >::ServicePtr
 Pointer to an instance of a service. More...
 
using DIServicePtr = std::shared_ptr< IService >
 Pointer to a IService instance.
 
using ScopedServiceBuilderPtr = std::shared_ptr< IScopedServiceBuilder >
 Pointer to a scoped service builder.
 
using RegisteredServicesMap = std::map< std::type_index, std::vector< DIServicePtr > >
 Map of registered DI services.
 
using RegisteredServiceBuildersMap = std::map< std::type_index, std::vector< ScopedServiceBuilderPtr > >
 Map of registered DI service builders.
 

Public Member Functions

template<class T >
void RegisterScopedService (Factory< T > factory)
 Registers a scoped service. More...
 
void RegisterScopedService (std::type_index type, ScopedServiceBuilderPtr serviceBuilder)
 Registers a scoped service. More...
 
RegisteredServicesMap BuildDIServices () const
 Builds DI services. More...
 

Detailed Description

Scoped DI service builders collection.

Member Typedef Documentation

◆ Factory

template<class T >
using sol::di::impl::ScopedServiceBuilders::Factory = typename IServiceTyped<T>::Factory

Factory function that accepts a reference to a DI container and returns a pointer to an instance of a service.

Template Parameters
Tservice type

◆ ServicePtr

Pointer to an instance of a service.

Template Parameters
Tservice type

Member Function Documentation

◆ BuildDIServices()

RegisteredServicesMap sol::di::impl::ScopedServiceBuilders::BuildDIServices ( ) const
inline

Builds DI services.

Returns
registered services map

◆ RegisterScopedService() [1/2]

template<class T >
void sol::di::impl::ScopedServiceBuilders::RegisterScopedService ( Factory< T >  factory)
inline

Registers a scoped service.

Template Parameters
Tservice type
Parameters
factoryfactory function

◆ RegisterScopedService() [2/2]

void sol::di::impl::ScopedServiceBuilders::RegisterScopedService ( std::type_index  type,
ScopedServiceBuilderPtr  serviceBuilder 
)
inline

Registers a scoped service.

Parameters
typeservice type
serviceBuilderservice builder

The documentation for this class was generated from the following file: