openmediavault  4.0 (Arrakis)
The open network attached storage solution
Public Member Functions | List of all members
OMV\Util\TopologicalSort Class Reference

Public Member Functions

 clean ()
 
 add ($node, $deps=[])
 
 sort ($ignoreMissing=TRUE)
 

Detailed Description

Sorts a series of dependencies in linear order (topological sort).

$tsort = new \OMV\Util\TopologicalSort;
$tsort->add("node1", array());
$tsort->add("node2", "node1");
$tsort->add("node4", array("node2"));
$tsort->add("node5", array("node4", "node3"));
print_r($tsort->sort(TRUE));
The result will be:
Array
(
[0] => node1
[1] => node2
[2] => node4
[3] => node5
)

Member Function Documentation

◆ add()

OMV\Util\TopologicalSort::add (   $node,
  $deps = [] 
)

Add a node and its dependencies.

Parameters
string$nodeThe node.
mixed$depsThe node dependencies. This can be an array or a string. Defaults to an empty array.
Returns
TRUE if successful, otherwise FALSE.

◆ clean()

OMV\Util\TopologicalSort::clean ( )

Cleanup the internal structures.

◆ sort()

OMV\Util\TopologicalSort::sort (   $ignoreMissing = TRUE)
Parameters
boolean$ignoreMissingIgnore dependency nodes that do not exist. Defaults to TRUE.
Returns
Returns the sorted nodes based on the given dependencies, otherwise FALSE if the dependencies can not be solved.

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