Typedefs | |
typedef MDatabase | MDatabase |
Type of database. | |
Functions | |
MDatabase * | mdatabase_find (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3) |
Look for a data in the database. | |
MPlist * | mdatabase_list (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3) |
Return a data list of the m17n database. | |
MDatabase * | mdatabase_define (MSymbol tag0, MSymbol tag1, MSymbol tag2, MSymbol tag3, void *(*loader)(MSymbol *, void *), void *extra_info) |
Define a data of the m17n database. | |
void * | mdatabase_load (MDatabase *mdb) |
Load a data from the database. | |
MSymbol * | mdatabase_tag (MDatabase *mdb) |
Get tags of a data. | |
Variables | |
char * | mdatabase_dir |
Directory for application specific data. |
The m17n database contains multiple heterogeneous data, and each data is identified by four tags; TAG0, TAG1, TAG2, TAG3. Each tag must be a symbol.
TAG0 specifies the type of data stored in the database as below.
Application programs first calls the mdatabase_find() function to get a pointer to an object of the type MDatabase. That object holds information about the specified data. When it is successfully returned, the mdatabase_load() function loads the data. The implementation of the structure MDatabase is concealed from application programs.
The type MDatabase is for a database object. Its internal structure is concealed from an application program.
The mdatabase_find() function searches the m17n database for a data who has tags tag0 through tag3, and returns a pointer to the data. If such a data is not found, it returns NULL
.
The mdatabase_list() function searches the m17n database for data who have tags tag0 through tag3, and returns their list by a plist. The value Mnil in tagn means a wild card that matches any tag. Each element of the plist has key Mt and value a pointer to type MDatabase.
MDatabase* mdatabase_define | ( | MSymbol | tag0, | |
MSymbol | tag1, | |||
MSymbol | tag2, | |||
MSymbol | tag3, | |||
void *(*)(MSymbol *, void *) | loader, | |||
void * | extra_info | |||
) |
The mdatabase_define() function defines a data that has tags tag0 through tag3 and additional information extra_info.
loader is a pointer to a function that loads the data from the database. This function is called from the mdatabase_load() function with the two arguments tags and extra_info. Here, tags is the array of tag0 through tag3.
If loader is NULL
, the default loader of the m17n library is used. In this case, extra_info must be a string specifying a filename that contains the data.
NULL
.void* mdatabase_load | ( | MDatabase * | mdb | ) |
The mdatabase_load() function loads a data specified in mdb and returns the contents. The type of contents depends on the type of the data.
If the data is of the plist type, this function returns a pointer to plist.
If the database is of the chartable type, it returns a chartable. The default value of the chartable is set according to the second tag of the data as below:
NULL
.
The mdatabase_tag() function returns an array of tags (symbols) that identify the data in mdb. The length of the array is four.
char* mdatabase_dir |
If an application program wants to provide a data specific to the program or a data overriding what supplied by the m17n database, it must set this variable to a name of directory that contains the data files before it calls the macro M17N_INIT(). The directory may contain a file "mdb.dir" which contains a list of data definitions in the format described in mdbDir(5).
The default value is NULL.