diff options
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/test/txt2mifluz.cc')
-rw-r--r-- | debian/htdig/htdig-3.2.0b6/test/txt2mifluz.cc | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/debian/htdig/htdig-3.2.0b6/test/txt2mifluz.cc b/debian/htdig/htdig-3.2.0b6/test/txt2mifluz.cc new file mode 100644 index 00000000..de9aeacc --- /dev/null +++ b/debian/htdig/htdig-3.2.0b6/test/txt2mifluz.cc @@ -0,0 +1,179 @@ +// +// txt2mifluz.cc +// +// txt2mifluz: stress test the Berkeley DB database and WordList interface. +// +// Part of the ht://Dig package <http://www.htdig.org/> +// Copyright (c) 1999-2004 The ht://Dig Group +// For copyright details, see the file COPYING in your distribution +// or the GNU Library General Public License (LGPL) version 2 or later +// <http://www.gnu.org/copyleft/lgpl.html> +// +// $Id: txt2mifluz.cc,v 1.4 2004/05/28 13:15:30 lha Exp $ +// + +#ifdef HAVE_CONFIG_H +#include <htconfig.h> +#endif /* HAVE_CONFIG_H */ + +#ifdef HAVE_UNISTD_H +#include <unistd.h> +#endif /* HAVE_UNISTD_H */ + +// If we have this, we probably want it. +#ifdef HAVE_GETOPT_H +#include <getopt.h> +#endif /* HAVE_GETOPT_H */ +#ifdef HAVE_MALLOC_H +#include <malloc.h> +#endif /* HAVE_MALLOC_H */ +#include <stdlib.h> + +#include <htString.h> +#include <WordList.h> +#include <WordContext.h> + +/* + * Store all options from the command line + */ +class params_t +{ +public: + char* dbfile; + int compress; +}; + +/* + * Explain options + */ +static void usage(); +/* + * Verbosity level set with -v (++) + */ +static int verbose = 0; + +class WordSearch { +public: + WordSearch(); + + WordKey *Search(const String& expr); + WordKey *Search(const StringList& terms); + WordKey *Search(WordKey* keys); + + WordKey* Terms2WordKey(const StringList& terms); + + void DocumentSet(const WordKey& from, WordKey& to); + void DocumentCompare(const WordKey& a, const WordKey& b); + + int limit_bottom; + int limit_count; + WordList* words; +}; + +WordSearch::WordSearch() +{ + limit_bottom = 0; + limit_count = 0; + words = 0; +} + +WordKey *WordSearch::Search(const String& expr) +{ + return Search(StringList(expr, " \t")); +} + +WordKey *WordSearch::Search(const StringList& terms) +{ + return Search(Terms2WordKey(terms)); +} + +WordKey *WordSearch::Search(WordKey* keys) +{ + // WordKey* AscendingFrequency(ter); + return 0; +} + +WordKey* WordSearch::Terms2WordKey(const StringList& terms) +{ + WordKey* keys = new WordKey[terms.Count() + 1]; + + int i; + String* term; + ListCursor cursor; + terms.Start_Get(cursor); + for(i = 0; (term = (String*)terms.Get_Next(cursor)); i++) { + keys[i].SetWord(*term); + } + + for(i = 0; !keys[i].Empty(); i++) { + fprintf(stderr, "%s\n", (char*)keys[i].Get()); + } + return 0; +} + + +// ***************************************************************************** +// Entry point +// +int main(int ac, char **av) +{ + int c; + extern char *optarg; + params_t params; + + params.compress = 0; + params.dbfile = strdup("test"); + + while ((c = getopt(ac, av, "vB:f:z")) != -1) + { + switch (c) + { + case 'v': + verbose++; + break; + case 'B': + free(params.dbfile); + params.dbfile = strdup(optarg); + break; + case 'z': + params.compress = 1; + break; + case '?': + usage(); + break; + } + } + + Configuration* config = WordContext::Initialize(); + if(!config) { + fprintf(stderr, "txt2mifluz: no config file found\n"); + exit(1); + } + + if(params.compress) { + config->Add("wordlist_compress", "true"); + } + + WordList words(*config); + words.Open(params.dbfile, O_RDWR|O_TRUNC); + int inserted = words.Read(stdin); + if(verbose) + printf("inserted %d WordReferences\n", inserted); + words.Close(); + + delete config; + free(params.dbfile); +} + +// ***************************************************************************** +// void usage() +// Display program usage information +// +static void usage() +{ + printf("usage: txt2mifluz [options] < txtfile\n"); + printf("Options:\n"); + printf("\t-v\t\tIncreases the verbosity\n"); + printf("\t-B dbfile\tuse <dbfile> as a db file name (default test).\n"); + exit(0); +} |