--- a/src/rcldb/rcldb.h
+++ b/src/rcldb/rcldb.h
@@ -16,7 +16,7 @@
*/
#ifndef _DB_H_INCLUDED_
#define _DB_H_INCLUDED_
-/* @(#$Id: rcldb.h,v 1.56 2008-07-01 08:28:45 dockes Exp $ (C) 2004 J.F.Dockes */
+/* @(#$Id: rcldb.h,v 1.57 2008-07-28 08:42:52 dockes Exp $ (C) 2004 J.F.Dockes */
#include <string>
#include <list>
@@ -86,41 +86,44 @@
bool close();
bool isopen();
- /** Retrieve main database directory */
- string getDbDir();
-
/** Get explanation about last error */
string getReason() const {return m_reason;}
- /** Return list of configured stop words */
- const StopList& getStopList() const {return m_stops;}
-
- /** Field name to prefix translation (ie: author -> 'A') */
- bool fieldToPrefix(const string& fldname, string &pfx);
-
/** List possible stemmer names */
static list<string> getStemmerNames();
+ /** List existing stemming databases */
+ std::list<std::string> getStemLangs();
+
+ /* The next two, only for searchdata, should be somehow hidden */
+ /* Return list of configured stop words */
+ const StopList& getStopList() const {return m_stops;}
+ /* Field name to prefix translation (ie: author -> 'A') */
+ bool fieldToPrefix(const string& fldname, string &pfx);
+
/* Update-related methods ******************************************/
-
- /** Add document. The Doc class should have been filled as much as
- possible depending on the document type */
- bool add(const string &filename, const Doc &doc, const struct stat *stp);
/** Test if the db entry for the given filename/stat is up to date. This
* has the side-effect of setting the existence flag for the file document
* and all subdocs if any (for later use by 'purge()') */
- bool needUpdate(const string &filename, const struct stat *stp);
+ bool needUpdate(const string &udi, const string& sig);
+
+ /** Add document. The Doc class should have been filled as much as
+ * possible depending on the document type */
+ bool add(const string &udi, const Doc &doc);
+
+ /** Delete document(s) for given UDI, including subdocs */
+ bool purgeFile(const string &fn);
/** Remove documents that no longer exist in the file system. This
- depends on the update map, which is built during
- indexation. This should only be called after a full walk of
- the file system, else the update map will not be complete, and
- many documents will be deleted that shouldn't */
+ * depends on the update map, which is built during
+ * indexation. This should only be called after a full walk of
+ * the file system, else the update map will not be complete, and
+ * many documents will be deleted that shouldn't, which is why this
+ * has to be called externally, we can't know if the indexing
+ * pass was complete or partial.
+ */
bool purge();
-
- /** Delete document(s) for given filename */
- bool purgeFile(const string &filename);
/** Create stem expansion database for given language. */
bool createStemDb(const string &lang);
@@ -146,6 +149,9 @@
bool termMatch(MatchType typ, const string &lang, const string &s,
list<TermMatchEntry>& result, int max = -1);
+ /** Specific filename wildcard expansion */
+ bool filenameWildExp(const string& exp, list<string>& names);
+
/** Set parameters for synthetic abstract generation */
void setAbstractParams(int idxTrunc, int synthLen, int syntCtxLen);
@@ -153,12 +159,11 @@
* the input query. This uses index data only (no access to the file) */
bool makeDocAbstract(Doc &doc, Query *query, string& abstract);
- /** Get document for given filename and ipath */
+ /** Get document for given filename and ipath. Used by the 'history'
+ * feature (and nothing else?) */
bool getDoc(const string &fn, const string &ipath, Doc &doc, int *percent);
- /** Get a list of existing stemming databases */
- std::list<std::string> getStemLangs();
-
+ /* The following are mainly for the aspell module */
/** Whole term list walking. */
TermIter *termWalkOpen();
bool termWalkNext(TermIter *, string &term);
@@ -169,9 +174,6 @@
bool stemDiffers(const string& lang, const string& term,
const string& base);
- /** Filename wildcard expansion */
- bool filenameWildExp(const string& exp, list<string>& names);
-
/* This has to be public for access by embedded Query::Native */
Native *m_ndb;