 |
GNU Radio Manual and C++ API Reference
3.9.4.0
The Free & Open Software Radio Ecosystem
|
|
Go to the documentation of this file.
11 #ifndef INCLUDED_GR_RUNTIME_HIER_BLOCK2_H
12 #define INCLUDED_GR_RUNTIME_HIER_BLOCK2_H
26 class hier_block2_detail;
36 friend class hier_block2_detail;
37 template <
typename T,
typename... Args>
38 friend std::shared_ptr<T> gnuradio::make_block_sptr(Args&&... args);
46 std::unique_ptr<hier_block2_detail> d_detail;
83 void connect(basic_block_sptr
block);
93 void connect(basic_block_sptr src,
int src_port, basic_block_sptr dst,
int dst_port);
103 void msg_connect(basic_block_sptr src,
105 basic_block_sptr dst,
107 void msg_connect(basic_block_sptr src,
109 basic_block_sptr dst,
110 std::string dstport);
111 void msg_disconnect(basic_block_sptr src,
113 basic_block_sptr dst,
115 void msg_disconnect(basic_block_sptr src,
117 basic_block_sptr dst,
118 std::string dstport);
127 void disconnect(basic_block_sptr
block);
137 disconnect(basic_block_sptr src,
int src_port, basic_block_sptr dst,
int dst_port);
145 void disconnect_all();
167 virtual void unlock();
172 int max_output_buffer(
size_t port = 0);
177 void set_max_output_buffer(
int max_output_buffer);
182 void set_max_output_buffer(
size_t port,
int max_output_buffer);
187 int min_output_buffer(
size_t port = 0);
192 void set_min_output_buffer(
int min_output_buffer);
197 void set_min_output_buffer(
size_t port,
int min_output_buffer);
202 flat_flowgraph_sptr flatten()
const;
204 hier_block2_sptr to_hier_block2();
213 return message_port_is_hier_in(port_id) || message_port_is_hier_out(port_id);
232 throw std::invalid_argument(
233 "hier msg in port by this name already registered");
235 throw std::invalid_argument(
236 "block already has a primitive input port by this name");
237 hier_message_ports_in =
pmt::list_add(hier_message_ports_in, port_id);
243 throw std::invalid_argument(
244 "hier msg out port by this name already registered");
246 throw std::invalid_argument(
247 "block already has a primitive output port by this name");
248 hier_message_ports_out =
pmt::list_add(hier_message_ports_out, port_id);
256 void set_processor_affinity(
const std::vector<int>& mask)
override;
261 void unset_processor_affinity()
override;
272 std::vector<int> processor_affinity()
override;
292 void set_log_level(std::string level)
override;
297 std::string log_level()
override;
305 bool all_min_output_buffer_p(
void);
313 bool all_max_output_buffer_p(
void);
321 inline hier_block2_sptr cast_to_hier_block2_sptr(basic_block_sptr block)
323 return std::dynamic_pointer_cast<hier_block2, basic_block>(block);
PMT_API pmt_t list_add(pmt_t list, const pmt_t &item)
Return list with item added to it.
void message_port_register_hier_out(pmt::pmt_t port_id)
Definition: hier_block2.h:240
bool message_port_is_hier(pmt::pmt_t port_id) override
Definition: hier_block2.h:211
void message_port_register_hier_in(pmt::pmt_t port_id)
Definition: hier_block2.h:229
basic_block_sptr opaque_self
typedef for object returned from self().
Definition: hier_block2.h:64
PMT_API bool dict_has_key(const pmt_t &dict, const pmt_t &key)
Return true if key exists in dict.
bool message_port_is_hier_out(pmt::pmt_t port_id) override
Definition: hier_block2.h:221
#define GR_RUNTIME_API
Definition: gnuradio-runtime/include/gnuradio/api.h:18
GR_RUNTIME_API std::string dot_graph(hier_block2_sptr hierblock2)
Return hierarchical block's flow graph represented in dot language.
bool has_msg_port(pmt::pmt_t which_port) override
Definition: hier_block2.h:206
virtual bool has_msg_port(pmt::pmt_t which_port)
Definition: basic_block.h:275
The abstract base class for all 'terminal' processing blocks.
Definition: gnuradio-runtime/include/gnuradio/block.h:59
pmt::pmt_t hier_message_ports_out
Definition: hier_block2.h:227
The abstract base class for all signal processing blocks.
Definition: basic_block.h:42
std::shared_ptr< pmt_base > pmt_t
typedef for shared pointer (transparent reference counting).
Definition: pmt.h:84
GR_RUNTIME_API hier_block2_sptr make_hier_block2(const std::string &name, gr::io_signature::sptr input_signature, gr::io_signature::sptr output_signature)
public constructor for hier_block2
PMT_API bool list_has(pmt_t list, const pmt_t &item)
Return bool of list contains item.
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition: basic_block.h:29
pmt::pmt_t hier_message_ports_in
Definition: hier_block2.h:226
std::shared_ptr< io_signature > sptr
Definition: io_signature.h:34
Hierarchical container class for gr::block's and gr::hier_block2's.
Definition: hier_block2.h:33
bool message_port_is_hier_in(pmt::pmt_t port_id) override
Definition: hier_block2.h:216
thread-safe message queue
Definition: msg_queue.h:24