diff options
Diffstat (limited to 'debian/htdig/htdig-3.2.0b6/htcommon/DocumentDB.h')
-rw-r--r-- | debian/htdig/htdig-3.2.0b6/htcommon/DocumentDB.h | 96 |
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 + + |