From 25c3aaf753a2296a1c36a566093d55f392a688c5 Mon Sep 17 00:00:00 2001 From: mtadel Date: Wed, 19 Mar 2008 12:20:13 +0000 Subject: [PATCH] Do not assume operator==/!=() is a member function. Improve const-correctness. --- EVE/EveHLT/AliEveHOMERSource.h | 7 ++++--- EVE/EveHLT/AliEveHOMERSourceMap.cxx | 4 ++-- EVE/EveHLT/AliEveHOMERSourceMap.h | 31 ++++++++++++++++------------- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/EVE/EveHLT/AliEveHOMERSource.h b/EVE/EveHLT/AliEveHOMERSource.h index 1b304b331a9..9770c4e2137 100644 --- a/EVE/EveHLT/AliEveHOMERSource.h +++ b/EVE/EveHLT/AliEveHOMERSource.h @@ -26,12 +26,13 @@ private: public: struct SourceId { - SourceId(): fDet(), fSDet(), fSSDet(), fType() {} TString fDet, fSDet, fSSDet, fType; + SourceId(): fDet(), fSDet(), fSSDet(), fType() {} + struct CmpByDet { - bool operator()(const SourceId& s1, const SourceId& s2) + bool operator()(const SourceId& s1, const SourceId& s2) const { Int_t r; if ((r = s1.fDet .CompareTo(s2.fDet) )) return r < 0; @@ -44,7 +45,7 @@ public: struct CmpByType { - bool operator()(const SourceId& s1, const SourceId& s2) + bool operator()(const SourceId& s1, const SourceId& s2) const { Int_t r; if ((r = s1.fType .CompareTo(s2.fType) )) return r < 0; diff --git a/EVE/EveHLT/AliEveHOMERSourceMap.cxx b/EVE/EveHLT/AliEveHOMERSourceMap.cxx index e7aef31f79b..c4ba32d6a1e 100644 --- a/EVE/EveHLT/AliEveHOMERSourceMap.cxx +++ b/EVE/EveHLT/AliEveHOMERSourceMap.cxx @@ -66,7 +66,7 @@ AliEveHOMERSourceMapByDet::AliEveHOMERSourceMapByDet(ESourceGrouping_e grouping) fMap() {} -TString AliEveHOMERSourceMapByDet::iterator_imp::description() +TString AliEveHOMERSourceMapByDet::iterator_imp::description() const { const AliEveHOMERSource::SourceId& sid = id(); @@ -124,7 +124,7 @@ AliEveHOMERSourceMapByType::AliEveHOMERSourceMapByType(ESourceGrouping_e groupin fMap() {} -TString AliEveHOMERSourceMapByType::iterator_imp::description() +TString AliEveHOMERSourceMapByType::iterator_imp::description() const { const AliEveHOMERSource::SourceId& sid = id(); diff --git a/EVE/EveHLT/AliEveHOMERSourceMap.h b/EVE/EveHLT/AliEveHOMERSourceMap.h index 5b8e51f0674..b0bf850fbd8 100644 --- a/EVE/EveHLT/AliEveHOMERSourceMap.h +++ b/EVE/EveHLT/AliEveHOMERSourceMap.h @@ -23,15 +23,16 @@ protected: { virtual ~iterator_imp_base() {} - virtual const AliEveHOMERSource::SourceId& id() = 0; + virtual const AliEveHOMERSource::SourceId& id() const = 0; + virtual const AliEveHOMERSource::SourceState& state() const = 0; virtual AliEveHOMERSource::SourceState& state() = 0; - virtual iterator_imp_base* clone() = 0; + virtual iterator_imp_base* clone() const = 0; virtual iterator_imp_base& operator++() = 0; - virtual bool operator!=(const iterator_imp_base& o) = 0; + virtual bool operator!=(const iterator_imp_base& o) const = 0; - virtual TString description() = 0; + virtual TString description() const = 0; }; public: @@ -106,19 +107,20 @@ protected: iterator_imp(Map_i mi) : Map_i(mi) {} virtual ~iterator_imp() {} - virtual const AliEveHOMERSource::SourceId& id() { return Map_i::operator*().first; } + virtual const AliEveHOMERSource::SourceId& id() const { return Map_i::operator*().first; } + virtual const AliEveHOMERSource::SourceState& state() const { return Map_i::operator*().second; } virtual AliEveHOMERSource::SourceState& state() { return Map_i::operator*().second; } - virtual iterator_imp* clone() + virtual iterator_imp* clone() const { return new iterator_imp(*this); } virtual iterator_imp& operator++() { Map_i::operator++(); return *this; } - virtual bool operator!=(const iterator_imp_base& o) - { return Map_i::operator!=(dynamic_cast(o)); } + virtual bool operator!=(const iterator_imp_base& rhs) const + { const Map_i &lhs = *this; return lhs != dynamic_cast(rhs); } - virtual TString description(); + virtual TString description() const; }; void insert(AliEveHOMERSource::SourceId& sid, AliEveHOMERSource::SourceState& sst, Bool_t def_state); @@ -155,19 +157,20 @@ protected: iterator_imp(Map_i mi) : Map_i(mi) {} virtual ~iterator_imp() {} - virtual const AliEveHOMERSource::SourceId& id() { return Map_i::operator*().first; } + virtual const AliEveHOMERSource::SourceId& id() const { return Map_i::operator*().first; } + virtual const AliEveHOMERSource::SourceState& state() const { return Map_i::operator*().second; } virtual AliEveHOMERSource::SourceState& state() { return Map_i::operator*().second; } - virtual iterator_imp* clone() + virtual iterator_imp* clone() const { return new iterator_imp(*this); } virtual iterator_imp& operator++() { Map_i::operator++(); return *this; } - virtual bool operator!=(const iterator_imp_base& o) - { return Map_i::operator!=(dynamic_cast(o)); } + virtual bool operator!=(const iterator_imp_base& rhs) const + { const Map_i &lhs = *this; return lhs != dynamic_cast(rhs); } - virtual TString description(); + virtual TString description() const; }; void insert(AliEveHOMERSource::SourceId& sid, AliEveHOMERSource::SourceState& sst, Bool_t def_state); -- 2.39.3