Arbiter
Dependency manager library that supports decentralization
|
Represents a fully consistent, resolved dependency graph, preserving relationships between dependencies. More...
Classes | |
struct | NodeValue |
Public Types | |
using | EdgeMap = std::unordered_map< NodeKey, std::set< NodeKey >> |
using | NodeKey = ArbiterProjectIdentifier |
using | NodeMap = std::unordered_map< NodeKey, NodeValue > |
Public Member Functions | |
void | addNode (ArbiterResolvedDependency node, const ArbiterRequirement &initialRequirement, const Arbiter::Optional< ArbiterProjectIdentifier > &dependent) noexcept(false) |
Attempts to add the given node into the graph, as a dependency of dependent if specified. More... | |
std::unique_ptr< Arbiter::Base > | clone () const override |
ArbiterResolvedDependencyInstaller | createInstaller () const |
std::ostream & | describe (std::ostream &os) const override |
const EdgeMap & | edges () const |
const NodeMap & | nodes () const |
bool | operator!= (const Base &other) const |
bool | operator== (const Arbiter::Base &other) const override |
ArbiterResolvedDependency | resolveNode (const NodeMap::key_type &key) const |
Static Public Member Functions | |
static ArbiterResolvedDependency | resolveNode (const NodeMap::value_type &node) |
Represents a fully consistent, resolved dependency graph, preserving relationships between dependencies.
using ArbiterResolvedDependencyGraph::EdgeMap = std::unordered_map<NodeKey, std::set<NodeKey>> |
using ArbiterResolvedDependencyGraph::NodeMap = std::unordered_map<NodeKey, NodeValue> |
|
noexcept |
Attempts to add the given node into the graph, as a dependency of dependent
if specified.
If the given node refers to a project which already exists in the graph, this method will attempt to intersect the version requirements of both.
Throws an exception if this addition would make the graph inconsistent.
|
overridevirtual |
Implements Arbiter::Base.
ArbiterResolvedDependencyInstaller ArbiterResolvedDependencyGraph::createInstaller | ( | ) | const |
|
overridevirtual |
Implements Arbiter::Base.
const EdgeMap& ArbiterResolvedDependencyGraph::edges | ( | ) | const |
const NodeMap& ArbiterResolvedDependencyGraph::nodes | ( | ) | const |
|
inherited |
|
overridevirtual |
Implements Arbiter::Base.
|
static |
ArbiterResolvedDependency ArbiterResolvedDependencyGraph::resolveNode | ( | const NodeMap::key_type & | key | ) | const |