changeset 6:05e384a4e00b

task
author aaa
date Sat, 26 Sep 2009 02:49:43 +0900
parents c6fc9fb5ca9d
children e5fb71cb32c3
files presen/presen.html
diffstat 1 files changed, 95 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/presen/presen.html	Sat Sep 26 01:57:10 2009 +0900
+++ b/presen/presen.html	Sat Sep 26 02:49:43 2009 +0900
@@ -144,6 +144,94 @@
 
 <div class="slide" id="id1">
 <h1>Task の作り方</h1>
+<p>SchedTask を継承した class を作る</p>
+<table border="1">
+<tr>
+<td>
+<pre>
+// SpeTask.h
+
+class SpeTask : public SchedTask {
+    SchedConstructor( SpeTask );
+
+    int run(TaskManager *manager, void *rbuf, void *wbuf);
+};
+
+</pre>
+</td>
+</tr>
+</table>
+<p>run 関数は Task における main 関数のようなもの</p>
+<p>SchedConstructor() で class 名を登録する</p>
+</div>
+
+<div class="slide" id="id1">
+<h1>Task の作り方(Con't)</h1>
+<p>SpeTask.cc で SchedDefineTask( SpeTask ); と書く
+<br>spe というディレクトリの下に task_init() という関数を定義したファイルを用意する</p>
+<table border="1"><tr><td>
+<pre>
+#include "Func.h"
+#include "SchedTask.h"
+
+SchedExternTask(SpeTask);
+
+void
+task_init()
+{
+    SchedRegisterTask(TASK_SPE, SpeTask);
+}
+</pre>
+</td></tr></table>
+</div>
+
+<div class="slide" id="id1">
+<h1>Task の作り方(Con't)</h1>
+<p>SchedRegisterTask(TASK_SPE, SpeTask) で SpeTask に TASK_SPE という ID をつけて登録します<br><br>
+TASK_SPE は Func.h で enum で定義されています。</p>
+<p>これで Task 生成の下準備は終わりです</p>
+</div>
+
+
+<div class="slide" id="id1">
+<h1>Task の作り方(Con't)</h1>
+<br>
+<table border="1"><tr><td>
+<pre>
+/* 先ほど登録した ID を指定して Task を生成 */
+HTaskPtr task = manager->create_task(TASK_SPE);
+
+/* 入出力先の指定 */
+task->add_inData(rbuff, rbuff_SIZE);
+task->add_outData(wbuff, wbuff_SIZE);
+
+/* CPU の指定 */
+task->set_cpu(SPE_ANY);
+
+/* Task の投入 */
+task->spawn();
+</pre>
+</td></tr></table>
+</div>
+
+<div class="slide" id="id1">
+<h1>Task の作り方(Con't)</h1>
+<p>Task は依存関係を記述する事ができる</p>
+<table border="1"><tr><td>
+<pre>
+/* taskB は taskA が終わるまで待つ */
+taskB->wait_for(taskA);
+
+/* taskC は taskB が終わるまで待つ */
+taskC->wait_for(taskB);
+</pre>
+</td></tr></table>
+
+
+</div>
+
+<div class="slide" id="id1">
+<h1></h1>
 <p>
 
 </p>
@@ -155,3 +243,10 @@
 
 </p>
 </div>
+
+<div class="slide" id="id1">
+<h1></h1>
+<p>
+
+</p>
+</div>