Skip to content

Commit 40813b4

Browse files
committed
update documentation and examples
1 parent 0f62447 commit 40813b4

File tree

12 files changed

+125
-68
lines changed

12 files changed

+125
-68
lines changed

Docs/advanced-guides.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,7 @@ Advanced Guides
99
advanced-guides/external-singleton
1010
advanced-guides/keyed-services
1111
advanced-guides/using-aliases
12+
advanced-guides/register-utility-class
13+
advanced-guides/injected-utility-class
1214
advanced-guides/configuring-service-provider
1315
advanced-guides/building-library
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Injected Utility Class
2+
========================================
3+
4+
Library provides also Injected_ utility class.
5+
This base class has inject() method that can be used to inject services in simple inline way, also
6+
there are InjectedSingleton, InjectedScoped and InjectedTransient base classes that are inheriting
7+
from Injected and Registered classes to combine these two features
8+
9+
.. note::
10+
Class should inherit Injected constructor with 'using Injected::Injected;' in public section
11+
12+
.. literalinclude:: ../../Examples/Guides/InjectedUtilityClass.cpp
13+
:caption: Examples/Guides/InjectedUtilityClass
14+
:language: C++
15+
16+
.. code-block:: console
17+
:caption: Output
18+
19+
actionA, actionB executed.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
Injected Utility Class
2+
========================================
3+
4+
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:
6+
There are already created aliases RegisterSingleton_, RegisterScoped_, RegisterTransient_ that are registering services
7+
in GlobalServices_ singleton.
8+
9+
.. note::
10+
Class should inherit Injected constructor with 'using Injected::Injected;' in public section
11+
12+
.. _RegisterService: ../reference/di/utils/register.html
13+
.. _RegisterSingleton: ../reference/di/utils/register.html
14+
.. _RegisterScoped: ../reference/di/utils/register.html
15+
.. _RegisterTransient: ../reference/di/utils/register.html
16+
.. _GlobalServices: ../reference/di/utils/globalservices.html
17+
18+
.. literalinclude:: ../../Examples/Guides/RegisterUtilityClass.cpp
19+
:caption: Examples/Guides/RegisterUtilityClass
20+
:language: C++
21+
22+
.. code-block:: console
23+
:caption: Output
24+
25+
actionA_, actionB executed.

Docs/reference.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Reference
66
:titlesonly:
77

88
reference/di
9+
reference/di/utils
910
reference/di/details/containers
1011
reference/di/details/core
1112
reference/di/details/factories

Docs/reference/di/details/utils/meta.rst

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,3 @@ Meta
2828
.. doxygenstruct:: sb::di::details::RemoveUniquePtr< std::unique_ptr< T > >
2929
:members:
3030
:undoc-members:
31-
32-
.. doxygenstruct:: sb::di::details::IsInPlaceObject
33-
:members:
34-
:undoc-members:
35-
36-
.. doxygenstruct:: sb::di::details::IsInPlaceObjectConstructable
37-
:members:
38-
:undoc-members:

Docs/reference/di/utils.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
sb::di - Utils
2+
========================================
3+
4+
.. toctree::
5+
:maxdepth: 5
6+
:titlesonly:
7+
8+
di/utils/globalservices
9+
di/utils/injected
10+
di/utils/register
11+
di/utils/serviceextractor
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
GlobalServices
2+
========================================
3+
4+
.. doxygenstruct:: sb::di::GlobalServices
5+
:members:
6+
:undoc-members:
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Injected
2+
========================================
3+
4+
.. doxygenstruct:: sb::di::Injected
5+
:members:
6+
:undoc-members:
7+
8+
.. doxygenstruct:: sb::di::InjectedSingleton
9+
:members:
10+
:undoc-members:
11+
12+
.. doxygenstruct:: sb::di::InjectedScoped
13+
:members:
14+
:undoc-members:
15+
16+
.. doxygenstruct:: sb::di::InjectedTransient
17+
:members:
18+
:undoc-members:
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Register
2+
========================================
3+
4+
.. doxygenstruct:: sb::di::RegisterService
5+
:members:
6+
:undoc-members:
7+
8+
.. doxygenstruct:: sb::di::SingletonRegisterer
9+
:members:
10+
:undoc-members:
11+
12+
.. doxygenstruct:: sb::di::ScopedRegisterer
13+
:members:
14+
:undoc-members:
15+
16+
.. doxygenstruct:: sb::di::TransientRegisterer
17+
:members:
18+
:undoc-members:
19+
20+
.. doxygenstruct:: sb::di::RegisterSingleton
21+
:members:
22+
:undoc-members:
23+
24+
.. doxygenstruct:: sb::di::RegisterScoped
25+
:members:
26+
:undoc-members:
27+
28+
.. doxygenstruct:: sb::di::RegisterTransient
29+
:members:
30+
:undoc-members:
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
ServiceExtractor
2+
========================================
3+
4+
.. doxygenstruct:: sb::di::ServiceExtractor
5+
:members:
6+
:undoc-members:

0 commit comments

Comments
 (0)