UniSet 2.44.3
Класс 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.