Remove TCL_LIB from all LDADDs except for Tcl filter. We don't anything
[idzebra-moved-to-github.git] / index / zebraapi.c
index 22d249a..9030da1 100644 (file)
@@ -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);