diff --git a/src/common/kiwix/indexer.cpp b/src/common/kiwix/indexer.cpp index 3910db2b1..f43c35dd8 100644 --- a/src/common/kiwix/indexer.cpp +++ b/src/common/kiwix/indexer.cpp @@ -36,7 +36,8 @@ namespace kiwix { /* Constructor */ Indexer::Indexer() : - keywordsBoostFactor(3) { + keywordsBoostFactor(3), + verboseFlag(false) { /* Initialize mutex */ pthread_mutex_init(&threadIdsMutex, NULL); @@ -49,6 +50,7 @@ namespace kiwix { pthread_mutex_init(&zimPathMutex, NULL); pthread_mutex_init(&indexPathMutex, NULL); pthread_mutex_init(&progressionMutex, NULL); + pthread_mutex_init(&verboseMutex, NULL); /* Read the stopwords file */ //this->readStopWordsFile("/home/kelson/kiwix/moulinkiwix/stopwords/fr"); @@ -284,6 +286,10 @@ namespace kiwix { #else sleep(0.5); #endif + if (this->getVerboseFlag()) { + std::cout << "Waiting... ToParseQueue is empty for now..." << std::endl; + } + pthread_testcancel(); } @@ -325,6 +331,10 @@ namespace kiwix { #else sleep(0.5); #endif + if (this->getVerboseFlag()) { + std::cout << "Waiting... ToIndexQueue is empty for now..." << std::endl; + } + pthread_testcancel(); } @@ -395,6 +405,11 @@ namespace kiwix { /* Manage */ bool Indexer::start(const string zimPath, const string indexPath) { + + if (this->getVerboseFlag()) { + std::cout << "Indexing of '" << zimPath << "' starting..." <setProgression(0); this->setZimPath(zimPath); this->setIndexPath(indexPath); @@ -412,6 +427,12 @@ namespace kiwix { } bool Indexer::isRunning() { + if (this->getVerboseFlag()) { + std::cout << "isArticleExtractor running: " << (this->isArticleExtractorRunning() ? "yes" : "no") << std::endl; + std::cout << "isArticleIndexer running: " << (this->isArticleIndexerRunning() ? "yes" : "no") << std::endl; + std::cout << "isArticleParser running: " << (this->isArticleParserRunning() ? "yes" : "no") << std::endl; + } + return this->isArticleExtractorRunning() || this->isArticleIndexerRunning() || this->isArticleParserRunning(); } @@ -457,4 +478,19 @@ namespace kiwix { return true; } + /* Manage the verboseFlag */ + void Indexer::setVerboseFlag(const bool value) { + pthread_mutex_lock(&verboseMutex); + this->verboseFlag = value; + pthread_mutex_unlock(&verboseMutex); + } + + bool Indexer::getVerboseFlag() { + bool value; + pthread_mutex_lock(&verboseMutex); + value = this->verboseFlag; + pthread_mutex_unlock(&verboseMutex); + return value; + } + } diff --git a/src/common/kiwix/indexer.h b/src/common/kiwix/indexer.h index 0968f3eb7..46ae5f304 100644 --- a/src/common/kiwix/indexer.h +++ b/src/common/kiwix/indexer.h @@ -65,6 +65,38 @@ namespace kiwix { bool stop(); bool isRunning(); unsigned int getProgression(); + void setVerboseFlag(const bool value); + + protected: + virtual void indexingPrelude(const string indexPath) = 0; + virtual void index(const string &url, + const string &title, + const string &unaccentedTitle, + const string &keywords, + const string &content, + const string &snippet, + const string &size, + const string &wordCount) = 0; + virtual void flush() = 0; + virtual void indexingPostlude() = 0; + + /* Others */ + unsigned int countWords(const string &text); + + /* Stopwords */ + bool readStopWordsFile(const string path); + std::vector stopWords; + + /* Boost factor */ + unsigned int keywordsBoostFactor; + inline unsigned int getTitleBoostFactor(const unsigned int contentLength) { + return contentLength / 500 + 1; + } + + /* Verbose */ + pthread_mutex_t verboseMutex; + bool getVerboseFlag(); + bool verboseFlag; private: pthread_mutex_t threadIdsMutex; @@ -130,32 +162,6 @@ namespace kiwix { string indexPath; void setIndexPath(const string path); string getIndexPath(); - - protected: - virtual void indexingPrelude(const string indexPath) = 0; - virtual void index(const string &url, - const string &title, - const string &unaccentedTitle, - const string &keywords, - const string &content, - const string &snippet, - const string &size, - const string &wordCount) = 0; - virtual void flush() = 0; - virtual void indexingPostlude() = 0; - - /* Others */ - unsigned int countWords(const string &text); - - /* Stopwords */ - bool readStopWordsFile(const string path); - std::vector stopWords; - - /* Boost factor */ - unsigned int keywordsBoostFactor; - inline unsigned int getTitleBoostFactor(const unsigned int contentLength) { - return contentLength / 500 + 1; - } }; }