diff options
author | HampusM <hampus@hampusmat.com> | 2022-05-06 18:23:42 +0200 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2022-05-06 18:23:55 +0200 |
commit | 3957dfb9361e864f6362e59655c885f52b39371f (patch) | |
tree | 5ef55a5eb418664b4a5c0d2d9328ff4ca99a74a7 /examples/basic/src/enemy_creator.hpp | |
parent | d8ea3721d83254e91c5617d83f2aac5a897107fb (diff) |
docs: add tagging to basic examplev0.1.3
Diffstat (limited to 'examples/basic/src/enemy_creator.hpp')
-rw-r--r-- | examples/basic/src/enemy_creator.hpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/examples/basic/src/enemy_creator.hpp b/examples/basic/src/enemy_creator.hpp new file mode 100644 index 0000000..a220008 --- /dev/null +++ b/examples/basic/src/enemy_creator.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include "interfaces/enemy.hpp" +#include "interfaces/enemy_creator.hpp" + +#include <yacppdic/auto_wirable.hpp> +#include <yacppdic/tagged.hpp> + +class EnemyCreator : public IEnemyCreator, + public yacppdic::AutoWirable< + IEnemyCreator, + EnemyCreator, + yacppdic::Tagged<IEnemyFactory, SMALL_ENEMY_TAG>, + yacppdic::Tagged<IEnemyFactory, BIG_ENEMY_TAG>> +{ +public: + EnemyCreator( + IEnemyFactory small_enemy_factory, + IEnemyFactory big_enemy_factory + ) noexcept; + + std::unique_ptr<IEnemy> create_small_enemy() noexcept override; + + std::unique_ptr<IEnemy> create_big_enemy() noexcept override; + +private: + IEnemyFactory _small_enemy_factory; + IEnemyFactory _big_enemy_factory; +}; |