23 #ifndef DOBBYRDKPLUGINDEPENDENCYSOLVER_H
24 #define DOBBYRDKPLUGINDEPENDENCYSOLVER_H
29 #include <boost/graph/adjacency_list.hpp>
43 bool addDependency(
const std::string &pluginName,
const std::string &dependencyName);
49 using VertexIndexProperty = boost::property<boost::vertex_index_t, std::size_t>;
50 using VertexNameProperty = boost::property<boost::vertex_name_t, std::string, VertexIndexProperty>;
51 using Graph = boost::adjacency_list<boost::setS, boost::vecS, boost::directedS, VertexNameProperty>;
52 using VertexDescriptor = Graph::vertex_descriptor;
53 using StringVertexDescriptorMap = std::map<std::string, VertexDescriptor>;
55 Graph mDependencyGraph;
56 StringVertexDescriptorMap mDescriptorMap;
Class that tracks dependencies between plugins.
Definition: DobbyRdkPluginDependencySolver.h:40
std::vector< std::string > getOrderOfDependency() const
Gets the names of the plugins in order of their dependency.
Definition: DobbyRdkPluginDependencySolver.cpp:132
bool addDependency(const std::string &pluginName, const std::string &dependencyName)
Adds a dependency between two plugins to the solver.
Definition: DobbyRdkPluginDependencySolver.cpp:80
bool addPlugin(const std::string &name)
Adds a plugin to the solver.
Definition: DobbyRdkPluginDependencySolver.cpp:42
std::vector< std::string > getReversedOrderOfDependency() const
Gets the names of the plugins in reversed order of their dependency.
Definition: DobbyRdkPluginDependencySolver.cpp:182