23 #ifndef INCLUDED_GR_RUNTIME_HIER_BLOCK2_H
24 #define INCLUDED_GR_RUNTIME_HIER_BLOCK2_H
39 class hier_block2_detail;
49 friend class hier_block2_detail;
58 hier_block2_detail *d_detail;
149 void disconnect_all();
171 virtual void unlock();
184 return message_port_is_hier_in(port_id) || message_port_is_hier_out(port_id);
200 throw std::invalid_argument(
"hier msg in port by this name already registered");
202 throw std::invalid_argument(
"block already has a primitive input port by this name");
203 hier_message_ports_in =
pmt::list_add(hier_message_ports_in, port_id);
208 throw std::invalid_argument(
"hier msg out port by this name already registered");
210 throw std::invalid_argument(
"block already has a primitive output port by this name");
211 hier_message_ports_out =
pmt::list_add(hier_message_ports_out, port_id);
219 void set_processor_affinity(
const std::vector<int> &mask);
224 void unset_processor_affinity();
235 std::vector<int> processor_affinity();
238 inline hier_block2_sptr cast_to_hier_block2_sptr(basic_block_sptr block) {
239 return boost::dynamic_pointer_cast<hier_block2, basic_block>(block);
void message_port_register_hier_out(pmt::pmt_t port_id)
Definition: hier_block2.h:206
bool message_port_is_hier(pmt::pmt_t port_id)
Definition: hier_block2.h:183
PMT_API bool list_has(pmt_t list, const pmt_t &item)
Return bool of list contains item.
void message_port_register_hier_in(pmt::pmt_t port_id)
Definition: hier_block2.h:198
bool has_msg_port(pmt::pmt_t which_port)
Definition: hier_block2.h:179
virtual bool has_msg_port(pmt::pmt_t which_port)
Definition: basic_block.h:242
basic_block_sptr opaque_self
typedef for object returned from self().
Definition: hier_block2.h:75
#define GR_RUNTIME_API
Definition: gnuradio-runtime/include/gnuradio/api.h:30
thread-safe message queue
Definition: msg_queue.h:36
The abstract base class for all signal processing blocks.Basic blocks are the bare abstraction of an ...
Definition: basic_block.h:58
bool message_port_is_hier_in(pmt::pmt_t port_id)
Definition: hier_block2.h:187
bool message_port_is_hier_out(pmt::pmt_t port_id)
Definition: hier_block2.h:191
hier_block2(void)
Definition: hier_block2.h:61
pmt::pmt_t hier_message_ports_in
Definition: hier_block2.h:195
pmt::pmt_t hier_message_ports_out
Definition: hier_block2.h:196
PMT_API pmt_t list_add(pmt_t list, const pmt_t &item)
Return list with item added to it.
VOLK_API $kern pname $kern name
A function pointer to the dispatcher implementation.
PMT_API bool dict_has_key(const pmt_t &dict, const pmt_t &key)
Return true if key exists in dict.
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:56
The abstract base class for all 'terminal' processing blocks.A signal processing flow is constructed ...
Definition: block.h:60
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
Hierarchical container class for gr::block's and gr::hier_block2's.
Definition: hier_block2.h:46