1 | TECS の Simple な Sample
|
---|
2 |
|
---|
3 | 2012年 6月17日
|
---|
4 |
|
---|
5 |
|
---|
6 | 【ライセンス】
|
---|
7 | 本ソフトウェアについて、簡単なものであり、個々のファイルにはライセンス
|
---|
8 | 条件を記載していませんが、TOPPERS ライセンスに準じます。
|
---|
9 |
|
---|
10 | 【概要】
|
---|
11 |
|
---|
12 | TECS のもっとも単純なサンプルです。 exerb 版の TECS ジェネレータと
|
---|
13 | cygwin 版の gcc だけで動作します。Linux などの POSIX 環境でも動作しま
|
---|
14 | す。
|
---|
15 | exerb 版で動作しますので、Ruby や racc のインストールする必要がありま
|
---|
16 | せん。
|
---|
17 |
|
---|
18 | 【動作環境】
|
---|
19 |
|
---|
20 | cygwin 上でビルドし動作します。2012.6.2 に発行された tecs_package
|
---|
21 | (TECS ジェネレータ V1.1.0.4 を同梱) を用いてください。exerb 版を用いる
|
---|
22 | ようになっているため、Ruby インタープリターは不要です。
|
---|
23 |
|
---|
24 | exerb 版とは ruby インタプリタと TECS ジェネレータが一体の exe 化さ
|
---|
25 | れたもので、ruby インタプリタのインストールを必要としません。
|
---|
26 |
|
---|
27 | Linux などの POSIX 環境でも動作させることができます。その場合 Makefile
|
---|
28 | の TECSGEN_EXE を tecsgen.exe から tecsgen に変更してください。Ruby
|
---|
29 | 1.8 がインストールされている必要があります。Ruby 1.9 には対応しません。
|
---|
30 |
|
---|
31 | 【準備】
|
---|
32 |
|
---|
33 | 1) ファイルの展開
|
---|
34 |
|
---|
35 | tecs_package ディレクトリの直下 asp+tecs, tecsgen の並びに
|
---|
36 | SimpleSample を置いてください。exerb 版を用いる都合上、tecsgen コマン
|
---|
37 | ド引数に与えるパスは、すべて相対パスで指定しています。
|
---|
38 |
|
---|
39 | tecs_package-+- asp+tecs
|
---|
40 | |
|
---|
41 | +- tecsgen
|
---|
42 | |
|
---|
43 | +- SimpleSample -+- SimpleSample
|
---|
44 | (※) |
|
---|
45 | +- SimpleSampleTrace
|
---|
46 | |
|
---|
47 | +- SimpleSampleOpaqueRPC
|
---|
48 | |
|
---|
49 | +- SimpleSampleTransparentRPC
|
---|
50 |
|
---|
51 | ※ svn の trunk のディレクトリの位置に対応します。名前は変更しても構いません。
|
---|
52 |
|
---|
53 | 2) パスの設定
|
---|
54 |
|
---|
55 | cygwin コンソールを開き、以下のような方法で set_env.sh 内の PATH 等を
|
---|
56 | 取り込みます。
|
---|
57 |
|
---|
58 | % cd tecs_package/tecsgen
|
---|
59 | % source set_env.sh
|
---|
60 |
|
---|
61 | exerb 版を使用するため、TECS ジェネレータのビルドは不要です。
|
---|
62 |
|
---|
63 | 【ビルドと実行】
|
---|
64 |
|
---|
65 | 3) 直接結合版のビルドと実行
|
---|
66 |
|
---|
67 | ・ビルド
|
---|
68 |
|
---|
69 | % cd tecs_package/SimpleSample/SimpleSample
|
---|
70 | % make tecs
|
---|
71 | % make all
|
---|
72 |
|
---|
73 | ・実行
|
---|
74 |
|
---|
75 | % ./SimpleSample.exe
|
---|
76 |
|
---|
77 | 4) 直接結合の TracePlugin あり版のビルドと実行
|
---|
78 |
|
---|
79 | % cd tecs_package/SimpleSample/SimpleSampleTrace
|
---|
80 | % make tecs
|
---|
81 | % make all
|
---|
82 |
|
---|
83 | ・実行
|
---|
84 |
|
---|
85 | % ./SimpleSample.exe
|
---|
86 |
|
---|
87 | 5) transparent RPC 版のビルドと実行
|
---|
88 |
|
---|
89 | ・ビルド
|
---|
90 |
|
---|
91 | % cd tecs_package/SimpleSample/SimpleSampleTransparentRPC
|
---|
92 | % make tecs
|
---|
93 | % make all
|
---|
94 |
|
---|
95 | ・実行
|
---|
96 |
|
---|
97 | % ./SimpleSample.exe
|
---|
98 |
|
---|
99 | 実行後、サーバー側のタスクが終了しないため、プロセスが終了しません。
|
---|
100 | ctrl-C で終了させてください。
|
---|
101 | わかりにくいですが、Simple と Sample は異なるタスクで実行されています。
|
---|
102 |
|
---|
103 | 6) opaque RPC 版のビルドと実行
|
---|
104 |
|
---|
105 | ・ビルド
|
---|
106 |
|
---|
107 | % cd tecs_package/SimpleSample/SimpleSampleOpaqueRPC
|
---|
108 | % make tecs
|
---|
109 | % make all
|
---|
110 |
|
---|
111 | ・実行
|
---|
112 |
|
---|
113 | 2つの cygwin コンソールを使います。
|
---|
114 | 1 つ目のコンソールでサーバー側を起動します。
|
---|
115 |
|
---|
116 | % ./rSample/SimpleSample-rSample.exe
|
---|
117 |
|
---|
118 | 次に 2 つ目のコンソールでクライアント側を起動します。
|
---|
119 |
|
---|
120 | % cd tecs_package/SimpleSample/SimpleSampleOpaqueRPC
|
---|
121 | % ./rSimple/SimpleSample-rSimple.exe
|
---|
122 |
|
---|
123 | 終了後、サーバー側のプロセスは transparent RPC と同様終了しないため、
|
---|
124 | ctrl-C で終了させてください。
|
---|
125 | Sample(サーバー) のメッセージが Simple(クライアント) 側で出力されます
|
---|
126 | が、これは out 引数で返されたものを表示しているためです。
|
---|
127 |
|
---|
128 | 【ポイント】
|
---|
129 |
|
---|
130 | ポイントは、各 CDL 内の tSimple, tSample の定義、セルタイプコード
|
---|
131 | tSimple.c, tSample.c は、まったく無変更で 4 つのパターンに対応している
|
---|
132 | ことです。再利用が図られることがわかります。
|
---|
133 |
|
---|
134 | 【次のステップ】
|
---|
135 |
|
---|
136 | うまく動いたら、次のステップとしてやってみることを記します。
|
---|
137 |
|
---|
138 | ・シグニチャ sSample に関数を追加する
|
---|
139 | まずは、これの手順を理解しましょう。
|
---|
140 |
|
---|
141 | ・もう一組インスタンスを設ける
|
---|
142 |
|
---|
143 | 【cygwin_kernel について】
|
---|
144 |
|
---|
145 | cygwin 上で pthread を用いた tTask 等のセルタイプを用意していますが、
|
---|
146 | テストドライバーまたはスタブであり、ほとんど機能は備わっていません。
|
---|
147 |
|
---|