solinject
1.0.0
C++17 Dependency Injection header-only library
|
Go to the documentation of this file.
28 namespace sol::di::impl
74 return std::static_pointer_cast<T>(service);
#define solinject_assert(expression)
assert() macro, which is disabled in tests project.
Definition: Defines.hpp:34
Dependency Injection container.
Definition: Container.hpp:48
DI service interface.
Definition: IServiceTyped.hpp:32
#define solinject_req_assert(expression)
Required assert, which is disabled only when the assert() macro from assert.h is disabled.
Definition: Defines.hpp:41
sol::di::Container Container
DI container.
Definition: IService.hpp:35
Base for the DI service classes.
Definition: ServiceBase.hpp:35
typename std::shared_ptr< TServiceParents > ServicePtr
Pointer to an instance of a service.
Definition: IServiceTyped.hpp:36
bool m_IsLocked
Field that indicates if the DI service is "locked".
Definition: ServiceBase.hpp:86
virtual VoidPtr GetServiceAsVoidPtr(const Container &container)=0
Resolves a service.
virtual ServicePtr GetService(const Container &container)
Resolves the service and checks for circular dependencies.
Definition: ServiceBase.hpp:58
typename std::function< ServicePtr(const Container &)> Factory
Factory function that accepts a reference to a DI container and returns a pointer to an instance of a...
Definition: IServiceTyped.hpp:42
Exception that is thrown when a circular dependency is detected.
Definition: CircularDependencyException.hpp:30