-/* $Id: dict.h,v 1.8 2006-08-29 11:28:44 adam Exp $
+/* $Id: dict.h,v 1.13 2006-12-12 13:42:23 adam Exp $
Copyright (C) 1995-2006
Index Data ApS
\param p string-z with prefix
\param client client data to be supplied to function f
\param f function which gets called for each item in tree
- \retval 0 OK (0 or more entries deleted)
+ \retval 0 OK (0 or more entries deleted)
\retval 1 OK (1 or more entries delete)
\retval -1 ERROR
+
+ Function f is called for each item to be deleted.
*/
YAZ_EXPORT
int dict_delete_subtree(Dict dict, const char *p, void *client,
\param dict dictionary handle
\param p string-z with lookup string
\param range number of allowed errors(extra/substituted/missing char)
- \param f function be called for each match
+ \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
int dict_lookup_ec(Dict dict, char *p, int range, int (*f)(char *name));
\param max_pos on return holds maximum number of chars that match (prefix)
\param init_pos number of leading non-error corrected chars.
\param f function be called for each match
- \retval 0 OK
- \retval 1 OK
+ \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 is also returned by dict_lookup_ec.
*/
YAZ_EXPORT
int dict_lookup_grep(Dict dict, const char *p, int range, void *client,
\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 OK, and no terms visited
- \retval 1 OK, and some terms have been visited
+ \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,
const char **(*cmap)(void *vp,
const char **from, int len));
+/** \brief copies one dictionary to another
+ \param bfs block file handle
+ \param from source dictionary file
+ \param to destination dictionary file
+*/
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