sortDependencies method
void
sortDependencies()
Sort the DAG for resolution in order of dependencies such that dependent components process after their dependencies.
Implementation
void sortDependencies() {
var optimistic = DependencyGraphNodeSorter<Component>();
var order = optimistic.sort(this);
if (order.isEmpty) {
// cycle detected, use a more robust solver
var robust = TarjansDependencyGraphNodeSorter<Component>();
order = robust.sort(this);
}
_dependencyOrder = order;
for (final component in _dependencyOrder) {
component.graphOrder = graphOrder++;
// component.dirt = 255;
}
dirt |= ComponentDirt.components;
}