summaryrefslogtreecommitdiff
path: root/src/generic/problemresolver
diff options
context:
space:
mode:
authorDaniel Burrows <dburrows@debian.org>2010-03-04 09:10:04 -0800
committerDaniel Burrows <dburrows@debian.org>2010-03-04 09:10:04 -0800
commit286a7748a9c7c189492b4d9b9e0de89df2a27fda (patch)
tree7aec71ef6e3b7332cfcd7e62c70d6ebe1503dd35 /src/generic/problemresolver
parented565c03e7a274ba1ce53dc0f8dbb6e426340af1 (diff)
downloadaptitude-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.cc9
-rw-r--r--src/generic/problemresolver/tier_operation.h4
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;
};