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