Main Page   Modules   Data Structures   Globals   Appendix  

データベース
[シェル API]

m17n データベースにとそれに関する API. More...

Typedefs

typedef MDatabase MDatabase
 データベースの型宣言.

Functions

MDatabasemdatabase_find (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3)
 データベース中のデータを探す.
MPlistmdatabase_list (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3)
 m17n データベースのデータリストを返す.
MDatabasemdatabase_define (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3, void *(*loader)(MSymbol *, void *), void *extra_info)
 m17n データベースのデータを定義する.
void * mdatabase_load (MDatabase *mdb)
 データベースからデータをロードする.
MSymbolmdatabase_tag (MDatabase *mdb)
 データのタグを得る.

Variables

char * mdatabase_dir
 アプリケーション固有のデータ用ディレクトリ.

Detailed Description

m17n ライブラリは必要に応じて動的に m17n データベース から情報を取得する。また、アプリケーションプログラムも独自のデータを m17n データベースに追加し、それを動的に取得することができる。m17n データベースには複数の多様なデータが含まれており、各データは TAG0, TAG1, TAG2, TAG3(すべてシンボル)の4つのタグによって識別される。

TAG0 によって、データベース内のデータのタイプは次のように指定される。

特定のタグを持つデータベースを <TAG0, TAG1, TAG2, TAG3> という形式で表す。

アプリケーションプログラムは、まず関数 mdatabase_find() を使ってデータベースに関する情報を保持するオブジェクト(MDatabase 型)へのポインタを得る。それに成功したら、 mdatabase_load() によって実際にデータベースをロードする。構造体 MDatabase 自身がどう実装されているかは、アプリケーションプログラムからは見えない。


Typedef Documentation

typedef struct MDatabase MDatabase
 

MDatabase 型はデータベースオブジェクト用の構造体である。 内部構造はアプリケーションプログラムからは見えない。


Function Documentation

MDatabase* mdatabase_find MSymbol  tag0,
MSymbol  tag1,
MSymbol  tag2,
MSymbol  tag3
 

関数 mdatabase_find() は、 m17n 言語情報ベース中で tag0 から tag3 までのタグを持つデータを探し、それへのポインタを返す。そのようなデータがなければ NULL を返す。

MPlist* mdatabase_list MSymbol  tag0,
MSymbol  tag1,
MSymbol  tag2,
MSymbol  tag3
 

関数 mdatabase_list() は m17n データベース中から tag0 からtag3 までのタグを持つデータを探し、そのリストをplist として返す。 tagnMnil であった場合には、任意のタグにマッチするワイルドカードとして取り扱われる。返される plist の各要素はキー として Mt を、値として MDatabase 型へのポインタを持つ。

MDatabase* mdatabase_define MSymbol  tag0,
MSymbol  tag1,
MSymbol  tag2,
MSymbol  tag3,
void *(*)(MSymbol *, void *)  loader,
void *  extra_info
 

関数 mdatabase_define()tag0 から tag3 までのタグおよび付加情報 extra_info を持つデータを定義する。

loader はそのデータのロードに用いられる関数へのポインタである。この関数は mdatabase_load() から tagsextra_info という二つの引数付きで呼び出される。ここで tagstag0 から tag3 までの配列である。

もし loaderNULL なら、m17n ライブラリ標準のローダが使われる。この場合には extra_info はデータを含むファイル名でなくてはならない。

戻り値:
処理に成功すれば mdatabase_define() は定義されたデータベースへのポインタを返す。このポインタは関数 mdatabase_load() の引数として用いることができる。そうでなければ NULL を返す。

参照:
mdatabase_load(), mdatabase_define()

void* mdatabase_load MDatabase mdb  ) 
 

関数 mdatabase_load()mdb が指すデータをロードし、その中身を返す。返されるものはデータのタイプによって異なる。

データが plistタイプ ならば、 plist へのポインタを返す。

データが chartableタイプ ならば文字テーブルを返す。 文字テーブルのデフォルト値は、データの第2タグによって以下のように決まる。

  • タグが Msymbol なら、デフォルト値は Mnil
  • タグが Minteger なら、デフォルト値は -1
  • それ以外なら、デフォルト値は NULL
データが charsetタイプ ならば長さ 2 の plist を返す(キーは共にMt )。 最初の要素の値はコードポイントを対応する文字コードにマップする整数の配列である。 2番目の要素の値は逆のマップをする文字テーブルである。 この文字セットは予め定義されていなければならない。

参照:
mdatabase_load(), mdatabase_define()

MSymbol* mdatabase_tag MDatabase mdb  ) 
 

関数 mdatabase_tag() は、データ mdb のタグ(シンボル)の配列を返す。配列の長さは 4 である。


Variable Documentation

char* mdatabase_dir
 

アプリケーションプログラムが、そのプログラム固有のデータや m17n データベースを上書きするデータを提供する場合には、マクロ M17N_INIT() を呼ぶ前にこの変数をデータファイルを含むディレクトリ名にセットしなくてはならない。ディレクトリには "mdb.dir" ファイルをおくことができる。その"mdb.dir"ファイルには、 mdbDir(5) で説明されているフォーマットでデータ定義のリストを記述する。

デフォルトの値は NULL である。


このページの先頭

Main Page   Modules   Data Structures   Globals   Appendix  

mulemark mule-aist@m17n.org