| 527 | } |
| 528 | |
| 529 | void QcMLFile::merge(const QcMLFile& addendum, const String& setname) |
| 530 | { |
| 531 | //~ runs (and create set if setname not empty) |
| 532 | for (std::map<String, std::vector<QualityParameter> >::const_iterator it = addendum.runQualityQPs_.begin(); it != addendum.runQualityQPs_.end(); ++it) |
| 533 | { |
| 534 | runQualityQPs_[it->first].insert(runQualityQPs_[it->first].end(), it->second.begin(), it->second.end()); |
| 535 | std::sort(runQualityQPs_[it->first].begin(), runQualityQPs_[it->first].end()); |
| 536 | runQualityQPs_[it->first].erase(std::unique(runQualityQPs_[it->first].begin(), runQualityQPs_[it->first].end()), runQualityQPs_[it->first].end()); |
| 537 | if (!setname.empty()) |
| 538 | { |
| 539 | setQualityQPs_members_[setname].insert(it->first); |
| 540 | } |
| 541 | } |
| 542 | for (std::map<String, std::vector<Attachment> >::const_iterator it = addendum.runQualityAts_.begin(); it != addendum.runQualityAts_.end(); ++it) |
| 543 | { |
| 544 | runQualityAts_[it->first].insert(runQualityAts_[it->first].end(), it->second.begin(), it->second.end()); |
| 545 | std::sort(runQualityAts_[it->first].begin(), runQualityAts_[it->first].end()); |
| 546 | runQualityAts_[it->first].erase(std::unique(runQualityAts_[it->first].begin(), runQualityAts_[it->first].end()), runQualityAts_[it->first].end()); |
| 547 | if (!setname.empty()) |
| 548 | { |
| 549 | setQualityQPs_members_[setname].insert(it->first); |
| 550 | } |
| 551 | } |
| 552 | |
| 553 | // sets |
| 554 | //~ TODO sets are not supposed to overlap - throw error if so |
| 555 | setQualityQPs_members_.insert(addendum.setQualityQPs_members_.begin(), addendum.setQualityQPs_members_.end()); |
| 556 | for (std::map<String, std::vector<QualityParameter> >::const_iterator it = addendum.setQualityQPs_.begin(); it != addendum.setQualityQPs_.end(); ++it) |
| 557 | { |
| 558 | setQualityQPs_[it->first].insert(setQualityQPs_[it->first].end(), it->second.begin(), it->second.end()); |
| 559 | std::sort(setQualityQPs_[it->first].begin(), setQualityQPs_[it->first].end()); |
| 560 | setQualityQPs_[it->first].erase(std::unique(setQualityQPs_[it->first].begin(), setQualityQPs_[it->first].end()), setQualityQPs_[it->first].end()); |
| 561 | } |
| 562 | for (std::map<String, std::vector<Attachment> >::const_iterator it = addendum.setQualityAts_.begin(); it != addendum.setQualityAts_.end(); ++it) |
| 563 | { |
| 564 | setQualityAts_[it->first].insert(setQualityAts_[it->first].end(), it->second.begin(), it->second.end()); |
| 565 | std::sort(setQualityAts_[it->first].begin(), setQualityAts_[it->first].end()); |
| 566 | setQualityAts_[it->first].erase(std::unique(setQualityAts_[it->first].begin(), setQualityAts_[it->first].end()), setQualityAts_[it->first].end()); |
| 567 | } |
| 568 | } |
| 569 | |
| 570 | String QcMLFile::exportAttachment(const String& filename, const String& qpname) const |
| 571 | { |