X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fconcord.git;a=blobdiff_plain;f=concord.c;h=71d5d4dca68173e60985bb8ce3d2dcfa56e9618b;hp=f11596060ed94dc37f6442e558038b39871f9a33;hb=5ec4a964f1dd628a493661d72b6f5960dfec57a2;hpb=a83396cc89153d0fb93b7025a0b8f21bdfa47f37 diff --git a/concord.c b/concord.c index f115960..71d5d4d 100644 --- a/concord.c +++ b/concord.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003,2004,2005,2006 MORIOKA Tomohiko +/* Copyright (C) 2003, 2004, 2005, 2006, 2011, 2013 MORIOKA Tomohiko This file is part of the CONCORD Library. The CONCORD Library is free software; you can redistribute it and/or @@ -21,11 +21,9 @@ #include #include #include -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif #include "sysdep.h" #include "concord.h" +#include "cos-i.h" #include "concord-name.h" #include "concord-bdb.h" @@ -44,14 +42,10 @@ CONCORD_String_data (const CONCORD_String s) CONCORD_Genre concord_ds_open_genre (CONCORD_DS ds, const char* name); -int concord_close_genre (CONCORD_Genre genre); - CONCORD_Feature concord_genre_open_feature (CONCORD_Genre genre, const char* name); -int concord_close_feature (CONCORD_Feature feature); - CONCORD_INDEX concord_genre_open_index (CONCORD_Genre genre, const char* index); @@ -59,15 +53,14 @@ concord_genre_open_index (CONCORD_Genre genre, const char* index); CONCORD_Feature concord_genre_get_feature_0 (CONCORD_Genre genre, const char* name); -int concord_close_index (CONCORD_INDEX table); - CONCORD_Object concord_default_read_object (const unsigned char* string, size_t length); -struct CONCORD_DS_Table +struct COS_DS_ent { + COS_Object_Header header; CONCORD_Backend_Type type; char *location; CONCORD_NAME_TABLE* genre_names; @@ -87,14 +80,14 @@ concord_default_read_object (const unsigned char* str, size_t length) return NULL; strncpy ((char*)buf, (char*)str, length); buf[length] = '\0'; - return buf; + return (CONCORD_Object)buf; } CONCORD_DS concord_open_ds (CONCORD_Backend_Type type, const char* location, int subtype, int modemask) { - CONCORD_DS ds = (CONCORD_DS)malloc (sizeof (CONCORD_DS_Table)); + CONCORD_DS ds = COS_ALLOCATE_OBJECT (DS); size_t len = strlen (location); if (ds == NULL) @@ -269,8 +262,9 @@ concord_ds_foreach_genre_name (CONCORD_DS ds, } -struct CONCORD_Genre_Table +struct COS_Genre_ent { + COS_Object_Header header; CONCORD_DS ds; char *name; CONCORD_NAME_TABLE* feature_names; @@ -286,7 +280,7 @@ concord_ds_open_genre (CONCORD_DS ds, const char* name) if (ds == NULL) return NULL; - genre = (CONCORD_Genre)malloc (sizeof (CONCORD_Genre_Table)); + genre = COS_ALLOCATE_OBJECT (Genre); if (genre == NULL) return NULL; @@ -527,8 +521,9 @@ concord_genre_get_index (CONCORD_Genre genre, const char* name) } -struct CONCORD_Feature_Table +struct COS_Feature_ent { + COS_Object_Header header; CONCORD_Genre genre; char* name; DB* db; @@ -544,7 +539,7 @@ concord_genre_open_feature (CONCORD_Genre genre, const char* feature) if (genre == NULL) return NULL; - table = (CONCORD_Feature)malloc (sizeof (CONCORD_Feature_Table)); + table = COS_ALLOCATE_OBJECT (Feature); if (table == NULL) return NULL; @@ -741,8 +736,9 @@ concord_feature_foreach_obj_string (CONCORD_Feature feature, } -struct CONCORD_INDEX_Table +struct COS_Feature_INDEX_ent { + COS_Object_Header header; CONCORD_Genre genre; char *name; DB* db; @@ -758,7 +754,7 @@ concord_genre_open_index (CONCORD_Genre genre, const char* index) if (genre == NULL) return NULL; - table = (CONCORD_INDEX)malloc (sizeof (CONCORD_INDEX_Table)); + table = COS_ALLOCATE_OBJECT (Feature_INDEX); if (table == NULL) return NULL; @@ -799,6 +795,18 @@ concord_close_index (CONCORD_INDEX table) return status; } +char* +concord_index_get_name (CONCORD_INDEX index) +{ + return index->name; +} + +CONCORD_Genre +concord_index_get_genre (CONCORD_INDEX index) +{ + return index->genre; +} + int concord_index_setup_db (CONCORD_INDEX index, int writable) {