23 #ifndef INCLUDED_GR_BLOCK_DETAIL_H
24 #define INCLUDED_GR_BLOCK_DETAIL_H
44 int ninputs ()
const {
return d_ninputs; }
46 bool sink_p ()
const {
return d_noutputs == 0; }
47 bool source_p ()
const {
return d_ninputs == 0; }
49 void set_done (
bool done);
50 bool done ()
const {
return d_done; }
55 if (which >= d_ninputs)
56 throw std::invalid_argument (
"gr_block_detail::input");
57 return d_input[which];
63 if (which >= d_noutputs)
64 throw std::invalid_argument (
"gr_block_detail::output");
65 return d_output[which];
71 void consume (
int which_input,
int how_many_items);
76 void consume_each (
int how_many_items);
81 void produce (
int which_output,
int how_many_items);
86 void produce_each (
int how_many_items);
94 uint64_t nitems_read(
unsigned int which_input);
97 uint64_t nitems_written(
unsigned int which_output);
110 void add_item_tag(
unsigned int which_output,
const gr_tag_t &tag);
126 void get_tags_in_range(std::vector<gr_tag_t> &v,
127 unsigned int which_input,
148 void get_tags_in_range(std::vector<gr_tag_t> &v,
149 unsigned int which_input,
160 unsigned int d_ninputs;
161 unsigned int d_noutputs;
162 std::vector<gr_buffer_reader_sptr> d_input;
163 std::vector<gr_buffer_sptr> d_output;