UniSet @VERSION@
Классы | Открытые члены | Полный список членов класса
Класс uniset::DependencyResolver

#include <DependencyResolver.h>

Открытые члены

void addGroup (const std::string &name, const std::set< std::string > &depends={})
 
void addDependency (const std::string &group, const std::string &dependsOn)
 
bool hasGroup (const std::string &name) const
 
void clear ()
 
std::vector< std::string > resolve () const
 
std::vector< std::string > resolveReverse () const
 
std::set< std::string > getDependencies (const std::string &name) const
 

Подробное описание

Topological sort for process group dependencies. Ensures groups are started in correct order based on their dependencies.

Методы

◆ addDependency()

void uniset::DependencyResolver::addDependency ( const std::string &  group,
const std::string &  dependsOn 
)

Add dependency: 'group' depends on 'dependsOn'

◆ addGroup()

void uniset::DependencyResolver::addGroup ( const std::string &  name,
const std::set< std::string > &  depends = {} 
)

Add a group with its dependencies

◆ clear()

void uniset::DependencyResolver::clear ( )

Clear all groups

◆ getDependencies()

std::set< std::string > uniset::DependencyResolver::getDependencies ( const std::string &  name) const

Get dependencies for a group

◆ hasGroup()

bool uniset::DependencyResolver::hasGroup ( const std::string &  name) const

Check if group exists

◆ resolve()

std::vector< std::string > uniset::DependencyResolver::resolve ( ) const

Perform topological sort. Returns groups in order they should be started. Throws CyclicDependencyException if cycle detected. Throws UnknownDependencyException if dependency refers to unknown group.

◆ resolveReverse()

std::vector< std::string > uniset::DependencyResolver::resolveReverse ( ) const

Reverse order for shutdown. Returns groups in order they should be stopped.