3
|
1 #include "TaskManager.h"
|
|
2
|
67
|
3 TaskManager::TaskManager(int num) : machineNum(num) {}
|
3
|
4
|
194
|
5 TaskManager::~TaskManager(void)
|
|
6 {
|
|
7 delete m_impl;
|
|
8 }
|
|
9
|
3
|
10 /**
|
|
11 * create_impl(int);
|
|
12 *
|
109
|
13 * [cell版] ../../Cell/CellTaskManagerImpl.cpp
|
|
14 * [fifo版] ../../Fifo/FifoTaskManagerImpl.cpp
|
|
15 * で定義されています。コンパイル時に
|
3
|
16 *
|
109
|
17 * % make cell ってすると cell 版が、
|
|
18 * % make fifo ってすると fifo 版 がリンクされるようにしているので
|
|
19 * それに応じて create_impl が返す値を変えています。
|
|
20 * cell だったら CellManagerImpl, fifo だったら FifoManagerImpl です。
|
3
|
21 *
|
109
|
22 * 今までは ifdef CELL とか書いてましたわ。どっちがいいかね
|
3
|
23 *
|
109
|
24 * てか、普通に TaskManagerImpl に関数持たせた方が早いか・・・?
|
3
|
25 */
|
|
26 extern TaskManagerImpl* create_impl(int);
|
|
27
|
|
28 void
|
|
29 TaskManager::init(void)
|
|
30 {
|
|
31 m_impl = create_impl(machineNum);
|
|
32 m_impl->init();
|
109
|
33 m_impl->systask_init();
|
3
|
34 }
|
|
35
|
20
|
36 void
|
|
37 TaskManager::finish(void)
|
|
38 {
|
|
39 delete m_impl;
|
|
40 }
|
|
41
|
3
|
42 /**
|
109
|
43 * @param [command] Task executes method number
|
3
|
44 *
|
|
45 * @return this task
|
|
46 */
|
|
47 HTaskPtr
|
109
|
48 TaskManager::create_task(int cmd)
|
3
|
49 {
|
109
|
50 return m_impl->create_task(cmd);
|
3
|
51 }
|
|
52
|
|
53 void
|
|
54 TaskManager::run(void)
|
|
55 {
|
|
56 m_impl->run();
|
|
57 }
|