diff Slide/prosym.html @ 30:33222880db79

update
author mir3636
date Sun, 21 Jan 2018 00:05:37 +0900
parents da3022f9122e
children 7e2ceefcef54
line wrap: on
line diff
--- a/Slide/prosym.html	Sat Jan 20 23:52:11 2018 +0900
+++ b/Slide/prosym.html	Sun Jan 21 00:05:37 2018 +0900
@@ -86,7 +86,7 @@
 <!-- === begin markdown block ===
 
       generated by markdown/1.2.0 on Ruby 2.4.0 (2016-12-24) [x86_64-darwin16]
-                on 2018-01-20 22:57:55 +0900 with Markdown engine kramdown (1.13.2)
+                on 2018-01-21 00:05:29 +0900 with Markdown engine kramdown (1.13.2)
                   using options {}
   -->
 
@@ -216,10 +216,26 @@
 <ul>
   <li>Gears OS は以下の要素で構成される。
     <ul>
-      <li>Context</li>
-      <li>TaskQueue</li>
-      <li>TaskManager</li>
-      <li>Worker</li>
+      <li>Context
+        <ul>
+          <li>使用されるCode/Data Gear のリストを持っておりTaskでもある。</li>
+        </ul>
+      </li>
+      <li>TaskQueue
+        <ul>
+          <li>Task のリストを扱う</li>
+        </ul>
+      </li>
+      <li>TaskManager
+        <ul>
+          <li>Task の依存関係の解決、作成や停止を行います。</li>
+        </ul>
+      </li>
+      <li>Worker
+        <ul>
+          <li>Task の実行を行う</li>
+        </ul>
+      </li>
     </ul>
   </li>
 </ul>
@@ -346,8 +362,16 @@
     stack-&gt;clear = C_clearSingleLinkedStack;
     return stack;
 }
+</code></pre>
 
-__code pushSingleLinkedStack(struct SingleLinkedStack* stack, union Data* data, __code next(...)) {
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="interface--2">Interface の実装例</h1>
+
+<pre lang="impl"><code>__code pushSingleLinkedStack(struct SingleLinkedStack* stack, 
+                                union Data* data, __code next(...)) {
     Element* element = new Element();
     element-&gt;next = stack-&gt;top;
     element-&gt;data = data;
@@ -376,13 +400,20 @@
   <li>そこで Context から必要なデータを取り出して Code Gear に接続する、メタレベルの stub Code Gear を定義し、これを介して間接的に必要な Data Gear にアクセスする。</li>
 </ul>
 
-<pre lang="stub"><code>__code clearSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack,enum Code next) {
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 lang="stub" id="stub-code-gear-">stub Code Gear の例</h1>
+<pre><code>__code clearSingleLinkedStack(struct Context *context,
+                    struct SingleLinkedStack* stack,enum Code next) {
     stack-&gt;top = NULL;
     goto meta(context, next);
 }
 
 __code clearSingleLinkedStack_stub(struct Context* context) {
-        SingleLinkedStack* stack = (SingleLinkedStack*)GearImpl(context, Stack, stack);
+        SingleLinkedStack* stack = 
+                (SingleLinkedStack*)GearImpl(context, Stack, stack);
         enum Code next = Gearef(context, Stack)-&gt;next;
         goto clearSingleLinkedStack(context, stack, next);
 }
@@ -406,7 +437,7 @@
 </div>
 <div class='slide '>
 <!-- _S9SLIDE_ -->
-<h1 id="stub-code-gear-">stub Code Gear の生成</h1>
+<h1 id="stub-code-gear--1">stub Code Gear の生成</h1>
 <ul>
   <li>stub Code Gear は Code Gear 間の継続に挟まれ、Code Gear が必要な Data Gear を Context から取り出す処理を行うものである。</li>
   <li>stub Code Gear は Code Gear 毎に記述する必要があり、そのCode Gear の引数を見て取り出す Data Gear を選択する。</li>
@@ -415,13 +446,21 @@
   <li>cbc ファイルの Code Gear から、生成した stub Code Gear を加えたファイルを生成する。</li>
 </ul>
 
-<pre lang="stub"><code>__code clearSingleLinkedStack(struct Context *context,struct SingleLinkedStack* stack,enum Code next) {
+
+</div>
+<div class='slide '>
+<!-- _S9SLIDE_ -->
+<h1 id="stub-code-gear-1">生成された stub Code Gear</h1>
+
+<pre lang="stub"><code>__code clearSingleLinkedStack(struct Context *context,
+                    struct SingleLinkedStack* stack,enum Code next) {
     stack-&gt;top = NULL;
     goto meta(context, next);
 }
 
 __code clearSingleLinkedStack_stub(struct Context* context) {
-        SingleLinkedStack* stack = (SingleLinkedStack*)GearImpl(context, Stack, stack);
+        SingleLinkedStack* stack = 
+                (SingleLinkedStack*)GearImpl(context, Stack, stack);
         enum Code next = Gearef(context, Stack)-&gt;next;
         goto clearSingleLinkedStack(context, stack, next);
 }
@@ -434,7 +473,6 @@
 <h1 id="context--1">Context の生成</h1>
 
 <ul>
-  <li>Context は Meta Data Gear に相当し、Code Gear や Data Gear を管理している。</li>
   <li>generate_context は context.h から Data Gear、generate_stub から生成されたファイルから Code Gear を取得し、以下を生成する。
     <ul>
       <li>Code/Data Gear を enum で定義した enumCode.h、enumData.h</li>
@@ -445,7 +483,7 @@
 </ul>
 
 <div style="text-align: center;">
- <img src="./fig/generate_context3.pdf" alt="generate_context3" width="900" />
+ <img src="./fig/generate_context3.pdf" alt="generate_context3" width="500" />
 </div>