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