diff options
-rw-r--r-- | examples/basic/src/bootstrap.cpp | 16 | ||||
-rw-r--r-- | examples/basic/src/bootstrap.hpp | 2 | ||||
-rw-r--r-- | include/yacppdic/auto_wirable.hpp | 6 | ||||
-rw-r--r-- | include/yacppdic/container.hpp | 15 | ||||
-rw-r--r-- | include/yacppdic/detail/auto_wirable-impl.hpp | 6 | ||||
-rw-r--r-- | include/yacppdic/detail/container-impl.hpp | 12 | ||||
-rw-r--r-- | include/yacppdic/detail/internal/wrapper/object_wrapper.hpp | 6 | ||||
-rw-r--r-- | test/container.test.cpp | 2 |
8 files changed, 35 insertions, 30 deletions
diff --git a/examples/basic/src/bootstrap.cpp b/examples/basic/src/bootstrap.cpp index 104cf51..507cde7 100644 --- a/examples/basic/src/bootstrap.cpp +++ b/examples/basic/src/bootstrap.cpp @@ -12,15 +12,15 @@ #include "hero.hpp" #include "sword.hpp" -auto bootstrap() -> yacppdic::Container +auto bootstrap() -> yacppdic::DIContainer { - auto container = yacppdic::Container(); + auto di_container = yacppdic::DIContainer(); - container.bind<IHero>().to<Hero>(); - container.bind<IWeapon>().to<Sword>(); - container.bind<IEnemyCreator>().to<EnemyCreator>(); + di_container.bind<IHero>().to<Hero>(); + di_container.bind<IWeapon>().to<Sword>(); + di_container.bind<IEnemyCreator>().to<EnemyCreator>(); - container.bind<IEnemyFactory>() + di_container.bind<IEnemyFactory>() .to_factory( []() { @@ -29,7 +29,7 @@ auto bootstrap() -> yacppdic::Container ) .when_tagged<SMALL_ENEMY_TAG>(); - container.bind<IEnemyFactory>() + di_container.bind<IEnemyFactory>() .to_factory( []() { @@ -38,5 +38,5 @@ auto bootstrap() -> yacppdic::Container ) .when_tagged<BIG_ENEMY_TAG>(); - return container; + return di_container; } diff --git a/examples/basic/src/bootstrap.hpp b/examples/basic/src/bootstrap.hpp index 9febbd9..964a3d7 100644 --- a/examples/basic/src/bootstrap.hpp +++ b/examples/basic/src/bootstrap.hpp @@ -2,4 +2,4 @@ #include <yacppdic/container.hpp> -auto bootstrap() -> yacppdic::Container; +auto bootstrap() -> yacppdic::DIContainer; diff --git a/include/yacppdic/auto_wirable.hpp b/include/yacppdic/auto_wirable.hpp index ecd240b..288068a 100644 --- a/include/yacppdic/auto_wirable.hpp +++ b/include/yacppdic/auto_wirable.hpp @@ -12,16 +12,16 @@ template <typename Interface, typename ObjectImpl, typename... Dependencies> class AutoWirable { public: - static auto resolve(const Container &container) noexcept + static auto resolve(const DIContainer &container) noexcept -> std::unique_ptr<Interface>; private: template <typename Dependency> requires IsTagged<Dependency> - static auto _get_dependency(const Container &container) noexcept; + static auto _get_dependency(const DIContainer &container) noexcept; template <typename Dependency> - static auto _get_dependency(const Container &container) noexcept; + static auto _get_dependency(const DIContainer &container) noexcept; }; } // namespace yacppdic diff --git a/include/yacppdic/container.hpp b/include/yacppdic/container.hpp index 6191fed..9e5237c 100644 --- a/include/yacppdic/container.hpp +++ b/include/yacppdic/container.hpp @@ -26,7 +26,7 @@ using Bindings = std::unordered_map<ObjectIdentifier, WrapperPtr<IGenericWrapper } // namespace internal -class Container; +class DIContainer; template <typename Interface> class BindingBuilder; @@ -63,18 +63,21 @@ public: auto to_factory(FactoryFunc factory) noexcept -> BindingWhen<Interface>; private: - Container &_container; + DIContainer &_container; internal::Bindings &_bindings; - explicit BindingBuilder(Container &container, internal::Bindings &bindings) noexcept; + explicit BindingBuilder( + DIContainer &container, + internal::Bindings &bindings + ) noexcept; - friend Container; + friend DIContainer; }; -class Container +class DIContainer { public: - Container() noexcept = default; + DIContainer() noexcept = default; template <class Interface> auto bind() noexcept -> BindingBuilder<Interface>; diff --git a/include/yacppdic/detail/auto_wirable-impl.hpp b/include/yacppdic/detail/auto_wirable-impl.hpp index a6b1506..13d2cdf 100644 --- a/include/yacppdic/detail/auto_wirable-impl.hpp +++ b/include/yacppdic/detail/auto_wirable-impl.hpp @@ -7,7 +7,7 @@ namespace yacppdic template <typename Interface, typename ObjectImpl, typename... Dependencies> auto AutoWirable<Interface, ObjectImpl, Dependencies...>::resolve( - const Container &container + const DIContainer &container ) noexcept -> std::unique_ptr<Interface> { return std::make_unique<ObjectImpl>(_get_dependency<Dependencies>(container)...); @@ -17,7 +17,7 @@ template <typename Interface, typename ObjectImpl, typename... Dependencies> template <typename Dependency> requires IsTagged<Dependency> auto AutoWirable<Interface, ObjectImpl, Dependencies...>::_get_dependency( - const Container &container + const DIContainer &container ) noexcept { return container.get_tagged<typename Dependency::Target, Dependency::get_tag()>(); @@ -26,7 +26,7 @@ auto AutoWirable<Interface, ObjectImpl, Dependencies...>::_get_dependency( template <typename Interface, typename ObjectImpl, typename... Dependencies> template <typename Dependency> auto AutoWirable<Interface, ObjectImpl, Dependencies...>::_get_dependency( - const Container &container + const DIContainer &container ) noexcept { return container.get<Dependency>(); diff --git a/include/yacppdic/detail/container-impl.hpp b/include/yacppdic/detail/container-impl.hpp index 5d74616..3624031 100644 --- a/include/yacppdic/detail/container-impl.hpp +++ b/include/yacppdic/detail/container-impl.hpp @@ -34,7 +34,7 @@ void BindingWhen<Interface>::when_tagged() noexcept template <typename Interface> BindingBuilder<Interface>::BindingBuilder( - Container &container, + DIContainer &container, internal::Bindings &bindings ) noexcept : _container(container), _bindings(bindings) @@ -75,14 +75,14 @@ auto BindingBuilder<Interface>::to_factory(FactoryFunc factory) noexcept } template <typename Interface> -auto Container::bind() noexcept -> BindingBuilder<Interface> +auto DIContainer::bind() noexcept -> BindingBuilder<Interface> { return BindingBuilder<Interface>(*this, _bindings); } template <typename Interface> requires Abstract<Interface> -auto Container::get() const noexcept -> std::unique_ptr<Interface> +auto DIContainer::get() const noexcept -> std::unique_ptr<Interface> { auto object_identifier = internal::ObjectIdentifier::create<Interface>(); @@ -103,7 +103,7 @@ auto Container::get() const noexcept -> std::unique_ptr<Interface> template <typename AFactory> requires IsFactory<AFactory> -auto Container::get() const noexcept -> AFactory +auto DIContainer::get() const noexcept -> AFactory { auto object_identifier = internal::ObjectIdentifier::create<AFactory>(); @@ -123,7 +123,7 @@ auto Container::get() const noexcept -> AFactory template <class Interface, Tag tag> requires Abstract<Interface> -auto Container::get_tagged() const noexcept -> std::unique_ptr<Interface> +auto DIContainer::get_tagged() const noexcept -> std::unique_ptr<Interface> { auto object_identifier = internal::ObjectIdentifier::create<Interface, tag>(); @@ -145,7 +145,7 @@ auto Container::get_tagged() const noexcept -> std::unique_ptr<Interface> template <typename AFactory, Tag tag> requires IsFactory<AFactory> -auto Container::get_tagged() const noexcept -> AFactory +auto DIContainer::get_tagged() const noexcept -> AFactory { auto object_identifier = internal::ObjectIdentifier::create<AFactory, tag>(); diff --git a/include/yacppdic/detail/internal/wrapper/object_wrapper.hpp b/include/yacppdic/detail/internal/wrapper/object_wrapper.hpp index f3c5e87..19bcf1a 100644 --- a/include/yacppdic/detail/internal/wrapper/object_wrapper.hpp +++ b/include/yacppdic/detail/internal/wrapper/object_wrapper.hpp @@ -13,12 +13,14 @@ template <class Interface, class ObjectImpl> class ObjectWrapper : public IWrapper<std::unique_ptr<Interface>> { public: - explicit ObjectWrapper(const Container &container) noexcept : _container(container) {} + explicit ObjectWrapper(const DIContainer &container) noexcept : _container(container) + { + } [[nodiscard]] auto get() const noexcept -> std::unique_ptr<Interface> override; private: - const Container &_container; + const DIContainer &_container; }; } // namespace yacppdic::internal diff --git a/test/container.test.cpp b/test/container.test.cpp index 54290ea..ec3e332 100644 --- a/test/container.test.cpp +++ b/test/container.test.cpp @@ -6,7 +6,7 @@ TEST(ContainerTest, BindAndGet) { - auto container = yacppdic::Container(); + auto container = yacppdic::DIContainer(); class IObject { |