Class DependencyNode

Inheritance Relationships

Derived Types

Class Documentation

class DependencyNode

Subclassed by AgentFunctionDescription, HostFunctionDescription, SubModelDescription

Public Functions

virtual ~DependencyNode()

Constructors

template<typename A>
inline void dependsOn(A &dep)

Specifies that this agent function depends on the completion of all of the provided functions

Parameters

dependencyList – The host functions, agent functions and submodels which this depends on

template<typename A, typename ...Args>
inline void dependsOn(A &dep, Args&... dependencyList)

Protected Functions

void addDependent(DependencyNode &dependent)

Adds an agent function to this agent function’s list of dependents

void dependsOnImpl(DependencyNode &dependency)

Auxillary function for dependency construction

void setMinimumLayerDepth(const int minLayerDepth)

Sets the minimum layer depth for this agent function

Dependency functions

bool hasDependents() const

Accessors

Returns

Whether this agent function has any dependents

const std::vector<DependencyNode*> getDependents() const
Returns

Immutable vector of the dependents of this agent function

bool hasDependencies() const
Returns

Whether this agent function has any dependencies

const std::vector<DependencyNode*> getDependencies() const
Returns

The vector of the dependencies of this agent function

int getMinimumLayerDepth()
Returns

The minimum layer depth for this agent function

Protected Attributes

std::vector<DependencyNode*> dependents

Vector storing the ‘children’ of this agent function in the dependency tree, i.e. those functions which depend on the completion of this one

std::vector<DependencyNode*> dependencies

Vector storing the ‘parents’ of this agent function in the dependency tree, i.e. those functions which must be completed before this one may begin

int minLayerDepth = 0

This functions minimum layer depth in the execution graph

Friends

friend class DependencyGraph