summaryrefslogtreecommitdiffstats
path: root/debian/htdig/htdig-3.2.0b6/htcommon/DocumentDB.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/htcommon/DocumentDB.h')
-rw-r--r--debian/htdig/htdig-3.2.0b6/htcommon/DocumentDB.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/debian/htdig/htdig-3.2.0b6/htcommon/DocumentDB.h b/debian/htdig/htdig-3.2.0b6/htcommon/DocumentDB.h
new file mode 100644
index 00000000..51ade173
--- /dev/null
+++ b/debian/htdig/htdig-3.2.0b6/htcommon/DocumentDB.h
@@ -0,0 +1,96 @@
+//
+// DocumentDB.h
+//
+// DocumentDB: This class is the interface to the database of document
+// references. This database is only used while digging.
+// An extract of this database is used for searching.
+// This is because digging requires a different index
+// than searching.
+//
+// Part of the ht://Dig package <http://www.htdig.org/>
+// Copyright (c) 1995-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: DocumentDB.h,v 1.14 2004/05/28 13:15:12 lha Exp $
+//
+
+#ifndef _DocumentDB_h_
+#define _DocumentDB_h_
+
+#include "DocumentRef.h"
+#include "List.h"
+#include "Database.h"
+#include "IntObject.h"
+
+/* This is where the running document counter is stored.
+ The first real document number is the next. */
+#define NEXT_DOC_ID_RECORD 1
+
+
+class DocumentDB
+{
+public:
+ //
+ // Construction/Destruction
+ //
+ DocumentDB();
+ ~DocumentDB();
+
+
+ //
+ // Standard database operations
+ //
+ int Open(const String& filename, const String& indexfilename, const String& headname);
+ int Read(const String& filename, const String& indexfilename = 0, const String& headfilename = 0);
+ int Close();
+
+ int Add(DocumentRef &);
+ // These do not read in the excerpt
+ DocumentRef *operator [] (int DocID);
+ DocumentRef *operator [] (const String& url);
+ // You must call this to read the excerpt
+ int ReadExcerpt(DocumentRef &);
+ int Exists(int DocID);
+ int Delete(int DocID);
+
+ //
+ // The database keeps track of document ids. Here is a way to get
+ // the next document id.
+ //
+ int NextDocID() {return nextDocID++;}
+
+ // And here's a way to increment NextDocID after adding lots of records
+ // (for example when merging databases!)
+ void IncNextDocID (int next) {nextDocID += next;}
+
+ //
+ // We will need to be able to iterate over the complete database.
+ //
+
+ // This returns a list of all the URLs, as String *
+ List *URLs();
+
+ // This returns a list of all the DocIDs, as IntObject *
+ List *DocIDs();
+
+ // Dump the database out to an ASCII text file
+ int DumpDB(const String& filename, int verbose = 0);
+
+ // Read in the database from an ASCII text file
+ // (created by DumpDB)
+ int LoadDB(const String& filename, int verbose = 0);
+
+private:
+ Database *dbf;
+ Database *i_dbf;
+ Database *h_dbf;
+ int isopen;
+ int isread;
+ int nextDocID;
+};
+
+#endif
+
+