X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=chise.h;h=4fab437e4a740db1da33be2e5982ea0148356ab9;hb=19417ed66013efc1c1324a7261a6ff00a1597cfb;hp=6ad7ed29f505f493d5a338aa6e377d3dd19f3ef4;hpb=ae4c7cc7920a5f5c63f60dc837a8902bc33c23de;p=chise%2Flibchise.git diff --git a/chise.h b/chise.h index 6ad7ed2..4fab437 100644 --- a/chise.h +++ b/chise.h @@ -10,16 +10,13 @@ typedef enum CHISE_DS_Type CHISE_DS_Berkeley_DB } CHISE_DS_Type; -typedef struct CHISE_DS -{ - CHISE_DS_Type type; - char *location; -} CHISE_DS; +typedef struct CHISE_DS CHISE_DS; -int chise_open_data_source (CHISE_DS *ds, CHISE_DS_Type type, - char *location); +CHISE_DS* +CHISE_DS_open (CHISE_DS_Type type, char *location, + DBTYPE subtype, int modemask); -int chise_close_data_source (CHISE_DS *ds); +int CHISE_DS_close (CHISE_DS *ds); typedef int CHISE_Char_ID; @@ -46,54 +43,47 @@ chise_value_to_c_string (const CHISE_Value *s) } -typedef DB CHISE_Attribute_Table; - - -typedef CHISE_Attribute_Table CHISE_Decoding_Table; - -int chise_open_decoding_table (CHISE_Decoding_Table **db, - CHISE_DS *ds, const char *ccs, - DBTYPE real_subtype, - u_int32_t accessmask, int modemask); - -int chise_close_decoding_table (CHISE_Decoding_Table *db); - -CHISE_Char_ID chise_dt_get_char (CHISE_Decoding_Table *db, int code_point); - - -typedef CHISE_Attribute_Table CHISE_Feature_Table; +typedef struct CHISE_Feature_Table CHISE_Feature_Table; +typedef CHISE_Feature_Table* CHISE_Feature; -int chise_open_feature_table (CHISE_Feature_Table **db, - CHISE_DS *ds, const char *feature, - DBTYPE real_subtype, - u_int32_t accessmask, int modemask); +CHISE_Feature +chise_ds_get_feature (CHISE_DS *ds, const unsigned char *feature); -int chise_close_feature_table (CHISE_Feature_Table *db); +int chise_char_load_feature_value (CHISE_Char_ID cid, + CHISE_Feature feature, + CHISE_Value *valdatum); -int chise_ft_get_value (CHISE_Feature_Table *db, - CHISE_Char_ID cid, CHISE_Value *valdatum); +unsigned char* +chise_char_gets_feature_value (CHISE_Char_ID cid, + CHISE_Feature feature, + unsigned char *dst, size_t size); -void -chise_ft_iterate (CHISE_Feature_Table *dbp, - int (*func) (CHISE_Feature_Table *db, - CHISE_Char_ID cid, CHISE_Value *valdatum)); +int +chise_char_feature_value_iterate (CHISE_Feature feature, + int (*func) (CHISE_Char_ID cid, + CHISE_Feature feature, + CHISE_Value *valdatum)); +#if 0 +int +chise_char_feature_str_iterate (CHISE_Feature feature, + int (*func) (CHISE_Char_ID cid, + CHISE_Feature feature, + unsigned char *str)); +#endif -CHISE_Char_ID chise_decode_char (CHISE_DS *ds, char *ccs, int code_point); -int chise_get_feature (CHISE_DS *ds, CHISE_Char_ID cid, - char *key, CHISE_Value *valdatum); +typedef struct CHISE_CCS_Table CHISE_CCS_Table; +typedef CHISE_CCS_Table* CHISE_CCS; +CHISE_CCS +chise_ds_get_ccs (CHISE_DS *ds, const unsigned char *ccs); -int chise_open_attribute_table (CHISE_Attribute_Table **db, - const char *db_dir, - const char *encoding, const char *feature, - DBTYPE real_subtype, - u_int32_t accessmask, int modemask); +CHISE_Char_ID chise_ccs_decode (CHISE_CCS ccs, int code_point); -int chise_close_attribute_table (CHISE_Attribute_Table *db); +int chise_ccs_set_decoded_char (CHISE_CCS ccs, + int code_point, CHISE_Char_ID cid); -int chise_get_attribute_table (CHISE_Attribute_Table *db, - char *key, CHISE_Value *valdatum); +int chise_ccs_sync (CHISE_CCS ccs); #endif /* !_CHISE_H */