1 #ifndef ARBITER_DEPENDENCY_H 2 #define ARBITER_DEPENDENCY_H 8 #include <arbiter/Value.h> 14 struct ArbiterSelectedVersion;
20 typedef struct ArbiterProjectIdentifier ArbiterProjectIdentifier;
70 typedef struct ArbiterDependencyList ArbiterDependencyList;
84 typedef struct ArbiterResolvedDependency ArbiterResolvedDependency;
const struct ArbiterSelectedVersion * ArbiterResolvedDependencyVersion(const ArbiterResolvedDependency *dependency)
Returns the version which was selected for this resolved dependency.
std::unique_ptr< Arbiter::Base > clone() const override
ArbiterProjectIdentifier * ArbiterCreateProjectIdentifier(ArbiterUserValue value)
Creates a project identifier from the given opaque data.
const void * ArbiterProjectIdentifierValue(const ArbiterProjectIdentifier *projectIdentifier)
Returns the opaque data which was provided to ArbiterCreateProjectIdentifier().
const struct ArbiterRequirement * ArbiterDependencyRequirement(const ArbiterDependency *dependency)
Returns the version requirement of this dependency.
ArbiterResolvedDependency * ArbiterCreateResolvedDependency(const ArbiterProjectIdentifier *project, const struct ArbiterSelectedVersion *version)
Creates a fully resolved dependency referring to the specified version of the given project...
const ArbiterProjectIdentifier * ArbiterDependencyProject(const ArbiterDependency *dependency)
Returns the project identified by this dependency.
ArbiterDependencyList * ArbiterCreateDependencyList(const ArbiterDependency *const *dependencies, size_t count)
Creates a dependency list which wraps a C array of ArbiterDependency objects.
ArbiterDependency * ArbiterCreateDependency(const ArbiterProjectIdentifier *projectIdentifier, const struct ArbiterRequirement *requirement)
Creates a dependency which specifies a version requirement of the given project.
const ArbiterProjectIdentifier * ArbiterResolvedDependencyProject(const ArbiterResolvedDependency *dependency)
Returns the project this resolved dependency refers to.
virtual std::unique_ptr< ArbiterRequirement > intersect(const ArbiterRequirement &rhs) const =0
Attempts to create a requirement which expresses the intersection of this requirement and the given o...