2 * Copyright (c) 1995-2002, Index Data.
3 * See the file LICENSE for details.
5 * $Id: d1_handle.c,v 1.1 2002-10-22 12:53:33 adam Exp $
14 struct data1_handle_info {
22 data1_absyn_cache absyn_cache;
23 data1_attset_cache attset_cache;
32 data1_handle data1_create (void)
34 return data1_createx(0);
37 data1_handle data1_createx (int flags)
39 data1_handle p = (data1_handle)xmalloc (sizeof(*p));
44 p->wrbuf = wrbuf_alloc();
49 p->absyn_cache = NULL;
50 p->attset_cache = NULL;
51 p->mem = nmem_create ();
56 NMEM data1_nmem_get (data1_handle dh)
61 data1_absyn_cache *data1_absyn_cache_get (data1_handle dh)
63 return &dh->absyn_cache;
66 data1_attset_cache *data1_attset_cache_get (data1_handle dh)
68 return &dh->attset_cache;
71 void data1_destroy (data1_handle dh)
75 wrbuf_free (dh->wrbuf, 1);
84 nmem_destroy (dh->mem);
89 WRBUF data1_get_wrbuf (data1_handle dp)
94 char **data1_get_read_buf (data1_handle dp, int **lenp)
96 *lenp = &dp->read_len;
97 yaz_log (LOG_DEBUG, "data1_get_read_buf lenp=%u", **lenp);
101 char **data1_get_map_buf (data1_handle dp, int **lenp)
103 *lenp = &dp->map_len;
104 yaz_log (LOG_DEBUG, "data1_get_map_buf lenp=%u", **lenp);
108 void data1_set_tabpath (data1_handle dp, const char *p)
110 xfree (dp->tab_path);
113 dp->tab_path = xstrdup (p);
116 void data1_set_tabroot (data1_handle dp, const char *p)
118 xfree (dp->tab_root);
121 dp->tab_root = xstrdup (p);
124 const char *data1_get_tabpath (data1_handle dp)
129 const char *data1_get_tabroot (data1_handle dp)
134 FILE *data1_path_fopen (data1_handle dh, const char *file, const char *mode)
136 const char *path = data1_get_tabpath(dh);
137 const char *root = data1_get_tabroot(dh);
138 return yaz_fopen (path, file, "r", root);
141 int data1_is_xmlmode(data1_handle dh)
143 return dh->flags & DATA1_FLAG_XML;