diff options
Diffstat (limited to 'src/searchindex.h')
-rw-r--r-- | src/searchindex.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/searchindex.h b/src/searchindex.h new file mode 100644 index 0000000..64071fb --- /dev/null +++ b/src/searchindex.h @@ -0,0 +1,71 @@ +/****************************************************************************** + * + * $Id$ + * + * Copyright (C) 1997-1999 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * All output generated with Doxygen is not covered by this license. + * + */ + +#ifndef _SEARCHINDEX_H +#define _SEARCHINDEX_H + +#include <qintdict.h> +#include <qstring.h> +#include <qlist.h> +#include <qdict.h> + +#include "suffixtree.h" + +//class IndexTree; +class SuffixTree; + +class DocRef +{ + public: + DocRef(int index,const char *name,const char *url) + { i=index; n=name; u=url; } + ~DocRef() {} + void setOffset(int offset) { o=offset; } + const char *name() const { return n; } + const char *url() const { return u; } + int index() const { return i; } + int offset() const { return o; } + + private: + QString n; + QString u; + int i; + int o; +}; + +typedef QList<DocRef> DocRefList; +typedef QDict<DocRef> DocRefDict; + +class SearchIndex +{ + public: + SearchIndex(); + ~SearchIndex(); + void addReference(const char *key,const char *ref); + bool addWord(const char *key,const char *word,bool special); + bool saveIndex(const char *fileName); + void dump() { suffixTree->dump(); } + + private: + //IndexTree *indexTree; + SuffixTree *suffixTree; + DocRefList refList; + DocRefDict refDict; + QIntDict<DocRef> nameIndex; + int indexCount; +}; + +#endif |