ExitCodes main_(int, const char **) { //------------------------------------------------------------- // parameter handling //------------------------------------------------------------- String in1 = getStringOption_("in1"); String in2 = getStringOption_("in2"); double acceptable_ratio = getDoubleOption_("ratio"); double acceptable_absdiff = getDoubleOption_("absdiff"); StringList whitelist = getStringList_("whitelist"); StringList raw_matched_whitelist = getStringList_("matched_whitelist"); int verbose_level = getIntOption_("verbose"); int tab_width = getIntOption_("tab_width"); int first_column = getIntOption_("first_column"); // This is for debugging the parsing of whitelist_ from cmdline or ini file. Converting StringList back to String is intentional. writeDebug_(String("whitelist: ") + String(whitelist) + " (size: " + whitelist.size() + ")", 1); writeDebug_(String("matched_whitelist: ") + String(raw_matched_whitelist) + " (size: " + raw_matched_whitelist.size() + ")", 1); OpenMS::FuzzyStringComparator fsc; std::vector< std::pair<std::string, std::string> > parsed_matched_whitelist; for (Size i = 0; i < raw_matched_whitelist.size(); i++) { // Split each entry at the colon to produce a pair of strings std::vector<String> tmp; raw_matched_whitelist[i].split(":", tmp); if (tmp.size() != 2) { throw Exception::IllegalArgument(__FILE__, __LINE__, __PRETTY_FUNCTION__, String(raw_matched_whitelist[i]) + " does not have the format String1:String2"); } std::pair<std::string, std::string> tmp_tuple(tmp[0], tmp[1]); parsed_matched_whitelist.push_back(tmp_tuple); } fsc.setAcceptableRelative(acceptable_ratio); fsc.setAcceptableAbsolute(acceptable_absdiff); fsc.setWhitelist(whitelist); fsc.setMatchedWhitelist(parsed_matched_whitelist); fsc.setVerboseLevel(verbose_level); fsc.setTabWidth(tab_width); fsc.setFirstColumn(first_column); if (fsc.compareFiles(in1, in2)) { return EXECUTION_OK; } else { // TODO think about better exit codes. return PARSE_ERROR; } }
ExitCodes main_(int, const char **) { //------------------------------------------------------------- // parameter handling //------------------------------------------------------------- String in1 = getStringOption_("in1"); String in2 = getStringOption_("in2"); double acceptable_ratio = getDoubleOption_("ratio"); double acceptable_absdiff = getDoubleOption_("absdiff"); StringList whitelist = getStringList_("whitelist"); int verbose_level = getIntOption_("verbose"); int tab_width = getIntOption_("tab_width"); int first_column = getIntOption_("first_column"); // This is for debugging the parsing of whitelist_ from cmdline or ini file. Converting StringList back to String is intentional. writeDebug_(String("whitelist: ") + String(whitelist) + " (size: " + whitelist.size() + ")", 1); OpenMS::FuzzyStringComparator fsc; fsc.setAcceptableRelative(acceptable_ratio); fsc.setAcceptableAbsolute(acceptable_absdiff); fsc.setWhitelist(whitelist); fsc.setVerboseLevel(verbose_level); fsc.setTabWidth(tab_width); fsc.setFirstColumn(first_column); if (fsc.compareFiles(in1, in2)) { return EXECUTION_OK; } else { // TODO think about better exit codes. return PARSE_ERROR; } }