X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fconcord.git;a=blobdiff_plain;f=concord.h;h=bcab30d2f373bfc9a55f8ac2f8a9c5a23cfbe0e3;hp=3b8ec697c30d4ecbaea1abb25b52f2d7452a1a9f;hb=68c5464c57eb527358ed1a9933525023f6909fc3;hpb=5ef940dc3fdb924beec6313ce28b5ad550d72948 diff --git a/concord.h b/concord.h index 3b8ec69..bcab30d 100644 --- a/concord.h +++ b/concord.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2003,2004,2005,2006 MORIOKA Tomohiko +/* Copyright (C) 2003, 2004, 2005, 2006, 2013 MORIOKA Tomohiko This file is part of the CONCORD Library. The CONCORD Library is free software; you can redistribute it and/or @@ -27,6 +27,7 @@ extern "C" { #endif #include +#include typedef DBT CONCORD_String_Tank; typedef CONCORD_String_Tank* CONCORD_String; @@ -35,7 +36,7 @@ int CONCORD_String_size (const CONCORD_String s); unsigned char* CONCORD_String_data (const CONCORD_String s); -typedef void* CONCORD_Object; +typedef COS_Object CONCORD_Object; typedef enum CONCORD_Backend_Type { @@ -44,13 +45,16 @@ typedef enum CONCORD_Backend_Type } CONCORD_Backend_Type; -typedef struct CONCORD_DS_Table CONCORD_DS_Table; -typedef CONCORD_DS_Table* CONCORD_DS; +typedef struct COS_DS_ent COS_DS_ent; +typedef COS_DS_ent* COS_DS; +typedef COS_DS CONCORD_DS; CONCORD_DS concord_open_ds (CONCORD_Backend_Type type, const char* location, int subtype, int modemask); +COS_DS concord_open_env (COS_object ds); + int concord_close_ds (CONCORD_DS ds); char* concord_ds_location (CONCORD_DS ds); @@ -68,12 +72,16 @@ concord_ds_foreach_genre_name (CONCORD_DS ds, int (*func) (CONCORD_DS ds, char* name)); -typedef struct CONCORD_Genre_Table CONCORD_Genre_Table; -typedef CONCORD_Genre_Table* CONCORD_Genre; +typedef struct COS_Genre_ent COS_Genre_ent; +typedef COS_Genre_ent* COS_Genre; +typedef COS_Genre CONCORD_Genre; CONCORD_Genre concord_ds_get_genre (CONCORD_DS ds, const char* name); +COS_Genre +concord_get_genre (COS_object ds, COS_object genre); + char* concord_genre_get_name (CONCORD_Genre genre); CONCORD_DS concord_genre_get_data_source (CONCORD_Genre genre); @@ -84,12 +92,17 @@ concord_genre_foreach_feature_name (CONCORD_Genre genre, char* name)); -typedef struct CONCORD_Feature_Table CONCORD_Feature_Table; -typedef CONCORD_Feature_Table* CONCORD_Feature; +typedef struct COS_Feature_ent COS_Feature_ent; +typedef COS_Feature_ent* COS_Feature; +typedef COS_Feature CONCORD_Feature; CONCORD_Feature concord_genre_get_feature (CONCORD_Genre genre, const char* name); +COS_Feature +concord_get_feature (COS_object ds, + COS_object genre, COS_object feature); + char* concord_feature_get_name (CONCORD_Feature feature); CONCORD_Genre concord_feature_get_genre (CONCORD_Feature feature); @@ -115,6 +128,9 @@ concord_obj_gets_feature_value (const char* object_id, CONCORD_Feature feature, unsigned char* dst, size_t size); +COS_object +concord_object_get_feature_value (COS_object object, COS_object feature); + int concord_feature_foreach_obj_string (CONCORD_Feature feature, int (*func) @@ -123,12 +139,21 @@ concord_feature_foreach_obj_string (CONCORD_Feature feature, CONCORD_String valdatum)); -typedef struct CONCORD_INDEX_Table CONCORD_INDEX_Table; -typedef CONCORD_INDEX_Table* CONCORD_INDEX; +typedef struct COS_Feature_INDEX_ent COS_Feature_INDEX_ent; +typedef COS_Feature_INDEX_ent* COS_Feature_INDEX; +typedef COS_Feature_INDEX CONCORD_INDEX; CONCORD_INDEX concord_genre_get_index (CONCORD_Genre genre, const char* name); +COS_Feature_INDEX +concord_get_feature_index (COS_object ds, + COS_object genre, COS_object feature); + +char* concord_index_get_name (CONCORD_INDEX index); + +CONCORD_Genre concord_index_get_genre (CONCORD_INDEX index); + int concord_index_setup_db (CONCORD_INDEX index, int writable); int concord_index_sync (CONCORD_INDEX index); @@ -141,6 +166,11 @@ int concord_index_strid_get_obj_string (CONCORD_INDEX index, const char* strid, CONCORD_String object_id); + +COS_object +concord_decode_object (COS_object ds, COS_object genre, + COS_object feature, COS_object id); + #if 0 { #endif