Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

libdoodle(3) [debian man page]

LIBDOODLE(3)						     Library Functions Manual						      LIBDOODLE(3)

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 DOO- DLE_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 possi- ble 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 lib- doodle 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/. libdoodle Jan 1 2010 LIBDOODLE(3)

Check Out this Related Man Page

DOODLED(1)						      General Commands Manual							DOODLED(1)

NAME
doodled - a daemon to keep your doodle database up-to-date SYNOPSIS
doodled [OPTIONS] [FILENAMES]* DESCRIPTION
doodled monitors your filesystem for changes and updates the doodle database to keep it always up-to-date with the latest data. doodled is experimental at this point. It uses libfam and is thus limited to monitoring less than 1024 directories for changes. OPTIONS
-d FILENAME, --database=FILENAME use FILENAME for the location of the database (use when building or searching). This option is particularly useful when doodle is used to search different types of files (or is operated with different extractor options). Using this option doodle can be used to build specialized indices (i.e. one per file system), which can in turn improve search performance. When searching, you can pass a colon-separated list of database file names, in that case all databases are searched. Note that the disk-space consumption of a single database is typically slightly smaller than if the database is split into multiple files. Nevertheless, the space-savings are likely to be small (a few percent). You can also use the environment variable DOODLE_PATH to set the list of database files to search. The option overrides the environment variable if both are used. If the option is not given and DOODLE_PATH is not set, "/var/lib/doodle" is used. -D, --debug do not detach from the terminal (do not daemonize). Also will print log messages to stderr if no logfile is specified. -f, --filenames include filenames (full path) in the set of keywords -h, --help print help page -l LIBRARIES, --library=LIBRARIES specify which libextractor plugins to use (for building the index with -b or for printing information about files with -e) -L FILENAME, --log=FILENAME log messages to the given logfile. -m LIMIT, --memory=LIMIT use at most LIMIT MB of memory for the nodes of the suffix-tree (after that, serialize to disk). Note that a smaller value will reduce memory consumption but increase the size of the temporary file (and slow down indexing). The default is 8 MB. -n, --nodefault do not load the default set of plugins (only load plugins specified with -l) -P PATH, --prunepaths=PATH Directories to not put in the database, which would otherwise be. The environment variable PRUNEPATHS also sets this value. Default is "/tmp /usr/tmp /var/tmp /dev /proc /sys". This option can also be used when searching, in which case search results in the spec- ified directories will be ignored. -v, --version print the version number -V, --verbose be verbose ENVIRONMENT
DOODLE_PATH Colon-separated list of databases to search. Note that when building the database this path must either only contain one filename or the option -b must be used to specify the database file. Default is "/var/lib/doodle". PRUNEPATHS Space-separated list of paths to exclude. Can be overridden with the -P option. NOTES
Doodle depends on GNU libextractor. You can download libextractor from http://www.gnu.org/software/libextractor/. SEE ALSO
extract(1), doodle(1), fam(3), libdoodle(3) LEGAL NOTICE
libdoodle and doodle are released under the GPL. REPORTING BUGS
Report bugs to mantis <https://gnunet.org/bugs/> or by sending electronic mail to <christian@grothoff.org> AUTHORS
doodle and doodled were originally written by Christian Grothoff <christian@grothoff.org>. AVAILABILITY
You can obtain the original author's latest version from http://grothoff.org/christian/doodle/. doodled Jan 1 2010 DOODLED(1)
Man Page