version 1.13, 2000/10/11 20:34:28 |
version 1.15, 2000/11/21 07:59:08 |
|
|
# Author: 小原功任 @ 金沢大学理学部計算科学教室 |
# Author: 小原功任 @ 金沢大学理学部計算科学教室 |
# URI: http://omega.s.kanazawa-u.ac.jp/ohara/ |
# URI: http://omega.s.kanazawa-u.ac.jp/ohara/ |
# $OpenXM: OpenXM/src/ox_toolkit/README,v 1.12 2000/10/10 06:52:13 ohara Exp $ |
# $OpenXM: OpenXM/src/ox_toolkit/README,v 1.14 2000/11/20 17:59:34 ohara Exp $ |
|
|
/*&ja ox_toolkit ユーザガイド |
/*&ja ox_toolkit ユーザガイド |
|
|
Line 571 then the parser returns NULL. |
|
Line 571 then the parser returns NULL. |
|
*/ |
*/ |
/*&ja |
/*&ja |
|
|
7. Mathcap データベース |
7. Mathcap クラス |
|
データベース |
|
|
7.1. メソッド |
7.1. 概要 |
|
|
Mathcap データベースは mathcap.c で実装されている。ユーザは次の関数を |
Mathcap クラスは OpenXM アプリケーションの Mathcap を表現するクラスで |
介して、Mathcap データベースにアクセスすることができる。 |
ある。これは cmo_mathcap とは別物である。Mathcap クラスのインスタンス |
|
は各通信路ごとに生成され、OXFILE クラスのメンバになる。このことは、複 |
|
数の計算プロセスと同時に通信するクライアントを作成するためである。さて、 |
|
Mathcap クラスは、静的メンバももつ。これら静的メンバは、通信路から独立 |
|
した、 OpenXM アプリケーション自体の情報を保持するために用いられる。また。 |
|
インスタンスの生成時にもその情報は利用される。 |
|
|
void mathcap_sysinfo_set(int version, char *id, char *sysname); |
7.2. メソッド |
|
|
Mathcap データベースの(一部)を初期化する。クライアントおよびサーバは |
Mathcap クラスは mathcap.c で実装されている。ユーザは次の関数を介して、 |
プログラム開始のときにこの関数を呼ばなければならない。 |
Mathcap クラスにアクセスすることができる。 |
|
|
cmo_mathcap *mathcap_get(); |
void mathcap_init(int version, char *id, char *sysname, int cmo[], sm_cmd[]); |
|
|
Mathcap データベースから cmo_mathcap オブジェクトを得る。 |
静的メンバを初期化する。Mathcap クラスのインスタンスを生成するまえに、 |
|
したがって、クライアントおよびサーバはプログラムを開始するときに、この |
|
関数を呼ばなければならない。cmo は、そのアプリケーションの利用する CMO |
|
のタグのリストであって、0 で終端しなければならない。NULL のときには既 |
|
定値が用いられる。sm_cmd も同様。 |
|
|
cmo_list *mathcap_cmo_get_allow_all(); |
cmo_mathcap *mathcap_get(mathcap *this); |
cmo_list *mathcap_sm_get_all(); |
|
cmo_list *mathcap_sysinfo_get_all(); |
|
|
|
これらは cmo_mathcap *mathcap_get() の内部で呼ばれている関数である。 |
Mathcap クラスのインスタンスを cmo_mathcap クラスのインスタンスに変換する。 |
|
|
int mathcap_cmo_isallow_cmo(cmo *ob); |
mathcap *mathcap_update(mathcap *this, cmo_mathcap *mc); |
|
|
与えられた cmo が送信許可されているかを調べる。 |
通信相手から入手した cmo_mathcap オブジェクトを用いて、Mathcap クラスの |
|
インスタンスを更新する。 |
|
|
void mathcap_cmo_allow(int tag); |
|
void mathcap_cmo_deny(int tag); |
|
void mathcap_cmo_deny_all(); |
|
void mathcap_cmo_allow_all(); |
|
|
|
cmo の送信制御。 |
|
|
|
7.2. ox_toolkit における実装の問題点 |
|
|
|
現在はシステム全体で一つの Mathcap データベースしかもたないような実装 |
|
になっている。ところが、OpenXM クライアントは複数の計算サーバと同時に |
|
接続されることが許されている。これらの計算サーバは同種あるいは異種であ |
|
るが、異種の場合、それら OX サーバの許容する CMO の範囲は異なる。した |
|
がって、計算サーバごとに Mathcap データベースをもつ必要がある。具体的 |
|
には OXFILE クラスの(static ではない)メンバになるような実装でなければ |
|
ならない。 |
|
*/ |
*/ |
/*&ja |
/*&ja |
|
|