既存のアプリケーションでは、データボックスの参照は、 データボックスのシステムコールを独自に呼び出すことはせずに、 本節で述べるライブラリを通して参照している。
本ライブラリはデータマネージャが認識する、 データの数を減らすために用意されたものである。 1Bではデータマネージャが管理するデータ数の制限があったこと、 ならびに 1 データあたりの管理情報が大きかったために、 このようなライブラリが構築された。
新規アプリケーションの開発では、 とくに以下のライブラリを無理して使用する必要はない。
|
W opendbox(LINK *lnk, W dtyp, W dnum)
LINK *lnk データボックスへのリンク W dtyp 扱うデータのデータタイプ W dnum 扱うデータのデータ番号
= 0 正常終了(データボックスファイルID) < 0 エラー(エラーコード)
以下の処理を行なう。
dopn_dat(NULL) でオープンする。
dtyp で指定したデータタイプ、dnum
で指定したデータ番号のデータを
dget_dtp() で取りだす。EX_DNUM の エラーでかつ lnk ≠ NULL
の時は下記の処理を行い、データを取り出す。
lnk で指定したファイルを dopn_dat() でオープンする。
dtyp, dnum で指定したデータを
dget_dtp() で取り出し、
データの格納されている共有メモリのポインタと大きさを取り出す。
dcls_dat() でクローズする。
0xf0ff のデータ番号のデータが存在する場合は、
そのデータをローカルデータボックスに ddef_ldt() で登録する。
pact_err() により、
"データボックスがオープンできません。" のエラーパネルを表示する。
|
W opendatabox(LINK *lnk, W dtyp, W dnum, W eflg)
LINK *lnk データボックスへのリンク
W dtyp 扱うデータのデータタイプ
W dnum 扱うデータのデータ番号
W eflg エラーパネル表示フラグ
=0 エラーパネルを表示しない
=1 エラーパネルを表示する
=0 正常終了(データボックスファイルID) <0 エラー(エラーコード)
エラーパネル表示フラグの指定によりエラーパネルの表示を制御できることを除き、
opendbox()と同様。
|
VOID closedbox(void)
なし
なし
全てのデータボックスをクローズする。
具体的には dcls_dat(NULL) を実行する。
|
B* getdbox(W dnum)
W dnum 検索対象のデータ番号
≠NULL データへのポインタ =NULL データが見つからない
dnum で指定したデータ番号のデータをデータボックスから検索し、
そのポインタを関数値として戻す。
|
B* ptrdbox(W offset)
W offset オフセット
≠NULL データへのポインタ =NULL データが見つからない
データボックス内の offset をデータポインタに変換し、
関数値として戻す。
|
W setdbox(B *ptr)
B *ptr データへのポインタ
不定
オンメモリのデータボックスデータを内部でデータボックスとして扱うためのポインタとしてセットする。