aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-06-18 16:26:03 +0100
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2010-06-18 16:26:03 +0100
commita194398c8457fda2370ea0856b04ca9ec813af4b (patch)
tree07ee1903115fa819b342a07d0a737478e560972e
parent797685710b6f60cb299b72036cfc3bcd8a13eafb (diff)
downloadpaludis-a194398c8457fda2370ea0856b04ca9ec813af4b.tar.gz
paludis-a194398c8457fda2370ea0856b04ca9ec813af4b.tar.xz
More specific visitors, since apparently they work
-rw-r--r--paludis/resolver/decision.hh16
1 files changed, 15 insertions, 1 deletions
diff --git a/paludis/resolver/decision.hh b/paludis/resolver/decision.hh
index e83c384..ed064ff 100644
--- a/paludis/resolver/decision.hh
+++ b/paludis/resolver/decision.hh
@@ -99,9 +99,20 @@ namespace paludis
};
class PALUDIS_VISIBLE ConfirmableDecision :
- public Decision
+ public Decision,
+ public virtual DeclareAbstractAcceptMethods<ConfirmableDecision, MakeTypeList<
+ ChangesToMakeDecision, RemoveDecision, BreakDecision>::Type>
{
public:
+ typedef DeclareAbstractAcceptMethods<ConfirmableDecision,
+ MakeTypeList<ChangesToMakeDecision, RemoveDecision, BreakDecision>::Type> MoreSpecificVisitor;
+
+ typedef MoreSpecificVisitor::VisitableTypeList VisitableTypeList;
+ typedef MoreSpecificVisitor::VisitableBaseClass VisitableBaseClass;
+
+ using MoreSpecificVisitor::accept_returning;
+ using MoreSpecificVisitor::accept;
+
static const std::tr1::shared_ptr<ConfirmableDecision> deserialise(
Deserialisation & d) PALUDIS_ATTRIBUTE((warn_unused_result));
@@ -120,6 +131,7 @@ namespace paludis
class PALUDIS_VISIBLE ChangesToMakeDecision :
public ChangeOrRemoveDecision,
public ImplementAcceptMethods<Decision, ChangesToMakeDecision>,
+ public ImplementAcceptMethods<ConfirmableDecision, ChangesToMakeDecision>,
private PrivateImplementationPattern<ChangesToMakeDecision>
{
public:
@@ -163,6 +175,7 @@ namespace paludis
class PALUDIS_VISIBLE RemoveDecision :
public ChangeOrRemoveDecision,
public ImplementAcceptMethods<Decision, RemoveDecision>,
+ public ImplementAcceptMethods<ConfirmableDecision, RemoveDecision>,
private PrivateImplementationPattern<RemoveDecision>
{
public:
@@ -213,6 +226,7 @@ namespace paludis
class PALUDIS_VISIBLE BreakDecision :
public ConfirmableDecision,
public ImplementAcceptMethods<Decision, BreakDecision>,
+ public ImplementAcceptMethods<ConfirmableDecision, BreakDecision>,
private PrivateImplementationPattern<BreakDecision>
{
public: