2 @page engine_controller Engine Controller module
\r
5 Engine Controller module provides encapsulated multi-thread environment plus its control.<br>
\r
7 @image html overview_engine_controller.png "Software architecture of Engine Controller module"
\r
9 It uses an internal object called "Task", and it contains
\r
10 - A pointer to a user-registered function
\r
11 - Input/output parameters of the function and relationship to other Tasks
\r
13 Engine Controller provides two kinds of Tasks - Sync and Async.
\r
14 - Sync Tasks return after execution finish.
\r
15 - Async Tasks return before execution finish, and afterwards call user-specified callback when the execution finished.
\r
17 User need to define and register expected Tasks in advnace before using it.<br>
\r
18 And by registering queueing rule connected to user Tasks, user may control their processing order.<br>
\r
19 For example, precedent condition such as "Task B should be executed after Task A has finished." can be specified.
\r
21 Engine Controller module has following sub implementations with each corresponding roles.<br>
\r
22 - <b>Task generator</b><br>
\r
23 Provides APIs to generate and register Task object, and to register between-Tasks relationship called "Queuing rule".<br>
\r
25 - <b>Task Manager</b><br>
\r
26 Manages user-registered Tasks and their relationship with other Tasks internally.<br>
\r
28 - <b>Task Executor</b><br>
\r
29 Executes/cancels user-registerd Tasks on demand.<br>
\r