22 #ifndef INCLUDED_GRBLOCK_GATEWAY_H
23 #define INCLUDED_GRBLOCK_GATEWAY_H
156 unsigned int which_output,
const gr_tag_t &tag
162 unsigned int which_output,
172 unsigned int which_input,
176 std::vector<gr_tag_t> tags;
182 unsigned int which_input,
187 std::vector<gr_tag_t> tags;
223 if(msg_queue.find(which_port) == msg_queue.end()){
224 throw std::runtime_error(
"attempt to set_msg_handler_feval() on bad input message port!");
226 d_msg_handlers_feval[which_port] = msg_handler;
235 if (d_msg_handlers_feval.find(which_port) != d_msg_handlers_feval.end()){
236 d_msg_handlers_feval[which_port]->calleval(msg);
257 const std::string &
name,
261 const unsigned factor
void message_port_register_out(pmt::pmt_t)
Definition: gr_block.h:235
void gr_block__add_item_tag(unsigned int which_output, const gr_tag_t &tag)
Definition: gr_block_gateway.h:155
Definition: gr_block_gateway.h:34
std::string gr_block__name(void) const
Definition: gr_block_gateway.h:91
gr_block_gw_work_type
Definition: gr_block_gateway.h:33
pmt::pmt_t message_ports_out()
Get output message port names.
Definition: gr_block.h:258
bool stop_args_return_value
Definition: gr_block_gateway.h:72
tag_propagation_policy_t
Definition: gr_block.h:193
unsigned history(void) const
long gr_block__unique_id(void) const
Definition: gr_block_gateway.h:87
bool start_args_return_value
Definition: gr_block_gateway.h:70
int general_work_args_return_value
Definition: gr_block_gateway.h:59
GR_CORE_API boost::shared_ptr< gr_block_gateway > gr_make_block_gateway(gr_feval_ll *handler, const std::string &name, gr_io_signature_sptr in_sig, gr_io_signature_sptr out_sig, const gr_block_gw_work_type work_type, const unsigned factor)
uint64_t gr_block__nitems_read(unsigned int which_input)
Definition: gr_block_gateway.h:139
void set_output_multiple(const size_t multiple)
tag_propagation_policy_t tag_propagation_policy(void)
Definition: gr_block_gateway.h:37
std::vector< void * > work_args_input_items
Definition: gr_block_gateway.h:63
GRUEL_API const pmt_t PMT_F
uint64_t nitems_read(const size_t which_input=0)
Get absolute count of all items consumed on the given input port.
Definition: gr_block.h:409
void add_item_tag(const size_t which_output, const gr_tag_t &tag)
void gr_block__set_relative_rate(double relative_rate)
Definition: gr_block_gateway.h:131
Definition: gr_block_gateway.h:48
void gr_block__set_fixed_rate(bool fixed_rate)
Definition: gr_block_gateway.h:103
long unique_id(void) const
Definition: gr_block.h:48
gr_block::tag_propagation_policy_t gr_block__tag_propagation_policy(void)
Definition: gr_block_gateway.h:147
std::map< pmt::pmt_t, gr_feval_p *, pmt::pmt_comperator > msg_handlers_feval_t
Definition: gr_block_gateway.h:230
size_t output_multiple(void) const
Get the output multiple setting.
void set_fixed_rate(const bool fixed_rate)
double gr_block__relative_rate(void) const
Definition: gr_block_gateway.h:135
void gr_block__message_port_unsub(pmt::pmt_t port_id, pmt::pmt_t target)
Definition: gr_block_gateway.h:209
void gr_block__add_item_tag(unsigned int which_output, uint64_t abs_offset, const pmt::pmt_t &key, const pmt::pmt_t &value, const pmt::pmt_t &srcid=pmt::PMT_F)
Definition: gr_block_gateway.h:161
void set_tag_propagation_policy(tag_propagation_policy_t p)
void gr_block__message_port_register_out(pmt::pmt_t port_id)
Definition: gr_block_gateway.h:197
int forecast_args_noutput_items
Definition: gr_block_gateway.h:67
Definition: gr_block_gateway.h:36
Definition: gr_block.h:37
Definition: gr_block_gateway.h:47
void consume_each(const int how_many_items)
Call during work to consume items.
Definition: gr_block.h:391
void message_port_sub(pmt::pmt_t, pmt::pmt_t)
Definition: gr_block.h:237
void gr_block__set_tag_propagation_policy(gr_block::tag_propagation_policy_t p)
Definition: gr_block_gateway.h:151
pmt::pmt_t gr_block__message_ports_out()
Definition: gr_block_gateway.h:217
void set_history(unsigned history)
Definition: gr_block_gateway.h:50
std::vector< int > general_work_args_ninput_items
Definition: gr_block_gateway.h:56
pmt::pmt_t message_ports_in()
Get input message port names.
Definition: gr_block.h:250
void set_msg_handler_feval(pmt::pmt_t which_port, gr_feval_p *msg_handler)
Definition: gr_block_gateway.h:221
shared_ptr documentation stub
Definition: shared_ptr_docstub.h:15
void gr_block__message_port_register_in(pmt::pmt_t port_id)
Definition: gr_block_gateway.h:193
#define GR_CORE_API
Definition: gr_core_api.h:30
Definition: gr_block_gateway.h:35
void message_port_register_in(pmt::pmt_t)
Definition: gr_block.h:234
unsigned gr_block__history(void) const
Definition: gr_block_gateway.h:95
void gr_block__message_port_sub(pmt::pmt_t port_id, pmt::pmt_t target)
Definition: gr_block_gateway.h:205
void gr_block__set_output_multiple(int multiple)
Definition: gr_block_gateway.h:111
std::vector< gr_tag_t > gr_block__get_tags_in_range(unsigned int which_input, uint64_t abs_start, uint64_t abs_end, const pmt::pmt_t &key)
Definition: gr_block_gateway.h:181
Definition: gr_block_gateway.h:49
int work_args_ninput_items
Definition: gr_block_gateway.h:61
unsigned __int64 uint64_t
Definition: stdint.h:90
pmt::pmt_t gr_block__message_ports_in()
Definition: gr_block_gateway.h:213
void consume(const size_t i, const int how_many_items)
Definition: gr_block.h:397
void get_tags_in_range(std::vector< gr_tag_t > &tags, const size_t which_input, uint64_t abs_start, uint64_t abs_end, const pmt::pmt_t &key=pmt::pmt_t())
int general_work_args_noutput_items
Definition: gr_block_gateway.h:55
Definition: gr_block_gateway.h:44
action_type
Definition: gr_block_gateway.h:45
base class for evaluating a function: long -> longThis class is designed to be subclassed in Python or...
Definition: gr_feval.h:98
void gr_block__consume(int which_input, int how_many_items)
Definition: gr_block_gateway.h:119
int work_args_noutput_items
Definition: gr_block_gateway.h:62
void produce(const size_t o, const int how_many_items)
Definition: gr_block.h:403
void gr_block__message_port_pub(pmt::pmt_t port_id, pmt::pmt_t msg)
Definition: gr_block_gateway.h:201
void gr_block__set_history(unsigned history)
Definition: gr_block_gateway.h:99
virtual void dispatch_msg(pmt::pmt_t which_port, pmt::pmt_t msg)
Definition: gr_block.h:315
msg_handlers_feval_t d_msg_handlers_feval
Definition: gr_block_gateway.h:231
std::vector< void * > work_args_output_items
Definition: gr_block_gateway.h:64
base class for evaluating a function: pmt -> voidThis class is designed to be subclassed in Python or ...
Definition: gr_feval.h:154
VOLK_API $kern pname $kern name
A function pointer to the dispatcher implementation.
void gr_block__consume_each(int how_many_items)
Definition: gr_block_gateway.h:123
int gr_block__output_multiple(void) const
Definition: gr_block_gateway.h:115
std::vector< int > forecast_args_ninput_items_required
Definition: gr_block_gateway.h:68
std::vector< void * > general_work_args_input_items
Definition: gr_block_gateway.h:57
void set_relative_rate(const double relative_rate)
action_type action
Definition: gr_block_gateway.h:53
void message_port_unsub(pmt::pmt_t, pmt::pmt_t)
Definition: gr_block.h:238
uint64_t nitems_written(const size_t which_output=0)
Get absolute count of all items produced on the given output port.
Definition: gr_block.h:414
bool fixed_rate(void) const
Get the fixed rate setting.
int work_args_return_value
Definition: gr_block_gateway.h:65
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
std::vector< void * > general_work_args_output_items
Definition: gr_block_gateway.h:58
bool gr_block__fixed_rate(void) const
Definition: gr_block_gateway.h:107
uint64_t gr_block__nitems_written(unsigned int which_output)
Definition: gr_block_gateway.h:143
double relative_rate(void) const
Get the relative rate setting.
Definition: gr_block_gateway.h:82
void dispatch_msg(pmt::pmt_t which_port, pmt::pmt_t msg)
Definition: gr_block_gateway.h:233
std::vector< gr_tag_t > gr_block__get_tags_in_range(unsigned int which_input, uint64_t abs_start, uint64_t abs_end)
Definition: gr_block_gateway.h:171
void message_port_pub(pmt::pmt_t, pmt::pmt_t)
Definition: gr_block.h:236
void gr_block__produce(int which_output, int how_many_items)
Definition: gr_block_gateway.h:127
Definition: gr_block_gateway.h:46
std::string name(void) const
Definition: gr_block.h:49