18 #ifndef CUPT_COMMON_RESOLVER_SEEN
19 #define CUPT_COMMON_RESOLVER_SEEN
31 using namespace cache;
42 class CUPT_API Resolver
44 Resolver(
const Resolver&);
45 Resolver& operator=(
const Resolver&);
51 CUPT_LOCAL Reason() {};
54 virtual string toString()
const = 0;
61 struct UserReason:
public Reason
63 virtual string toString()
const;
71 struct ImplicitReason:
public Reason
73 virtual string toString()
const override;
82 struct AutoRemovalReason:
public Reason
84 virtual string toString()
const;
91 struct RelationExpressionReason:
public Reason
100 virtual string toString()
const;
111 string relatedPackageName;
115 virtual string toString()
const;
125 bool automaticallyInstalledFlag;
126 vector< shared_ptr< const Reason > > reasons;
127 vector< string > reasonPackageNames;
129 typedef map< string, SuggestedPackage > SuggestedPackages;
134 vector< shared_ptr< const Reason > > unresolvedProblems;
149 typedef std::function< UserAnswer::Type (
const Offer&) > CallbackType;
153 typedef uint32_t Value;
155 static const Value Must;
156 static const Value Try;
157 static const Value Wish;
162 operator Value()
const
180 void installVersion(
const vector< const BinaryVersion* >&,
181 const string& annotation =
string(), RequestImportance importance = RequestImportance::Must);
188 void removeVersions(
const vector< const BinaryVersion* >&,
189 const string& annotation =
string(), RequestImportance importance = RequestImportance::Must);
206 bool invert =
false,
const string& annotation =
string(), RequestImportance importance = RequestImportance::Must,
207 bool asAutomatic =
false) = 0;
211 virtual void upgrade() = 0;
217 virtual void setAutomaticallyInstalledFlag(
const string& packageName,
bool flagValue) = 0;
226 virtual bool resolve(CallbackType) = 0;