#include #include #include #include #include "JAcoustics/JTransmission_t.hh" #include "JDetector/JDetector.hh" #include "JDetector/JDetectorToolkit.hh" #include "JDetector/JModuleRouter.hh" #include "JSupport/JMeta.hh" #include "Jeep/JContainer.hh" #include "Jeep/JPrint.hh" #include "Jeep/JParser.hh" #include "Jeep/JMessage.hh" /** * \author mdejong * * Auxiliary program to merge disable files. * */ int main(int argc, char **argv) { using namespace std; using namespace JPP; typedef JContainer< vector > container_type; string inputFile; string outputFile; string detectorFile; bool squash; int debug; try { JParser<> zap("Auxiliary program to merge disable files."); zap['f'] = make_field(inputFile, "disable input file"); zap['o'] = make_field(outputFile, "disable output file"); zap['a'] = make_field(detectorFile, "detector file") = ""; zap['q'] = make_field(squash, "squash meta data"); zap['d'] = make_field(debug) = 1; zap(argc, argv); } catch(const exception &error) { FATAL(error.what() << endl); } container_type data; data.load(inputFile.c_str()); if (squash) { data.comment.clear(); } data.comment.add(JMeta(argc, argv)); if (!data.empty()) { if (detectorFile != "") { JDetector detector; try { load(detectorFile, detector); } catch(const JException& error) { FATAL(error); } const JModuleRouter router(detector); for (container_type::iterator i = data.begin(); i != data.end(); ) { if (router.hasModule(i->rx)) ++i; else i = data.erase(i); } } } data.store(outputFile.c_str()); }