23 #ifndef INCLUDED_GR_FLOWGRAPH_H
24 #define INCLUDED_GR_FLOWGRAPH_H
44 int port()
const {
return d_port; }
51 return (d_basic_block == other.d_basic_block &&
52 d_port == other.d_port);
66 bool is_hier()
const {
return d_is_hier; }
75 return (d_basic_block == other.d_basic_block &&
188 std::vector<gr_basic_block_vector_t> partition();
209 void check_contiguity(
gr_basic_block_sptr block,
const std::vector<int> &used_ports,
bool check_inputs);
240 os << endp.
block() <<
":" << endp.
port();
247 os << edge.
src() <<
"->" << edge.
dst();
gr_endpoint(gr_basic_block_sptr block, int port)
Definition: gr_flowgraph.h:42
const gr_endpoint & dst() const
Definition: gr_flowgraph.h:96
GR_CORE_API gr_flowgraph_sptr gr_make_flowgraph()
bool is_hier() const
Definition: gr_flowgraph.h:66
std::ostream & operator<<(std::ostream &os, const gr_endpoint endp)
Definition: gr_flowgraph.h:238
gr_basic_block_sptr block() const
Definition: gr_flowgraph.h:64
GRUEL_API bool pmt_equal(const pmt_t &x, const pmt_t &y)
Class representing a msg connection between to graph msg endpoints.
Definition: gr_flowgraph.h:113
Definition: gr_flowgraph.h:55
std::vector< gr_basic_block_sptr > gr_basic_block_vector_t
Definition: gr_basic_block.h:288
std::vector< gr_endpoint >::iterator gr_endpoint_viter_t
Definition: gr_flowgraph.h:82
void disconnect(const gr_endpoint &src, const gr_endpoint &dst)
gr_endpoint()
Definition: gr_flowgraph.h:41
void connect(const gr_endpoint &src, const gr_endpoint &dst)
std::vector< gr_edge > gr_edge_vector_t
Definition: gr_flowgraph.h:105
~gr_msg_edge()
Definition: gr_flowgraph.h:118
gr_msg_edge()
Definition: gr_flowgraph.h:116
gr_msg_endpoint(gr_basic_block_sptr block, pmt::pmt_t port, bool is_hier=false)
Definition: gr_flowgraph.h:63
std::vector< gr_endpoint > gr_endpoint_vector_t
Definition: gr_flowgraph.h:81
gr_edge(const gr_endpoint &src, const gr_endpoint &dst)
Definition: gr_flowgraph.h:92
const gr_msg_endpoint & dst() const
Definition: gr_flowgraph.h:121
#define GR_CORE_API
Definition: gr_core_api.h:30
gr_msg_edge(const gr_msg_endpoint &src, const gr_msg_endpoint &dst)
Definition: gr_flowgraph.h:117
const gr_edge_vector_t & edges() const
Definition: gr_flowgraph.h:175
gr_edge()
Definition: gr_flowgraph.h:91
gr_msg_endpoint()
Definition: gr_flowgraph.h:62
std::vector< gr_msg_edge >::iterator gr_msg_edge_viter_t
Definition: gr_flowgraph.h:130
const gr_endpoint & src() const
Definition: gr_flowgraph.h:95
int port() const
Definition: gr_flowgraph.h:44
void set_hier(bool h)
Definition: gr_flowgraph.h:67
bool operator==(const gr_msg_endpoint &other) const
Definition: gr_flowgraph.h:73
gr_edge_vector_t d_edges
Definition: gr_flowgraph.h:192
pmt::pmt_t port() const
Definition: gr_flowgraph.h:65
const gr_msg_endpoint & src() const
Definition: gr_flowgraph.h:120
gr_basic_block_vector_t d_blocks
Definition: gr_flowgraph.h:191
Class representing a specific input or output graph endpoint.
Definition: gr_flowgraph.h:34
const gr_msg_edge_vector_t & msg_edges() const
Definition: gr_flowgraph.h:178
GRUEL_API const pmt_t PMT_NIL
gr_msg_edge_vector_t d_msg_edges
Definition: gr_flowgraph.h:193
Class representing a directed, acyclic graph of basic blocks.
Definition: gr_flowgraph.h:140
std::vector< gr_msg_edge > gr_msg_edge_vector_t
Definition: gr_flowgraph.h:129
bool operator==(const gr_endpoint &other) const
Definition: gr_flowgraph.h:49
boost::intrusive_ptr< pmt_base > pmt_t
typedef for shared pointer (transparent reference counting). See http://www.boost.org/libs/smart_ptr/smart_ptr.htm
Definition: pmt.h:54
gr_basic_block_sptr block() const
Definition: gr_flowgraph.h:43
Class representing a connection between to graph endpoints.
Definition: gr_flowgraph.h:88
std::vector< gr_edge >::iterator gr_edge_viter_t
Definition: gr_flowgraph.h:106