- void reset();
- void define_component(const std::string &name, gr_block_sptr block);
- void connect(const std::string &src, int src_port,
- const std::string &dst, int dst_port);
- gr_block_sptr lookup_block(const std::string &name);
- std::string lookup_name(const gr_block_sptr block);
-
- void check_valid_port(gr_io_signature_sptr sig, int port);
- void check_dst_not_used(const std::string &name, int port);
- void check_type_match(gr_block_sptr src_block, int src_port,
- gr_block_sptr dst_block, int dst_port);
- void validate();
- gr_edge_vector_t calc_connections(const std::string &name, bool check_inputs); // false=use outputs
- std::vector<int> calc_used_ports(const std::string &name, bool check_inputs);
- void check_contiguity(gr_block_sptr block, const std::vector<int> &used_ports,
- bool check_inputs);
- void setup_connections();
- gr_buffer_sptr allocate_buffer(const std::string &name, int port);
- gr_block_vector_t calc_downstream_blocks(const std::string &name, int port);
- gr_block_vector_t calc_downstream_blocks(const std::string &name);
- gr_edge_vector_t calc_upstream_edges(const std::string &name);
- gr_block_vector_t calc_used_blocks();
- std::vector<gr_block_vector_t> partition();
- gr_block_vector_t calc_reachable_blocks(gr_block_sptr block, gr_block_vector_t &blocks);
- gr_block_vector_t topological_sort(gr_block_vector_t &blocks);
- void reachable_dfs_visit(gr_block_sptr block, gr_block_vector_t &blocks);
- gr_block_vector_t calc_adjacent_blocks(gr_block_sptr block, gr_block_vector_t &blocks);
- bool source_p(gr_block_sptr block);
- gr_block_vector_t sort_sources_first(gr_block_vector_t &blocks);
- void topological_dfs_visit(gr_block_sptr block, gr_block_vector_t &output);
+ void reset();
+ void connect(const gr_endpoint &src, const gr_endpoint &dst);
+ void disconnect(const gr_endpoint &src, const gr_endpoint &dst);
+ void check_valid_port(gr_io_signature_sptr sig, int port);
+ void check_dst_not_used(const gr_endpoint &dst);
+ void check_type_match(const gr_endpoint &src, const gr_endpoint &dst);
+ void validate();
+ gr_edge_vector_t calc_connections(gr_basic_block_sptr block, bool check_inputs); // false=use outputs
+ std::vector<int> calc_used_ports(gr_basic_block_sptr block, bool check_inputs);
+ void check_contiguity(gr_basic_block_sptr block, const std::vector<int> &used_ports, bool check_inputs);
+ void setup_connections();
+ void merge_connections(gr_simple_flowgraph_sptr sfg);
+
+ gr_buffer_sptr allocate_buffer(gr_basic_block_sptr block, int port);
+ gr_basic_block_vector_t calc_downstream_blocks(gr_basic_block_sptr block, int port);
+ gr_basic_block_vector_t calc_downstream_blocks(gr_basic_block_sptr block);
+ gr_edge_vector_t calc_upstream_edges(gr_basic_block_sptr block);
+ gr_basic_block_vector_t calc_used_blocks();
+ std::vector<gr_block_vector_t> partition();
+ gr_basic_block_vector_t calc_reachable_blocks(gr_basic_block_sptr block, gr_basic_block_vector_t &blocks);
+ gr_block_vector_t topological_sort(gr_basic_block_vector_t &blocks);
+ void reachable_dfs_visit(gr_basic_block_sptr block, gr_basic_block_vector_t &blocks);
+ gr_basic_block_vector_t calc_adjacent_blocks(gr_basic_block_sptr block, gr_basic_block_vector_t &blocks);
+ bool source_p(gr_basic_block_sptr block);
+ gr_basic_block_vector_t sort_sources_first(gr_basic_block_vector_t &blocks);
+ void topological_dfs_visit(gr_basic_block_sptr block, gr_block_vector_t &output);