diff options
author | Daniel Burrows <dburrows@debian.org> | 2010-03-04 09:10:04 -0800 |
---|---|---|
committer | Daniel Burrows <dburrows@debian.org> | 2010-03-04 09:10:04 -0800 |
commit | 286a7748a9c7c189492b4d9b9e0de89df2a27fda (patch) | |
tree | 7aec71ef6e3b7332cfcd7e62c70d6ebe1503dd35 /src/generic/problemresolver | |
parent | ed565c03e7a274ba1ce53dc0f8dbb6e426340af1 (diff) | |
download | aptitude-286a7748a9c7c189492b4d9b9e0de89df2a27fda.tar.gz |
Implement a structural comparison operation on tier operations.
Diffstat (limited to 'src/generic/problemresolver')
-rw-r--r-- | src/generic/problemresolver/tier_operation.cc | 9 | ||||
-rw-r--r-- | src/generic/problemresolver/tier_operation.h | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/generic/problemresolver/tier_operation.cc b/src/generic/problemresolver/tier_operation.cc index 8d8ac5fc..1b6e83ba 100644 --- a/src/generic/problemresolver/tier_operation.cc +++ b/src/generic/problemresolver/tier_operation.cc @@ -92,6 +92,15 @@ tier tier_operation::op_impl::apply(const tier &t) const out_user_levels.end()); } +int tier_operation::op_impl::compare(const op_impl &other) const +{ + const int structural_level_cmp = aptitude::util::compare3(structural_level, other.structural_level); + if(structural_level_cmp != 0) + return structural_level_cmp; + else + return aptitude::util::compare3(actions, other.actions); +} + void tier_operation::op_impl::dump(std::ostream &out) const { out << "("; diff --git a/src/generic/problemresolver/tier_operation.h b/src/generic/problemresolver/tier_operation.h index e3ae3759..47ca0029 100644 --- a/src/generic/problemresolver/tier_operation.h +++ b/src/generic/problemresolver/tier_operation.h @@ -144,6 +144,10 @@ class tier_operation */ tier apply(const tier &t) const; + /** \brief Compare two operations by their identity. + */ + int compare(const op_impl &other) const; + /** \brief Dump this operation to a stream. */ void dump(std::ostream &out) const; }; |