Omit return stmt from void func
[idzebra-moved-to-github.git] / index / zebraapi.c
index f2d73c6..9ebb980 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: zebraapi.c,v 1.162 2005-04-26 08:11:22 adam Exp $
+/* $Id: zebraapi.c,v 1.166 2005-05-09 10:04:30 adam Exp $
    Copyright (C) 1995-2005
    Index Data ApS
 
@@ -145,6 +145,10 @@ ZebraHandle zebra_open (ZebraService zs)
 
     zebra_mutex_cond_unlock (&zs->session_lock);
 
+    zh->store_data_buf = 0;
+
+    zh->m_limit = zebra_limit_create(0, 0);
+
     return zh;
 }
 
@@ -533,6 +537,9 @@ ZEBRA_RES zebra_close (ZebraHandle zh)
     xfree(zh->reg_name);
     xfree(zh->user_perm);
     zh->service = 0; /* more likely to trigger an assert */
+
+    zebra_limit_destroy(zh->m_limit);
+
     xfree(zh->path_reg);
     xfree(zh);
     return ZEBRA_OK;
@@ -645,6 +652,20 @@ static void zebra_select_register (ZebraHandle zh, const char *new_reg)
         zh->lock_shadow =
             zebra_lock_create (res_get(zh->res, "lockDir"), fname, 0);
 
+       if (!zh->lock_normal || !zh->lock_shadow)
+       {
+           if (zh->lock_normal)
+           {
+               zebra_lock_destroy(zh->lock_normal);
+               zh->lock_normal = 0;
+           }
+           if (zh->lock_shadow)
+           {
+               zebra_lock_destroy(zh->lock_shadow);
+               zh->lock_shadow = 0;
+           }
+           zebra_close_res(zh);
+       }
     }
 }
 
@@ -690,7 +711,7 @@ int zebra_select_default_database(ZebraHandle zh)
        const char *group = res_get(zh->service->global_res, "group");
        const char *v = res_get_prefix(zh->service->global_res,
                                       "database", group, "Default");
-       zebra_select_database(zh, v);
+       return zebra_select_database(zh, v);
     }
     return 0;
 }
@@ -1928,7 +1949,7 @@ void zebra_set_resource(ZebraHandle zh, const char *name, const char *value)
     ASSERTZH;
     assert(name);
     assert(value);
-    yaz_log(log_level, "zebra_set_resource %s:%s",name,value);
+    yaz_log(log_level, "zebra_set_resource %s:%s", name, value);
     zh->errCode = 0;
     res_set(zh->res, name, value);
 }
@@ -1940,9 +1961,9 @@ const char *zebra_get_resource(ZebraHandle zh,
     ASSERTZH;
     assert(name);
     assert(defaultvalue);
-    v= res_get_def( zh->res, name, (char *)defaultvalue);
+    v = res_get_def (zh->res, name, (char *)defaultvalue);
     zh->errCode = 0;
-    yaz_log(log_level, "zebra_get_resource %s:%s",name,v);
+    yaz_log(log_level, "zebra_get_resource %s:%s", name, v);
     return v;
 }
 
@@ -2163,9 +2184,24 @@ int zebra_sort_by_specstr (ZebraHandle zh, ODR stream,
     return sort_status;
 }
 
+/* ---------------------------------------------------------------------------
+  Get BFS for Zebra system (to make alternative storage methods)
+*/
 struct BFiles_struct *zebra_get_bfs(ZebraHandle zh)
 {
     if (zh && zh->reg)
        return zh->reg->bfs;
     return 0;
 }
+
+
+/* ---------------------------------------------------------------------------
+  Set limit for search/scan
+*/
+ZEBRA_RES zebra_set_limit(ZebraHandle zh, int exclude_flag, zint *ids)
+{
+    ASSERTZH;
+    zebra_limit_destroy(zh->m_limit);
+    zh->m_limit = zebra_limit_create(exclude_flag, ids);
+    return ZEBRA_OK;
+}