recollindex -i or -e: do not process the web queue

This commit is contained in:
Jean-Francois Dockes 2014-04-30 11:12:08 +02:00
parent d9fba74dbe
commit 7c9b13d64e
3 changed files with 12 additions and 7 deletions

View File

@ -178,7 +178,7 @@ bool ConfIndexer::indexFiles(list<string>& ifiles, IxFlag flag)
LOGDEB2(("ConfIndexer::indexFiles: fsindexer returned %d, "
"%d files remainining\n", ret, myfiles.size()));
if (m_dobeagle && !myfiles.empty()) {
if (m_dobeagle && !myfiles.empty() && !(flag & IxFNoWeb)) {
if (!m_beagler)
m_beagler = new BeagleQueueIndexer(m_config, &m_db, m_updater);
if (m_beagler) {
@ -237,7 +237,7 @@ bool ConfIndexer::updateDocs(std::vector<Rcl::Doc> &docs, IxFlag flag)
return true;
}
bool ConfIndexer::purgeFiles(std::list<string> &files)
bool ConfIndexer::purgeFiles(std::list<string> &files, IxFlag flag)
{
list<string> myfiles;
string origcwd = m_config->getOrigCwd();
@ -259,7 +259,7 @@ bool ConfIndexer::purgeFiles(std::list<string> &files)
if (m_fsindexer)
ret = m_fsindexer->purgeFiles(myfiles);
if (m_dobeagle && !myfiles.empty()) {
if (m_dobeagle && !myfiles.empty() && !(flag & IxFNoWeb)) {
if (!m_beagler)
m_beagler = new BeagleQueueIndexer(m_config, &m_db, m_updater);
if (m_beagler) {

View File

@ -99,7 +99,10 @@ class ConfIndexer {
enum ixType {IxTNone, IxTFs=1, IxTBeagleQueue=2,
IxTAll = IxTFs | IxTBeagleQueue};
// Misc indexing flags
enum IxFlag {IxFNone = 0, IxFIgnoreSkip = 1};
enum IxFlag {IxFNone = 0,
IxFIgnoreSkip = 1, // Ignore skipped lists
IxFNoWeb = 2, // Do not process the web queue.
};
/** Run indexers */
bool index(bool resetbefore, ixType typestorun);
@ -126,7 +129,7 @@ class ConfIndexer {
bool updateDocs(vector<Rcl::Doc> &docs, IxFlag f = IxFNone);
static bool docsToPaths(vector<Rcl::Doc> &docs, vector<string> &paths);
/** Purge a list of files. */
bool purgeFiles(list<string> &files);
bool purgeFiles(list<string> &files, IxFlag f = IxFNone);
/** Set in place reset mode */
void setInPlaceReset() {m_db.setInPlaceReset();}

View File

@ -209,6 +209,8 @@ bool recursive_index(RclConfig *config, const string& top)
// this case we're called repeatedly in the same process, and the
// confindexer is only created once by makeIndexerOrExit (but the db closed and
// flushed every time)
// We set the noweb flag (the web queue is processed by default when
// confindexer::indexFiles is called from the realtime monitor)
bool indexfiles(RclConfig *config, list<string> &filenames)
{
if (filenames.empty())
@ -216,7 +218,7 @@ bool indexfiles(RclConfig *config, list<string> &filenames)
makeIndexerOrExit(config, (op_flags & OPT_Z) != 0);
return confindexer->indexFiles(filenames, (op_flags&OPT_f) ?
ConfIndexer::IxFIgnoreSkip :
ConfIndexer::IxFNone);
ConfIndexer::IxFNoWeb);
}
// Delete a list of files. Same comments about call contexts as indexfiles.
@ -225,7 +227,7 @@ bool purgefiles(RclConfig *config, list<string> &filenames)
if (filenames.empty())
return true;
makeIndexerOrExit(config, (op_flags & OPT_Z) != 0);
return confindexer->purgeFiles(filenames);
return confindexer->purgeFiles(filenames, ConfIndexer::IxFNoWeb);
}
// Create stemming and spelling databases