DXフレームワーク　リファレンス・マニュアル 0.01 DXフレームワークのリファレンスです。詳細は公式wiki

- メインページ
- 関連ページ
- クラス
- ファイル

- ファイル一覧

Module.h
1 #pragma once
2 #include <memory>
3 #include <functional>
4
5 namespace DXFW
6 {
7 class IModule
8 {
9 public:
10 virtual void Exe() = 0;
11 };
12
13 class PartTimeModule : public IModule
14 {
15 private:
16 std::list< std::shared_ptr<IModule> > modules;
17 std::function<bool()> judge;
18 public:
19 PartTimeModule(IModule *module , std::function<bool()> judge) :
20 judge(judge)
21 {
22 this->Add( module );
23 }
24
25 void Exe( )
26 {
27 if( !judge() ) return;
28
29 for( auto &it : modules )
30 {
31 it->Exe();
32 }
33 };
34
35 void Add( IModule *module )
36 {
37 this->modules.push_back( std::shared_ptr<IModule>(module) );
38 }
39 };
40
41 class FuncModule : public IModule
42 {
43 private:
44 std::function<void()> func;
45 public:
46 FuncModule( std::function<void()> func):
47 func(func)
48 {}
49
50 void Exe()
51 {
52 func();
53 }
54 };
55
56 }
DXFW::IModule
Definition: Module.h:7
DXFW::FuncModule
Definition: Module.h:41
DXFW::PartTimeModule
Definition: Module.h:13