X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fzebraapi.c;h=9030da113484a732de3840fb857dd38aacbcc792;hb=a9eae0225b1a51b0257f80d9da9f95475dd04f53;hp=22d249a871dbad0846bac8154cdd198db434f503;hpb=d2462e5d299a6772dace31311998d3fccacf86af;p=idzebra-moved-to-github.git diff --git a/index/zebraapi.c b/index/zebraapi.c index 22d249a..9030da1 100644 --- a/index/zebraapi.c +++ b/index/zebraapi.c @@ -1,4 +1,4 @@ -/* $Id: zebraapi.c,v 1.131 2004-09-13 09:02:16 adam Exp $ +/* $Id: zebraapi.c,v 1.133 2004-09-27 10:44:49 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -178,11 +178,18 @@ ZebraService zebra_start_res (const char *configName, Res def_res, Res over_res) res_get (zh->global_res, "passwd")); } zh->path_root = res_get (zh->global_res, "root"); + zh->nmem = nmem_create(); + zh->record_classes = recTypeClass_create (zh->global_res, zh->nmem); return zh; } return 0; } +void zebra_filter_info(ZebraService zs, void *cd, + void (*cb)(void *cd, const char *name)) +{ + recTypeClass_info(zs->record_classes, cd, cb); +} void zebra_pidfname(ZebraService zs, char *path) { @@ -253,8 +260,7 @@ struct zebra_register *zebra_register_open (ZebraService zs, const char *name, data1_set_tabpath (reg->dh, profilePath); data1_set_tabroot (reg->dh, reg_path); - reg->recTypes = recTypes_init (reg->dh); - recTypes_default_handlers (reg->recTypes); + reg->recTypes = recTypes_init (zs->record_classes, reg->dh); reg->zebra_maps = zebra_maps_open (res, reg_path); reg->rank_classes = NULL; @@ -263,9 +269,7 @@ struct zebra_register *zebra_register_open (ZebraService zs, const char *name, reg->keys.buf_max = 0; reg->keys.buf = 0; -#if IT_KEY_NEW reg->keys.codec_handle = iscz1_start(); -#endif reg->sortKeys.buf = 0; reg->sortKeys.buf_max = 0; @@ -431,11 +435,8 @@ static void zebra_register_close (ZebraService zs, struct zebra_register *reg) xfree (reg->sortKeys.buf); xfree (reg->keys.buf); -#if IT_KEY_NEW if (reg->keys.codec_handle) iscz1_stop(reg->keys.codec_handle); -#endif - xfree (reg->key_buf); xfree (reg->name); xfree (reg); @@ -457,6 +458,8 @@ int zebra_stop(ZebraService zs) if (zs->passwd_db) passwd_db_close (zs->passwd_db); + recTypeClass_destroy(zs->record_classes); + nmem_destroy(zs->nmem); res_close (zs->global_res); xfree (zs->configName); xfree (zs);