20 #ifndef ESSENTIA_SCHEDULER_NETWORK_H
21 #define ESSENTIA_SCHEDULER_NETWORK_H
26 #include "../streaming/streamingalgorithm.h"
27 #include "../essentiautil.h"
32 class AlgorithmComposite;
45 typedef std::set<streaming::Algorithm*>
AlgoSet;
const std::vector< NetworkNode * > & children() const
Definition: network.h:60
streaming::Algorithm * algorithm()
Definition: network.h:65
void addChild(NetworkNode *child)
Definition: network.h:62
void setChildren(const std::vector< NetworkNode * > &children)
Definition: network.h:61
streaming::Algorithm * _algo
Definition: network.h:73
const streaming::Algorithm * algorithm() const
Definition: network.h:64
std::vector< NetworkNode * > _children
Definition: network.h:74
std::vector< NetworkNode * > addVisibleDependencies(std::map< streaming::Algorithm *, NetworkNode * > &algoNodeMap)
NetworkNode(streaming::Algorithm *algo)
Definition: network.h:58
void clearVisibleNetwork()
streaming::Algorithm * _generator
Definition: network.h:207
void buildVisibleNetwork()
static Network * lastCreated
Definition: network.h:203
void printBufferFillState()
static std::vector< streaming::Algorithm * > innerVisibleAlgorithms(streaming::Algorithm *algo)
Network(streaming::Algorithm *generator, bool takeOwnership=true)
bool _takeOwnership
Definition: network.h:206
const std::vector< streaming::Algorithm * > & linearExecutionOrder() const
Definition: network.h:183
AlgoSet _algos
Definition: network.h:238
void update()
Definition: network.h:137
std::vector< streaming::Algorithm * > _toposortedNetwork
Definition: network.h:210
NetworkNode * visibleNetworkRoot()
Definition: network.h:171
void buildExecutionNetwork()
NetworkNode * _visibleNetworkRoot
Definition: network.h:208
void clearExecutionNetwork()
NetworkNode * _executionNetworkRoot
Definition: network.h:209
NetworkNode * executionNetworkRoot()
Definition: network.h:172
void topologicalSortExecutionNetwork()
streaming::Algorithm * findAlgorithm(const std::string &name)
Definition: streamingalgorithmcomposite.h:52
Definition: streamingalgorithm.h:140
AlgoVector computeCompositeDependencies(const streaming::Algorithm *algo)
void printNetworkBufferFillState()
AlgoSet parentBranchInsideComposite(streaming::AlgorithmComposite *composite, streaming::Algorithm *algo)
AlgoVector computeDependencies(const streaming::Algorithm *algo)
std::set< NetworkNode * > NodeSet
Definition: network.h:78
std::vector< NetworkNode * > NodeVector
Definition: network.h:77
std::set< streaming::Algorithm * > AlgoSet
Definition: network.h:45
AlgoVector computeNormalDependencies(const streaming::Algorithm *algo)
AlgoSet compositeInnerAlgos(streaming::Algorithm *algo)
void deleteNetwork(const streaming::Algorithm *algo)
void cacheDependencies(streaming::Algorithm *algo)
std::vector< streaming::Algorithm * > AlgoVector
Definition: network.h:44
std::stack< NetworkNode * > NodeStack
Definition: network.h:79
Definition: algorithm.h:28
bool contains(const std::vector< T > &v, const T &elem)
Definition: essentiautil.h:81