2 * Copyright (c) 1995-2002, Index Data.
3 * See the file LICENSE for details.
5 * $Id: d1_handle.c,v 1.8 2002-04-05 12:46:07 adam Exp $
12 #include <yaz/data1.h>
14 struct data1_handle_info {
22 data1_absyn_cache absyn_cache;
23 data1_attset_cache attset_cache;
31 data1_handle data1_create (void)
33 data1_handle p = (data1_handle)xmalloc (sizeof(*p));
38 p->wrbuf = wrbuf_alloc();
43 p->absyn_cache = NULL;
44 p->attset_cache = NULL;
45 p->mem = nmem_create ();
49 NMEM data1_nmem_get (data1_handle dh)
54 data1_absyn_cache *data1_absyn_cache_get (data1_handle dh)
56 return &dh->absyn_cache;
59 data1_attset_cache *data1_attset_cache_get (data1_handle dh)
61 return &dh->attset_cache;
64 void data1_destroy (data1_handle dh)
68 wrbuf_free (dh->wrbuf, 1);
77 nmem_destroy (dh->mem);
82 WRBUF data1_get_wrbuf (data1_handle dp)
87 char **data1_get_read_buf (data1_handle dp, int **lenp)
89 *lenp = &dp->read_len;
90 yaz_log (LOG_DEBUG, "data1_get_read_buf lenp=%u", **lenp);
94 char **data1_get_map_buf (data1_handle dp, int **lenp)
97 yaz_log (LOG_DEBUG, "data1_get_map_buf lenp=%u", **lenp);
101 void data1_set_tabpath (data1_handle dp, const char *p)
103 xfree (dp->tab_path);
106 dp->tab_path = xstrdup (p);
109 void data1_set_tabroot (data1_handle dp, const char *p)
111 xfree (dp->tab_root);
114 dp->tab_root = xstrdup (p);
117 const char *data1_get_tabpath (data1_handle dp)
122 const char *data1_get_tabroot (data1_handle dp)
127 FILE *data1_path_fopen (data1_handle dh, const char *file, const char *mode)
129 const char *path = data1_get_tabpath(dh);
130 const char *root = data1_get_tabroot(dh);
131 return yaz_fopen (path, file, "r", root);