41 #ifndef DESIGN_FLOW_MANAGER_HPP 42 #define DESIGN_FLOW_MANAGER_HPP 157 void RecursivelyAddSteps(
const DesignFlowStepSet& steps,
const bool unnecessary);
164 void DeExecute(
const vertex starting_vertex,
bool force_execution);
172 void WriteLoopDot()
const;
189 void virtual Exec() final;
213 vertex GetDesignFlowStep(const
std::
string& signature) const;
226 DesignFlowStepFactoryConstRef CGetDesignFlowStepFactory(const
std::
string& prefix) const;
232 void RegisterFactory(const DesignFlowStepFactoryConstRef factory);
The key comparison functor for design flow step; it puts necessary steps before unnecessary ones; in ...
const DesignFlowGraphRef design_flow_graph
The graph of steps composing the design flow.
DesignFlowStepNecessitySorter(const DesignFlowGraphConstRef _design_flow_graph)
Constructor.
const DesignFlowGraphConstRef design_flow_graph
The design flow graph.
CustomMap< size_t, CustomUnorderedMapStable< EdgeDescriptor, int > > edge_history
This structure stores "history of design flow graph manager - edges" First key is the iteration Secon...
std::set< vertex, DesignFlowStepNecessitySorter > possibly_ready
The set of potentially ready steps; when a step is added to set is ready to be executed, but it can become unready because of new added vertices.
static size_t step_counter
NOTE: static should be removed when all the design flow managers will be merged Counter of current it...
Class specification of the graph structures.
The base class for design step.
CustomOrderedMap< T, U > CustomMap
CONSTREF_FORWARD_DECL(DesignFlowGraph)
Definition of hash function for EdgeDescriptor.
CustomUnorderedMap< std::string, DesignFlowStepFactoryConstRef > design_flow_step_factories
The registered factories.
redefinition of map to manage ordered/unordered structures
absl::flat_hash_map< T, U, Hash, Eq, Alloc > CustomUnorderedMap
const DesignFlowGraphConstRef feedback_design_flow_graph
The design flow graph with feedback edges.
CustomMap< vertex, std::string > step_names
The name of each vertex (we have to store since it is possible that it cannot be recomputed at the en...
int debug_level
The debug level.
CustomMap< vertex, size_t > unchanged_executions
The number of times each step is executed with unchanged exit.
const ParameterConstRef parameters
The set of input parameters.
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
DesignFlowStep_Status
The status of a step.
const DesignFlowGraphsCollectionRef design_flow_graphs_collection
The bulk graph of steps composing the design flow.
Template definition of refcount.
const int output_level
The output level.
CustomMap< vertex, long > accumulated_execution_time
The accumulated times of each step.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
CustomMap< vertex, size_t > skipped_executions
The number of times the execution of a step is skipped.
REF_FORWARD_DECL(DesignFlowGraph)
x
Return the smallest n such that 2^n >= _x.
bool operator()(const vertex x, const vertex y) const
Compare position of two vertices.
CustomMap< vertex, size_t > success_executions
The number of times each step is executed with success.