TECS の Simple な Sample 2012年 6月17日 【ライセンス】 本ソフトウェアについて、簡単なものであり、個々のファイルにはライセンス 条件を記載していませんが、TOPPERS ライセンスに準じます。 【概要】 TECS のもっとも単純なサンプルです。 exerb 版の TECS ジェネレータと cygwin 版の gcc だけで動作します。Linux などの POSIX 環境でも動作しま す。 exerb 版で動作しますので、Ruby や racc のインストールする必要がありま せん。 【動作環境】 cygwin 上でビルドし動作します。2012.6.2 に発行された tecs_package (TECS ジェネレータ V1.1.0.4 を同梱) を用いてください。exerb 版を用いる ようになっているため、Ruby インタープリターは不要です。 exerb 版とは ruby インタプリタと TECS ジェネレータが一体の exe 化さ れたもので、ruby インタプリタのインストールを必要としません。 Linux などの POSIX 環境でも動作させることができます。その場合 Makefile の TECSGEN_EXE を tecsgen.exe から tecsgen に変更してください。Ruby 1.8 がインストールされている必要があります。Ruby 1.9 には対応しません。 【準備】 1) ファイルの展開 tecs_package ディレクトリの直下 asp+tecs, tecsgen の並びに SimpleSample を置いてください。exerb 版を用いる都合上、tecsgen コマン ド引数に与えるパスは、すべて相対パスで指定しています。 tecs_package-+- asp+tecs | +- tecsgen | +- SimpleSample -+- SimpleSample (※) | +- SimpleSampleTrace | +- SimpleSampleOpaqueRPC | +- SimpleSampleTransparentRPC ※ svn の trunk のディレクトリの位置に対応します。名前は変更しても構いません。 2) パスの設定 cygwin コンソールを開き、以下のような方法で set_env.sh 内の PATH 等を 取り込みます。 % cd tecs_package/tecsgen % source set_env.sh exerb 版を使用するため、TECS ジェネレータのビルドは不要です。 【ビルドと実行】 3) 直接結合版のビルドと実行 ・ビルド % cd tecs_package/SimpleSample/SimpleSample % make tecs % make all ・実行 % ./SimpleSample.exe 4) 直接結合の TracePlugin あり版のビルドと実行 % cd tecs_package/SimpleSample/SimpleSampleTrace % make tecs % make all ・実行 % ./SimpleSample.exe 5) transparent RPC 版のビルドと実行 ・ビルド % cd tecs_package/SimpleSample/SimpleSampleTransparentRPC % make tecs % make all ・実行 % ./SimpleSample.exe 実行後、サーバー側のタスクが終了しないため、プロセスが終了しません。 ctrl-C で終了させてください。 わかりにくいですが、Simple と Sample は異なるタスクで実行されています。 6) opaque RPC 版のビルドと実行 ・ビルド % cd tecs_package/SimpleSample/SimpleSampleOpaqueRPC % make tecs % make all ・実行 2つの cygwin コンソールを使います。 1 つ目のコンソールでサーバー側を起動します。 % ./rSample/SimpleSample-rSample.exe 次に 2 つ目のコンソールでクライアント側を起動します。 % cd tecs_package/SimpleSample/SimpleSampleOpaqueRPC % ./rSimple/SimpleSample-rSimple.exe 終了後、サーバー側のプロセスは transparent RPC と同様終了しないため、 ctrl-C で終了させてください。 Sample(サーバー) のメッセージが Simple(クライアント) 側で出力されます が、これは out 引数で返されたものを表示しているためです。 【ポイント】 ポイントは、各 CDL 内の tSimple, tSample の定義、セルタイプコード tSimple.c, tSample.c は、まったく無変更で 4 つのパターンに対応している ことです。再利用が図られることがわかります。 【次のステップ】 うまく動いたら、次のステップとしてやってみることを記します。 ・シグニチャ sSample に関数を追加する まずは、これの手順を理解しましょう。 ・もう一組インスタンスを設ける 【cygwin_kernel について】 cygwin 上で pthread を用いた tTask 等のセルタイプを用意していますが、 テストドライバーまたはスタブであり、ほとんど機能は備わっていません。