gr_hier_block2_detail.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef INCLUDED_GR_HIER_BLOCK2_DETAIL_H
00022 #define INCLUDED_GR_HIER_BLOCK2_DETAIL_H
00023
00024 #include <gr_hier_block2.h>
00025 #include <gr_flat_flowgraph.h>
00026 #include <boost/utility.hpp>
00027
00028 class gr_hier_block2_detail : boost::noncopyable
00029 {
00030 public:
00031 gr_hier_block2_detail(gr_hier_block2 *owner);
00032 ~gr_hier_block2_detail();
00033
00034 void connect(gr_basic_block_sptr block);
00035 void connect(gr_basic_block_sptr src, int src_port,
00036 gr_basic_block_sptr dst, int dst_port);
00037 void disconnect(gr_basic_block_sptr block);
00038 void disconnect(gr_basic_block_sptr, int src_port,
00039 gr_basic_block_sptr, int dst_port);
00040 void disconnect_all();
00041 void lock();
00042 void unlock();
00043 void flatten_aux(gr_flat_flowgraph_sptr sfg) const;
00044
00045 private:
00046
00047
00048 gr_hier_block2 *d_owner;
00049 gr_hier_block2_detail *d_parent_detail;
00050 gr_flowgraph_sptr d_fg;
00051 gr_endpoint_vector_t d_inputs;
00052 gr_endpoint_vector_t d_outputs;
00053 gr_basic_block_vector_t d_blocks;
00054
00055 void connect_input(int my_port, int port, gr_basic_block_sptr block);
00056 void connect_output(int my_port, int port, gr_basic_block_sptr block);
00057 void disconnect_input(int my_port, int port, gr_basic_block_sptr block);
00058 void disconnect_output(int my_port, int port, gr_basic_block_sptr block);
00059 gr_endpoint resolve_port(int port, bool is_input);
00060 gr_endpoint resolve_endpoint(const gr_endpoint &endp, bool is_input) const;
00061 };
00062
00063 #endif