logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

libdoodle - multi-suffix tree based file search library 0.7.0

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/.

libdoodle                                          Jan 1 2010                                       LIBDOODLE(3)

Bugs

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

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.

Name

       libdoodle - multi-suffix tree based file search library 0.7.0

Reporting Bugs

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

See Also

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

Synopsis

#include<doodle.h>typedefvoid(*DOODLE_Logger)(void*context,unsignedintlevel,constchar*message,...);typedefstruct{char*filename;unsignedintmod_time;}DOODLE_FileInfo;typedefvoid(*DOODLE_TreeCallback)(constDOODLE_FileInfo*fileinfo,void*arg);unsignedintDOODLE_getFileCount(conststructDOODLE_SuffixTree*tree);constDOODLE_File*DOODLE_getFileAt(conststructDOODLE_SuffixTree*tree,unsignedintindex);structDOODLE_SuffixTree*DOODLE_tree_create(DOODLE_Loggerlog,void*context,constchar*database);voidDOODLE_tree_set_memory_limit(structDOODLE_SuffixTree*tree,size_tlimit);voidDOODLE_tree_destroy(structDOODLE_SuffixTree*tree);intDOODLE_tree_expand(structDOODLE_SuffixTree*tree,constunsignedchar*searchString,constchar*fileName);intDOODLE_tree_truncate(structDOODLE_SuffixTree*tree,constchar*fileName);intDOODLE_tree_dump(FILE*stream,structDOODLE_SuffixTree*tree);intDOODLE_tree_search_approx(structDOODLE_SuffixTree*tree,constunsignedintapprox,constintignore_case,constunsignedchar*ss,DOODLE_ResultCallback*callback,void*arg);intDOODLE_tree_search(structDOODLE_SuffixTree*tree,constunsignedchar*substring,DOODLE_ResultCallback*callback,void*arg);

See Also