+ better "verbose" mode

This commit is contained in:
kelson42 2012-08-08 14:39:40 +00:00
parent 67211be8ad
commit 6067fab7f3
2 changed files with 69 additions and 27 deletions

View File

@ -36,7 +36,8 @@ namespace kiwix {
/* Constructor */ /* Constructor */
Indexer::Indexer() : Indexer::Indexer() :
keywordsBoostFactor(3) { keywordsBoostFactor(3),
verboseFlag(false) {
/* Initialize mutex */ /* Initialize mutex */
pthread_mutex_init(&threadIdsMutex, NULL); pthread_mutex_init(&threadIdsMutex, NULL);
@ -49,6 +50,7 @@ namespace kiwix {
pthread_mutex_init(&zimPathMutex, NULL); pthread_mutex_init(&zimPathMutex, NULL);
pthread_mutex_init(&indexPathMutex, NULL); pthread_mutex_init(&indexPathMutex, NULL);
pthread_mutex_init(&progressionMutex, NULL); pthread_mutex_init(&progressionMutex, NULL);
pthread_mutex_init(&verboseMutex, NULL);
/* Read the stopwords file */ /* Read the stopwords file */
//this->readStopWordsFile("/home/kelson/kiwix/moulinkiwix/stopwords/fr"); //this->readStopWordsFile("/home/kelson/kiwix/moulinkiwix/stopwords/fr");
@ -284,6 +286,10 @@ namespace kiwix {
#else #else
sleep(0.5); sleep(0.5);
#endif #endif
if (this->getVerboseFlag()) {
std::cout << "Waiting... ToParseQueue is empty for now..." << std::endl;
}
pthread_testcancel(); pthread_testcancel();
} }
@ -325,6 +331,10 @@ namespace kiwix {
#else #else
sleep(0.5); sleep(0.5);
#endif #endif
if (this->getVerboseFlag()) {
std::cout << "Waiting... ToIndexQueue is empty for now..." << std::endl;
}
pthread_testcancel(); pthread_testcancel();
} }
@ -395,6 +405,11 @@ namespace kiwix {
/* Manage */ /* Manage */
bool Indexer::start(const string zimPath, const string indexPath) { bool Indexer::start(const string zimPath, const string indexPath) {
if (this->getVerboseFlag()) {
std::cout << "Indexing of '" << zimPath << "' starting..." <<std::endl;
}
this->setProgression(0); this->setProgression(0);
this->setZimPath(zimPath); this->setZimPath(zimPath);
this->setIndexPath(indexPath); this->setIndexPath(indexPath);
@ -412,6 +427,12 @@ namespace kiwix {
} }
bool Indexer::isRunning() { 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(); return this->isArticleExtractorRunning() || this->isArticleIndexerRunning() || this->isArticleParserRunning();
} }
@ -457,4 +478,19 @@ namespace kiwix {
return true; 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;
}
} }

View File

@ -65,6 +65,38 @@ namespace kiwix {
bool stop(); bool stop();
bool isRunning(); bool isRunning();
unsigned int getProgression(); 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<std::string> 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: private:
pthread_mutex_t threadIdsMutex; pthread_mutex_t threadIdsMutex;
@ -130,32 +162,6 @@ namespace kiwix {
string indexPath; string indexPath;
void setIndexPath(const string path); void setIndexPath(const string path);
string getIndexPath(); 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<std::string> stopWords;
/* Boost factor */
unsigned int keywordsBoostFactor;
inline unsigned int getTitleBoostFactor(const unsigned int contentLength) {
return contentLength / 500 + 1;
}
}; };
} }