changeset 24:37f6991465b0

update
author mir3636
date Thu, 16 Feb 2017 08:03:49 +0900
parents c8bfa1f18b9e
children 327435666caa
files final_main/chapter3.tex presen/slide.html presen/slide.md
diffstat 3 files changed, 41 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/final_main/chapter3.tex	Thu Feb 16 07:29:34 2017 +0900
+++ b/final_main/chapter3.tex	Thu Feb 16 08:03:49 2017 +0900
@@ -39,7 +39,7 @@
 
 \section{interface の記述}
 
-interface を記述することで Context から Code Gear が呼び出せるようになった。
+interface を記述することで Context を通して Code Gear が参照できるようになった。
 create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。
 return で interface を返し、その先で指定した Code Gear へ継続できるようになる。
 
--- a/presen/slide.html	Thu Feb 16 07:29:34 2017 +0900
+++ b/presen/slide.html	Thu Feb 16 08:03:49 2017 +0900
@@ -87,7 +87,7 @@
 <!-- === begin markdown block ===
 
       generated by markdown/1.2.0 on Ruby 2.2.0 (2014-12-25) [x86_64-darwin13]
-                on 2017-02-16 07:29:20 +0900 with Markdown engine kramdown (1.9.0)
+                on 2017-02-16 08:03:24 +0900 with Markdown engine kramdown (1.9.0)
                   using options {}
   -->
 
@@ -204,6 +204,25 @@
         goto clearSingleLinkedStack(context, stack, next);
 }
 </code></pre>
+<p lang="impl"># interface の記述
+- interface を記述することで Context を通して Code Gear が参照できるようになった。
+- create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。
+- return で interface を返し、その先で指定した Code Gear へ継続できるようになる。</p>
+<pre><code>Stack* createSingleLinkedStack(struct Context* context) {
+    struct Stack* stack = new Stack();
+    struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack();
+    stack-&gt;stack = (union Data*)singleLinkedStack;
+    singleLinkedStack-&gt;top = NULL;
+    stack-&gt;push = C_pushSingleLinkedStack;
+    stack-&gt;pop  = C_popSingleLinkedStack;
+    stack-&gt;pop2  = C_pop2SingleLinkedStack;
+    stack-&gt;get  = C_getSingleLinkedStack;
+    stack-&gt;get2  = C_get2SingleLinkedStack;
+    stack-&gt;isEmpty = C_isEmptySingleLinkedStack;
+    stack-&gt;clear = C_clearSingleLinkedStack;
+    return stack;
+}
+</code></pre>
 
 
 </div>
--- a/presen/slide.md	Thu Feb 16 07:29:34 2017 +0900
+++ b/presen/slide.md	Thu Feb 16 08:03:49 2017 +0900
@@ -80,6 +80,26 @@
         goto clearSingleLinkedStack(context, stack, next);
 }
 ```
+# interface の記述
+- interface を記述することで Context を通して Code Gear が参照できるようになった。
+- create は関数呼び出しで呼び出され、interface と impliment の初期化と Code Gear のポインタの設定を行う。
+- return で interface を返し、その先で指定した Code Gear へ継続できるようになる。
+```impl
+Stack* createSingleLinkedStack(struct Context* context) {
+    struct Stack* stack = new Stack();
+    struct SingleLinkedStack* singleLinkedStack = new SingleLinkedStack();
+    stack->stack = (union Data*)singleLinkedStack;
+    singleLinkedStack->top = NULL;
+    stack->push = C_pushSingleLinkedStack;
+    stack->pop  = C_popSingleLinkedStack;
+    stack->pop2  = C_pop2SingleLinkedStack;
+    stack->get  = C_getSingleLinkedStack;
+    stack->get2  = C_get2SingleLinkedStack;
+    stack->isEmpty = C_isEmptySingleLinkedStack;
+    stack->clear = C_clearSingleLinkedStack;
+    return stack;
+}
+```
 
 # Context、stub Code Segment の自動生成
 - Gears OS では通常の計算の他に Context や stub などの meta computation を記述する必要がある。