+ 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 */
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..." <<std::endl;
}
this->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;
}
}

View File

@ -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<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:
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<std::string> stopWords;
/* Boost factor */
unsigned int keywordsBoostFactor;
inline unsigned int getTitleBoostFactor(const unsigned int contentLength) {
return contentLength / 500 + 1;
}
};
}