1 #ifndef ARBITER_RESOLVER_H 2 #define ARBITER_RESOLVER_H 8 #include <arbiter/Value.h> 13 struct ArbiterDependencyList;
14 struct ArbiterProjectIdentifier;
15 struct ArbiterResolvedDependencyGraph;
16 struct ArbiterSelectedVersion;
17 struct ArbiterSelectedVersionList;
23 typedef struct ArbiterResolver ArbiterResolver;
39 struct ArbiterDependencyList *(*createDependencyList)(
const ArbiterResolver *resolver,
const struct ArbiterProjectIdentifier *project,
const struct ArbiterSelectedVersion *selectedVersion,
char **error);
49 struct ArbiterSelectedVersionList *(*createAvailableVersionsList)(
const ArbiterResolver *resolver,
const struct ArbiterProjectIdentifier *project,
char **error);
66 struct ArbiterSelectedVersion *(*createSelectedVersionForMetadata)(
const ArbiterResolver *resolver,
const void *metadata);
67 } ArbiterResolverBehaviors;
76 ArbiterResolver *
ArbiterCreateResolver (ArbiterResolverBehaviors behaviors,
const struct ArbiterDependencyList *dependencyList, ArbiterUserContext context);
struct ArbiterResolvedDependencyGraph * ArbiterResolverCreateResolvedDependencyGraph(ArbiterResolver *resolver, char **error)
Attempts to resolve all dependencies.
const void * ArbiterResolverContext(const ArbiterResolver *resolver)
Returns any context data which was provided to ArbiterCreateResolver().
ArbiterResolver * ArbiterCreateResolver(ArbiterResolverBehaviors behaviors, const struct ArbiterDependencyList *dependencyList, ArbiterUserContext context)
Creates a dependency resolver, implemented using the given behaviors, which will attempt to pick comp...