summaryrefslogtreecommitdiffstats
path: root/src/searchindex.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/searchindex.h')
-rw-r--r--src/searchindex.h71
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