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);