-/* $Id: dict.h,v 1.10 2006-08-29 14:25:40 adam Exp $
- Copyright (C) 1995-2006
- Index Data ApS
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+ Copyright (C) 1994-2011 Index Data
Zebra is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
/** \file dict.h
\brief Zebra dictionary
-
+
The dictionary is a hash that maps a string to a value.
The value is opaque and is defined as a sequence of bytes
with a length in the range 0 to 255.
\param page_size page size of disc block
\returns dictionary handle
*/
-YAZ_EXPORT
+YAZ_EXPORT
Dict dict_open(BFiles bfs, const char *name, int cache, int rw,
int compact_flag, int page_size);
\param f function be called for each match (NULL for no call of f)
\retval 0 OK
\retval -1 error
-
+
Function f is called for each item matched.
*/
YAZ_EXPORT
\retval 0 Operation complete. Function f returned zero value always
\retval >0 Operation incomplete. Function f returned a non-zero value
\retval -1 error (such as bad regular expression)
-
+
The function f is called for each match. If function f returns
- non-zero value the grep operation is stopped and the returned
+ non-zero value the grep operation is stopped and the returned
non-zero value is also returned by dict_lookup_ec.
*/
YAZ_EXPORT
\param after number of terms to be visited following str
\param client client data pointer to be passed to match function f
\param f function be called for each matching term
- \retval 0 Operation complete. Function f returned zero value always
- \retval 1 Operation incomplete. Function f returned a non-zero value
+ \retval 0 Successful
\retval -1 error
+
+ If the callback function f returns 0 the scan operation visits
+ all terms in range (before to after); if the function returns non-zero
+ the scan operation is cancelled.
*/
YAZ_EXPORT
-int dict_scan(Dict dict, char *str,
+int dict_scan(Dict dict, char *str,
int *before, int *after, void *client,
int (*f)(char *name, const char *info, int pos, void *client));
\param dict dictionary handle
\param vp client data to be passed to cmap function handler
\param cmap function be called for each character
-
+
This function must be called prior to using dict_grep_lookup.
If vp is NULL, no character mapping takes place for dict_lookup_grep.
*/
-YAZ_EXPORT
+YAZ_EXPORT
void dict_grep_cmap(Dict dict, void *vp,
const char **(*cmap)(void *vp,
const char **from, int len));
YAZ_EXPORT
int dict_copy_compact(BFiles bfs, const char *from, const char *to);
+/** \brief reset Dictionary (makes it empty)
+ \param dict dictionary handle
+*/
+YAZ_EXPORT
+void dict_clean(Dict dict);
+
+/** \brief get number of lookup operations, since dict_open
+ \param dict dictionary handle
+ \returns number of operatons
+*/
+YAZ_EXPORT
+zint dict_get_no_lookup(Dict dict);
+
+/** \brief get number of insert operations, since dict_open
+ \param dict dictionary handle
+ \returns number of operatons
+*/
+YAZ_EXPORT
+zint dict_get_no_insert(Dict dict);
+
+/** \brief get number of page split operations, since dict_open
+ \param dict dictionary handle
+ \returns number of operatons
+*/
+YAZ_EXPORT
+zint dict_get_no_split(Dict dict);
+
YAZ_END_CDECL
-
+
#endif
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
*/
+