Provided by: libdoodle-dev_0.7.0-10_amd64 bug

NAME

       libdoodle - multi-suffix tree based file search library 0.7.0

SYNOPSIS

       #include <doodle.h>

        typedef void (*DOODLE_Logger)(void * context, unsigned int level, const char * message, ...);

        typedef struct {
          char * filename;
          unsigned int mod_time;
        } DOODLE_FileInfo;

        typedef void (*DOODLE_TreeCallback)(const DOODLE_FileInfo * fileinfo, void * arg);

        unsigned int DOODLE_getFileCount(const struct DOODLE_SuffixTree * tree);

        const DOODLE_File * DOODLE_getFileAt(const struct DOODLE_SuffixTree * tree, unsigned int index);

        struct DOODLE_SuffixTree * DOODLE_tree_create(DOODLE_Logger log, void * context, const char * database);

        void DOODLE_tree_set_memory_limit(struct DOODLE_SuffixTree *tree, size_t limit);

        void DOODLE_tree_destroy(struct DOODLE_SuffixTree * tree);

        int DOODLE_tree_expand(struct DOODLE_SuffixTree * tree, const unsigned char * searchString, const char *
       fileName);

        int DOODLE_tree_truncate(struct DOODLE_SuffixTree * tree, const char * fileName);

        int DOODLE_tree_dump(FILE * stream, struct DOODLE_SuffixTree * tree);

        int DOODLE_tree_search_approx(struct DOODLE_SuffixTree * tree, const  unsigned  int  approx,  const  int
       ignore_case, const unsigned char * ss, DOODLE_ResultCallback * callback, void * arg);

        int   DOODLE_tree_search(struct   DOODLE_SuffixTree   *   tree,   const   unsigned   char  *  substring,
       DOODLE_ResultCallback * callback, void * arg);

DESCRIPTION

       libdoodle is a library that provides a multi-suffix tree to lookup files.  The basic use is to  create  a
       suffix  tree,  add  some  keywords  (associated  with a file), search the tree and finally free the tree.
       libdoodle features code to quickly serialize the tree into a compact format.

       In order to use libdoodle, client code first creates a tree (passing a callback function  that  will  log
       all error messages associated with this tree and the name of the database) using DOODLE_tree_create.  The
       tree  can  then  be  searched  using  DOODLE_tree_search  or  DOODLE_tree_search_approx  (which  requires
       additional  processing  with  DOODLE_tree_iterate  to walk over the individual results).  The tree can be
       expanded with  new  search  strings  (DOODLE_tree_expand)  and  existing  matches  can  be  removed  with
       DOODLE_tree_truncate.    It   is   only  possible  to  remove  all  keywords  for  a  given  file.   With
       DOODLE_getFileAt and DOODLE_getFileCount it is possible to inspect the files that are  currently  in  the
       tree (and to check if their respective modification timestamps, useful for keeping track of when an entry
       maybe outdated).  Finally the tree must be released using DOODLE_tree_destroy.  This writes  the  changes
       to the disk and frees all associated resources.

       Example  code  for  using  the  complete libdoodle API can be found in doodle.c.  If jni.h was found when
       libdoodle was compiled, libdoodle will contain methods that allow Java code to  directly  use  libdoodle.
       See  org.gnunet.doodle.Doodle  for  Java  code  providing an interface to libdoodle and for a sample main
       method that demonstrates searching the doodle database from Java.

SEE ALSO

       doodle(1), extract(1), libextractor(3)

LEGAL NOTICE

       libdoodle and doodle are released under the GPL.

BUGS

       There is at least one known bug, but nobody was able to reproduce it yet.  But  in  general  things  work
       fine. :-)

REPORTING BUGS

       Report    bugs    to    mantis    <https://gnunet.org/bugs/>   or   by   sending   electronic   mail   to
       <christian@grothoff.org>

AUTHORS

       doodle was originally written by Christian Grothoff <christian@grothoff.org>.

AVAILABILITY

       You can obtain the original author's latest version from http://grothoff.org/christian/doodle/.