Skip to content

Commit 4b9f097

Browse files
committed
update docs and injected class
1 parent 6531d3f commit 4b9f097

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

Docs/advanced-guides/injected-utility-class.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ Injected Utility Class
44
Library provides also Injected_ utility class.
55
This base class has inject() method that can be used to inject services in simple inline way, also
66
there are InjectedSingleton, InjectedScoped and InjectedTransient base classes that are inheriting
7-
from Injected and Registered classes to combine these two features
7+
from Injected and Registered classes to combine these two features. Injected class has also method
8+
getProvider(), raw provider can be used to get keyed services for example.
89

910
.. _Injected: ../reference/di/utils/injected.html
1011

Docs/advanced-guides/register-utility-class.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Register Utility Class
22
========================================
33

44
Library provides simple template RegisterService_ utility class.
5-
This base class can be used to automatically register class in service collection with use of specjalized TRegisterer.
5+
This base class can be used to automatically register class in service collection with use of specialised TRegisterer.
66
There are already created aliases RegisterSingleton_, RegisterScoped_, RegisterTransient_ that are registering services
77
in GlobalServices_ singleton.
88

Examples/Guides/InjectedUtilityClass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class ServiceExecutor final : public InjectedScoped<IServiceExecutor, ServiceExe
3535

3636
[[nodiscard]] std::string execute() const override
3737
{
38+
ServiceProvider &provider = getProvider(); // access also provider
3839
return _serviceA.actionA() + ", " + _serviceB->actionB() + " executed.";
3940
}
4041
};

Include/SevenBit/DI/Utils/Injected.hpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
#pragma once
22

3-
#include <type_traits>
4-
53
#include "SevenBit/DI/LibraryConfig.hpp"
64

75
#include "SevenBit/DI/Utils/Register.hpp"
@@ -11,12 +9,16 @@ namespace sb::di
119
{
1210
struct Injected
1311
{
14-
explicit Injected(ServiceProvider &provider) : provider(provider) {}
12+
private:
13+
ServiceProvider &_provider;
14+
15+
public:
16+
explicit Injected(ServiceProvider &provider) : _provider(provider) {}
1517

1618
protected:
17-
ServiceProvider &provider;
19+
[[nodiscard]] ServiceProvider &getProvider() const { return _provider; }
1820

19-
[[nodiscard]] ServiceExtractor inject() const { return ServiceExtractor{provider}; }
21+
[[nodiscard]] ServiceExtractor inject() const { return ServiceExtractor{getProvider()}; }
2022
};
2123

2224
template <class TService, class TImplementation = TService>

0 commit comments

Comments
 (0)