Arbiter
Dependency manager library that supports decentralization
Public Member Functions | List of all members
Arbiter::Requirement::Custom Class Referencefinal
Collaboration diagram for Arbiter::Requirement::Custom:
[legend]

Public Member Functions

 Custom (ArbiterRequirementPredicate predicate, std::shared_ptr< const void > context)
 
std::unique_ptr< Baseclone () const override
 
std::unique_ptr< ArbiterRequirementcloneRequirement () const
 
std::ostream & describe (std::ostream &os) const override
 
size_t hash () const noexcept override
 
std::unique_ptr< ArbiterRequirementintersect (const ArbiterRequirement &rhs) const override
 Attempts to create a requirement which expresses the intersection of this requirement and the given one. More...
 
bool operator!= (const Base &other) const
 
bool operator== (const Arbiter::Base &other) const override
 
virtual int priority () const noexcept
 Returns the priority of this requirement. More...
 
bool satisfiedBy (const ArbiterSelectedVersion &selectedVersion) const override
 Returns whether this requirement would be satisfied by using the given selected version. More...
 
virtual void visit (Arbiter::Requirement::Visitor &visitor) const
 Visits the requirement, then any child requirements. More...
 

Detailed Description

Definition at line 242 of file Requirement.h.

Constructor & Destructor Documentation

§ Custom()

Arbiter::Requirement::Custom::Custom ( ArbiterRequirementPredicate  predicate,
std::shared_ptr< const void >  context 
)
explicit

Definition at line 245 of file Requirement.h.

Member Function Documentation

§ clone()

std::unique_ptr<Base> Arbiter::Requirement::Custom::clone ( ) const
overridevirtual

Implements Arbiter::Base.

Definition at line 257 of file Requirement.h.

§ cloneRequirement()

std::unique_ptr<ArbiterRequirement> ArbiterRequirement::cloneRequirement ( ) const
inherited

§ describe()

std::ostream& Arbiter::Requirement::Custom::describe ( std::ostream &  os) const
overridevirtual

Implements Arbiter::Base.

Definition at line 252 of file Requirement.h.

§ hash()

size_t Arbiter::Requirement::Custom::hash ( ) const
overridevirtualnoexcept

Implements ArbiterRequirement.

§ intersect()

std::unique_ptr<ArbiterRequirement> Arbiter::Requirement::Custom::intersect ( const ArbiterRequirement rhs) const
overridevirtual

Attempts to create a requirement which expresses the intersection of this requirement and the given one.

In other words, this attempts to find the loosest possible requirement which is a superset of the two inputs. Any version which passes the intersected requirement would also pass either one of the original inputs.

Returns nullptr if no intersection is possible.

Implements ArbiterRequirement.

§ operator!=()

bool Arbiter::Base::operator!= ( const Base other) const
inherited

Definition at line 28 of file Types.h.

§ operator==()

bool Arbiter::Requirement::Custom::operator== ( const Arbiter::Base other) const
overridevirtual

Implements Arbiter::Base.

§ priority()

virtual int ArbiterRequirement::priority ( ) const
virtualnoexceptinherited

Returns the priority of this requirement.

Reimplemented in Arbiter::Requirement::Prioritized, and Arbiter::Requirement::Compound.

Definition at line 36 of file Requirement.h.

§ satisfiedBy()

bool Arbiter::Requirement::Custom::satisfiedBy ( const ArbiterSelectedVersion selectedVersion) const
overridevirtual

Returns whether this requirement would be satisfied by using the given selected version.

Implements ArbiterRequirement.

§ visit()

virtual void ArbiterRequirement::visit ( Arbiter::Requirement::Visitor visitor) const
virtualinherited

Visits the requirement, then any child requirements.

The default implementation simply visits this requirement.

Reimplemented in Arbiter::Requirement::Prioritized, and Arbiter::Requirement::Compound.


The documentation for this class was generated from the following file: