X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=retrieval%2Fd1_handle.c;h=966eaae0f0bf8ebac13997f944450a263c7cf145;hb=37b3d8433b89248def810d7cfa9b110893519f65;hp=d2942187e2c41b64e4a445777a92c3c5da08ebef;hpb=dd4eea1c142f1f4b6d2ec6343891d99d4fb7a269;p=yaz-moved-to-github.git diff --git a/retrieval/d1_handle.c b/retrieval/d1_handle.c index d294218..966eaae 100644 --- a/retrieval/d1_handle.c +++ b/retrieval/d1_handle.c @@ -1,10 +1,27 @@ /* - * Copyright (c) 1995-1997, Index Data. + * Copyright (c) 1995-1999, Index Data. * See the file LICENSE for details. * Sebastian Hammer, Adam Dickmeiss * * $Log: d1_handle.c,v $ - * Revision 1.1 1997-09-17 12:28:24 adam + * Revision 1.6 1999-11-30 13:47:12 adam + * Improved installation. Moved header files to include/yaz. + * + * Revision 1.5 1999/08/27 09:40:32 adam + * Renamed logf function to yaz_log. Removed VC++ project files. + * + * Revision 1.4 1998/05/18 13:07:05 adam + * Changed the way attribute sets are handled by the retriaval module. + * Extended Explain conversion / schema. + * Modified server and client to work with ASN.1 compiled protocol handlers. + * + * Revision 1.3 1998/02/11 11:53:35 adam + * Changed code so that it compiles as C++. + * + * Revision 1.2 1997/09/30 11:50:04 adam + * Added handler data1_get_map_buf that is used by data1_nodetomarc. + * + * Revision 1.1 1997/09/17 12:28:24 adam * Introduced new 'global' data1 handle. * */ @@ -12,28 +29,38 @@ #include #include -#include -#include +#include +#include struct data1_handle_info { WRBUF wrbuf; char *tab_path; + char *read_buf; int read_len; + data1_absyn_cache absyn_cache; + data1_attset_cache attset_cache; + + char *map_buf; + int map_len; + NMEM mem; }; data1_handle data1_create (void) { - data1_handle p = xmalloc (sizeof(*p)); + data1_handle p = (data1_handle)xmalloc (sizeof(*p)); if (!p) return NULL; p->tab_path = NULL; p->wrbuf = wrbuf_alloc(); p->read_buf = NULL; p->read_len = 0; + p->map_buf = NULL; + p->map_len = 0; p->absyn_cache = NULL; + p->attset_cache = NULL; p->mem = nmem_create (); return p; } @@ -48,6 +75,11 @@ data1_absyn_cache *data1_absyn_cache_get (data1_handle dh) return &dh->absyn_cache; } +data1_attset_cache *data1_attset_cache_get (data1_handle dh) +{ + return &dh->attset_cache; +} + void data1_destroy (data1_handle dh) { if (!dh) @@ -57,6 +89,8 @@ void data1_destroy (data1_handle dh) xfree (dh->tab_path); if (dh->read_buf) xfree (dh->read_buf); + if (dh->map_buf) + xfree (dh->map_buf); nmem_destroy (dh->mem); xfree (dh); @@ -70,9 +104,16 @@ WRBUF data1_get_wrbuf (data1_handle dp) char **data1_get_read_buf (data1_handle dp, int **lenp) { *lenp = &dp->read_len; + yaz_log (LOG_DEBUG, "data1_get_read_buf lenp=%u", **lenp); return &dp->read_buf; } +char **data1_get_map_buf (data1_handle dp, int **lenp) +{ + *lenp = &dp->map_len; + yaz_log (LOG_DEBUG, "data1_get_map_buf lenp=%u", **lenp); + return &dp->map_buf; +} void data1_set_tabpath (data1_handle dp, const char *p) { @@ -83,7 +124,7 @@ void data1_set_tabpath (data1_handle dp, const char *p) } if (p) { - dp->tab_path = xmalloc (strlen(p)+1); + dp->tab_path = (char *)xmalloc (strlen(p)+1); strcpy (dp->tab_path, p); } }