Class representing a directed, acyclic graph of basic blocks. More...
#include <gnuradio/flowgraph.h>
Public Member Functions | |
| virtual | ~flowgraph () |
| Destruct an arbitrary flowgraph. More... | |
| void | connect (const endpoint &src, const endpoint &dst) |
| Connect two endpoints. More... | |
| void | disconnect (const endpoint &src, const endpoint &dst) |
| Disconnect two endpoints. More... | |
| void | connect (basic_block_sptr src_block, int src_port, basic_block_sptr dst_block, int dst_port) |
| convenience wrapper; used to connect two endpoints More... | |
| void | disconnect (basic_block_sptr src_block, int src_port, basic_block_sptr dst_block, int dst_port) |
| convenience wrapper; used to disconnect two endpoints More... | |
| void | connect (const msg_endpoint &src, const msg_endpoint &dst) |
| Connect two message endpoints. More... | |
| void | disconnect (const msg_endpoint &src, const msg_endpoint &dst) |
| Disconnect two message endpoints. More... | |
| void | validate () |
| Validate flow graph. More... | |
| void | clear () |
| Clear existing flowgraph. More... | |
| const edge_vector_t & | edges () const |
| Get vector of edges. More... | |
| const msg_edge_vector_t & | msg_edges () const |
| Get vector of message edges. More... | |
| basic_block_vector_t | calc_used_blocks () |
| calculates all used blocks in a flow graph More... | |
| basic_block_vector_t | topological_sort (basic_block_vector_t &blocks) |
| topologically sort blocks More... | |
| std::vector< basic_block_vector_t > | partition () |
| Calculate vector of disjoint graph partions. More... | |
Protected Member Functions | |
| flowgraph () | |
| std::vector< int > | calc_used_ports (basic_block_sptr block, bool check_inputs) |
| basic_block_vector_t | calc_downstream_blocks (basic_block_sptr block, int port) |
| edge_vector_t | calc_upstream_edges (basic_block_sptr block) |
| bool | has_block_p (basic_block_sptr block) |
| edge | calc_upstream_edge (basic_block_sptr block, int port) |
Protected Attributes | |
| basic_block_vector_t | d_blocks |
| edge_vector_t | d_edges |
| msg_edge_vector_t | d_msg_edges |
Friends | |
| GR_RUNTIME_API flowgraph_sptr | make_flowgraph () |
Class representing a directed, acyclic graph of basic blocks.
|
virtual |
Destruct an arbitrary flowgraph.
|
protected |
|
protected |
|
protected |
|
protected |
| basic_block_vector_t gr::flowgraph::calc_used_blocks | ( | ) |
calculates all used blocks in a flow graph
Iterates over all message edges and stream edges, noting both endpoints in a vector.
|
protected |
| void gr::flowgraph::clear | ( | ) |
Clear existing flowgraph.
Connect two endpoints.
Checks the validity of both endpoints, and whether the destination is unused so far, then adds the edge to the internal list of edges.
|
inline |
convenience wrapper; used to connect two endpoints
| void gr::flowgraph::connect | ( | const msg_endpoint & | src, |
| const msg_endpoint & | dst | ||
| ) |
Connect two message endpoints.
Checks the validity of both endpoints, then adds the edge to the internal list of edges.
Disconnect two endpoints.
|
inline |
convenience wrapper; used to disconnect two endpoints
| void gr::flowgraph::disconnect | ( | const msg_endpoint & | src, |
| const msg_endpoint & | dst | ||
| ) |
Disconnect two message endpoints.
|
inline |
Get vector of edges.
|
protected |
|
inline |
Get vector of message edges.
| std::vector<basic_block_vector_t> gr::flowgraph::partition | ( | ) |
Calculate vector of disjoint graph partions.
| basic_block_vector_t gr::flowgraph::topological_sort | ( | basic_block_vector_t & | blocks | ) |
topologically sort blocks
Uses depth-first search to return a sorted vector of blocks
| void gr::flowgraph::validate | ( | ) |
Validate flow graph.
Gathers all used blocks, checks the contiguity of all connected in- and outputs, and calls the check_topology method of each block.
|
friend |
|
protected |
|
protected |
|
protected |