ResultProcessor::ResultProcessor(std::string path , int pprocNum) { oneclickLogger << FileLogger::LOG_INFO << "started processing results\n\n"; initPProcessor(pprocNum); std::string algName; std::vector<std::string> configPaths; std::vector<std::string> logPaths; std::vector<std::string> dirPaths; getDirectoryPaths(path , dirPaths); for (unsigned i = 0 ; i < dirPaths.size() ; i++) { //Creates directory logger. All directory specific info are logged here also. FileLogger * dirLogger = new FileLogger(dirPaths[i] + "/experiment.log"); oneclickLogger << FileLogger::LOG_INFO << "processing experiment: " << Utils::getLastItemInPath(dirPaths[i]) << "\n"; *dirLogger << FileLogger::LOG_INFO << "processing experiment: " << Utils::getLastItemInPath(dirPaths[i]) << "\n"; //Getting paths to all logs and configs in subdirectories getFilePaths(dirPaths[i], configPaths, INDEX_CONFIG); sortStrings(configPaths); getFilePaths(dirPaths[i], logPaths, INDEX_EACIRC); sortStrings(logPaths); oneclickLogger << FileLogger::LOG_INFO << Utils::itostr(configPaths.size()) << " configs and " << Utils::itostr(logPaths.size()) << " logs in experiment\n"; *dirLogger << FileLogger::LOG_INFO << Utils::itostr(configPaths.size()) << " configs and " << Utils::itostr(logPaths.size()) << " logs in experiment\n"; //Check for config consistency, won't procceed otherwise oneclickLogger << FileLogger::LOG_INFO << "checking differences in configuration files\n"; *dirLogger << FileLogger::LOG_INFO << "checking differences in configuration files\n"; if(checkConfigs(configPaths , algName , dirLogger)) { //Checks errors and warnings, if okay run PostProcessor oneclickLogger << FileLogger::LOG_INFO << "processing results, checking errors/warnings in logs\n"; *dirLogger << FileLogger::LOG_INFO << "processing results, checking errors/warnings in logs\n"; if (algName.length() == 0) algName = Utils::getLastItemInPath(dirPaths[i]); pprocessor->setBatchDirectoryPath(dirPaths[i] + "/"); pprocessor->setBatchName(algName); checkErrorsProcess(logPaths , dirLogger); pprocessor->calculateBatchResults(); oneclickLogger << FileLogger::LOG_INFO << "experiment result: " << pprocessor->getLastScore().valToString() << "\n"; *dirLogger << FileLogger::LOG_INFO << "experiment result: " << pprocessor->getLastScore().valToString() << "\n"; oneclickLogger << FileLogger::LOG_INFO << "experiment processed\n\n"; *dirLogger << FileLogger::LOG_INFO << "experiment processed\n\n"; } else { oneclickLogger << FileLogger::LOG_WARNING << "experiment won't be processed. Remove invalid runs before processing!\n\n"; *dirLogger << FileLogger::LOG_WARNING << "experiment won't be processed. Remove invalid runs before processing!\n\n"; } configPaths.clear(); logPaths.clear(); algName.clear(); delete dirLogger; } pprocessor->saveResults(); delete pprocessor; oneclickLogger << FileLogger::LOG_INFO << "finished processing results\n"; }
void parse() { yydebug = debugParserLevel; if (countTokens == true) { countTokensInCmdLineFiles(); } parseInternalModules(); parseCommandLineFiles(); checkConfigs(); finishCountingTokens(); parsed = true; }