From ef940b5b45e36003cea54d7edcba996db1f921c7 Mon Sep 17 00:00:00 2001
From: Olivier Langella <Olivier.Langella@moulon.inra.fr>
Date: Sun, 23 Apr 2017 15:16:00 +0200
Subject: [PATCH] new hash sample scan key computed in constructor

---
 src/core/peptidematch.cpp | 10 +++++++++-
 src/core/peptidematch.h   |  3 +++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/core/peptidematch.cpp b/src/core/peptidematch.cpp
index c8e8c959e..5761314c3 100644
--- a/src/core/peptidematch.cpp
+++ b/src/core/peptidematch.cpp
@@ -23,9 +23,13 @@
 
 #include "peptidematch.h"
 
+std::hash<std::string> PeptideMatch::_hash_fn;
+
 PeptideMatch::PeptideMatch(MsRun * msrunid_sp, unsigned int scan) {
     _msrunid_sp = msrunid_sp;
     _scan = scan;
+
+    _hash_sample_scan = PeptideMatch::_hash_fn (QString("%1 %2").arg(msrunid_sp->getXmlId()).arg(_scan).toStdString());
 }
 
 void PeptideMatch::updateAutomaticFilters(const AutomaticFilterParameters & automatic_filter_parameters) {
@@ -42,6 +46,10 @@ void PeptideMatch::setEvalue(pappso::pappso_double evalue) {
     _evalue = evalue;
 }
 
+
+std::size_t PeptideMatch::getHashSampleScan() const {
+    return _hash_sample_scan;
+}
 pappso::pappso_double PeptideMatch::getEvalue() const {
     return _evalue;
 }
@@ -76,7 +84,7 @@ ValidationState PeptideMatch::getValidationState() const {
         return ValidationState::validAndChecked;
     } else if (isValid()) {
         return ValidationState::valid;
-    } 
+    }
     return ValidationState::notValid;
 }
 
diff --git a/src/core/peptidematch.h b/src/core/peptidematch.h
index 3e20533ac..6d885f715 100644
--- a/src/core/peptidematch.h
+++ b/src/core/peptidematch.h
@@ -35,6 +35,7 @@ class PeptideMatch
 {
 public :
     PeptideMatch(MsRun * msrunid_sp, unsigned int scan);
+    std::size_t getHashSampleScan() const;
 
     void setRetentionTime(pappso::pappso_double rt);
     void setEvalue(pappso::pappso_double evalue);
@@ -80,8 +81,10 @@ public :
     ValidationState getValidationState() const;
 
 private :
+    static std::hash<std::string> _hash_fn;
     MsRun * _msrunid_sp;
     unsigned int _scan;
+    size_t _hash_sample_scan;
     pappso::GrpPeptideSp _sp_grp_peptide;
     PeptideXtpSp _peptide_sp;
     pappso::pappso_double _rt;
-- 
GitLab