gr::flowgraph
gnuradio/flowgraph.h
basic_block_vector_t basic_block_vector_t gr::flowgraph::d_blocks d_blocks gr::flowgraph::d_blocks
edge_vector_t edge_vector_t gr::flowgraph::d_edges d_edges gr::flowgraph::d_edges edges
msg_edge_vector_t msg_edge_vector_t gr::flowgraph::d_msg_edges d_msg_edges gr::flowgraph::d_msg_edges msg_edges
gr::logger_ptr gr::logger_ptr gr::flowgraph::d_logger d_logger gr::flowgraph::d_logger
gr::logger_ptr gr::logger_ptr gr::flowgraph::d_debug_logger d_debug_logger gr::flowgraph::d_debug_logger
GR_RUNTIME_API flowgraph_sptr GR_RUNTIME_API flowgraph_sptr make_flowgraph () make_flowgraph gr::flowgraph::make_flowgraph GR_RUNTIME_API
virtual gr::flowgraph::~flowgraph
()
~flowgraph
gr::flowgraph::~flowgraph

Destruct an arbitrary flowgraph.

void void gr::flowgraph::connect (const endpoint &src, const endpoint &dst) connect gr::flowgraph::connect const endpoint & src const endpoint & dst

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.

connect
disconnect
void void gr::flowgraph::disconnect (const endpoint &src, const endpoint &dst) disconnect gr::flowgraph::disconnect const endpoint & src const endpoint & dst

Disconnect two endpoints.

connect
disconnect
disconnect
disconnect
void void gr::flowgraph::connect (basic_block_sptr src_block, int src_port, basic_block_sptr dst_block, int dst_port) connect gr::flowgraph::connect basic_block_sptr src_block int src_port basic_block_sptr dst_block int dst_port

convenience wrapper; used to connect two endpoints

connect
void void gr::flowgraph::disconnect (basic_block_sptr src_block, int src_port, basic_block_sptr dst_block, int dst_port) disconnect gr::flowgraph::disconnect basic_block_sptr src_block int src_port basic_block_sptr dst_block int dst_port

convenience wrapper; used to disconnect two endpoints

disconnect
void void gr::flowgraph::connect (const msg_endpoint &src, const msg_endpoint &dst) connect 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.

void void gr::flowgraph::disconnect (const msg_endpoint &src, const msg_endpoint &dst) disconnect gr::flowgraph::disconnect const msg_endpoint & src const msg_endpoint & dst

Disconnect two message endpoints.

void void gr::flowgraph::validate () validate 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.

void void gr::flowgraph::clear () clear gr::flowgraph::clear

Clear existing flowgraph.

const edge_vector_t & const edge_vector_t & gr::flowgraph::edges () const edges gr::flowgraph::edges

Get vector of edges.

d_edges
const msg_edge_vector_t & const msg_edge_vector_t & gr::flowgraph::msg_edges () const msg_edges gr::flowgraph::msg_edges

Get vector of message edges.

d_msg_edges
basic_block_vector_t basic_block_vector_t gr::flowgraph::calc_used_blocks () calc_used_blocks 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.

a unique vector of used blocks

basic_block_vector_t basic_block_vector_t gr::flowgraph::topological_sort (basic_block_vector_t &blocks) topological_sort gr::flowgraph::topological_sort basic_block_vector_t & blocks

topologically sort blocks

Uses depth-first search to return a sorted vector of blocks

toplogically sorted vector of blocks. All the sources come first.

std::vector< basic_block_vector_t > std::vector< basic_block_vector_t > gr::flowgraph::partition () partition gr::flowgraph::partition

Calculate vector of disjoint graph partitions.

vector of disjoint vectors of topologically sorted blocks

gr::flowgraph::flowgraph
()
flowgraph
gr::flowgraph::flowgraph
std::vector< int > std::vector< int > gr::flowgraph::calc_used_ports (basic_block_sptr block, bool check_inputs) calc_used_ports gr::flowgraph::calc_used_ports basic_block_sptr block bool check_inputs
basic_block_vector_t basic_block_vector_t gr::flowgraph::calc_downstream_blocks (basic_block_sptr block, int port) calc_downstream_blocks gr::flowgraph::calc_downstream_blocks basic_block_sptr block int port calc_upstream_edge
edge_vector_t edge_vector_t gr::flowgraph::calc_upstream_edges (basic_block_sptr block) calc_upstream_edges gr::flowgraph::calc_upstream_edges basic_block_sptr block
bool bool gr::flowgraph::has_block_p (basic_block_sptr block) has_block_p gr::flowgraph::has_block_p basic_block_sptr block
edge edge gr::flowgraph::calc_upstream_edge (basic_block_sptr block, int port) calc_upstream_edge gr::flowgraph::calc_upstream_edge basic_block_sptr block int port calc_downstream_blocks
void void gr::flowgraph::check_valid_port (gr::io_signature::sptr sig, int port) check_valid_port gr::flowgraph::check_valid_port gr::io_signature::sptr sig int port
void void gr::flowgraph::check_valid_port (const msg_endpoint &e) check_valid_port gr::flowgraph::check_valid_port const msg_endpoint & e
void void gr::flowgraph::check_dst_not_used (const endpoint &dst) check_dst_not_used gr::flowgraph::check_dst_not_used const endpoint & dst
void void gr::flowgraph::check_type_match (const endpoint &src, const endpoint &dst) check_type_match gr::flowgraph::check_type_match const endpoint & src const endpoint & dst
edge_vector_t edge_vector_t gr::flowgraph::calc_connections (basic_block_sptr block, bool check_inputs) calc_connections gr::flowgraph::calc_connections basic_block_sptr block bool check_inputs
void void gr::flowgraph::check_contiguity (basic_block_sptr block, const std::vector< int > &used_ports, bool check_inputs) check_contiguity gr::flowgraph::check_contiguity basic_block_sptr block const std::vector< int > & used_ports bool check_inputs
basic_block_vector_t basic_block_vector_t gr::flowgraph::calc_downstream_blocks (basic_block_sptr block) calc_downstream_blocks gr::flowgraph::calc_downstream_blocks basic_block_sptr block
basic_block_vector_t basic_block_vector_t gr::flowgraph::calc_reachable_blocks (basic_block_sptr block, basic_block_vector_t &blocks) calc_reachable_blocks gr::flowgraph::calc_reachable_blocks basic_block_sptr block basic_block_vector_t & blocks
void void gr::flowgraph::reachable_dfs_visit (basic_block_sptr block, basic_block_vector_t &blocks) reachable_dfs_visit gr::flowgraph::reachable_dfs_visit basic_block_sptr block basic_block_vector_t & blocks
basic_block_vector_t basic_block_vector_t gr::flowgraph::calc_adjacent_blocks (basic_block_sptr block, basic_block_vector_t &blocks) calc_adjacent_blocks gr::flowgraph::calc_adjacent_blocks basic_block_sptr block basic_block_vector_t & blocks
basic_block_vector_t basic_block_vector_t gr::flowgraph::sort_sources_first (basic_block_vector_t &blocks) sort_sources_first gr::flowgraph::sort_sources_first basic_block_vector_t & blocks
bool bool gr::flowgraph::source_p (basic_block_sptr block) source_p gr::flowgraph::source_p basic_block_sptr block
void void gr::flowgraph::topological_dfs_visit (basic_block_sptr block, basic_block_vector_t &output) topological_dfs_visit gr::flowgraph::topological_dfs_visit basic_block_sptr block basic_block_vector_t & output

Class representing a directed, acyclic graph of basic blocks.

gr::flowgraph
d_blocks
d_edges
d_msg_edges
d_debug_logger
d_logger
std::shared_ptr< logger >
std::vector< basic_block_sptr >
std::vector< edge >
std::vector< msg_edge >
- gr::flowgraph
  calc_adjacent_blocks
- gr::flowgraph
  calc_connections
- gr::flowgraph
  calc_downstream_blocks
- gr::flowgraph
  calc_downstream_blocks
- gr::flowgraph
  calc_reachable_blocks
- gr::flowgraph
  calc_upstream_edge
- gr::flowgraph
  calc_upstream_edges
- gr::flowgraph
  calc_used_blocks
- gr::flowgraph
  calc_used_ports
- gr::flowgraph
  check_contiguity
- gr::flowgraph
  check_dst_not_used
- gr::flowgraph
  check_type_match
- gr::flowgraph
  check_valid_port
- gr::flowgraph
  check_valid_port
- gr::flowgraph
  clear
- gr::flowgraph
  connect
- gr::flowgraph
  connect
- gr::flowgraph
  connect
- gr::flowgraph
  d_blocks
- gr::flowgraph
  d_debug_logger
- gr::flowgraph
  d_edges
- gr::flowgraph
  d_logger
- gr::flowgraph
  d_msg_edges
- gr::flowgraph
  disconnect
- gr::flowgraph
  disconnect
- gr::flowgraph
  disconnect
- gr::flowgraph
  edges
- gr::flowgraph
  flowgraph
- gr::flowgraph
  has_block_p
- gr::flowgraph
  make_flowgraph
- gr::flowgraph
  msg_edges
- gr::flowgraph
  partition
- gr::flowgraph
  reachable_dfs_visit
- gr::flowgraph
  sort_sources_first
- gr::flowgraph
  source_p
- gr::flowgraph
  topological_dfs_visit
- gr::flowgraph
  topological_sort
- gr::flowgraph
  validate
- gr::flowgraph
  ~flowgraph