23 #ifndef INCLUDED_GR_BLOCK_DETAIL_H
24 #define INCLUDED_GR_BLOCK_DETAIL_H
45 int ninputs ()
const {
return d_ninputs; }
47 bool sink_p ()
const {
return d_noutputs == 0; }
48 bool source_p ()
const {
return d_ninputs == 0; }
50 void set_done (
bool done);
51 bool done ()
const {
return d_done; }
56 if (which >= d_ninputs)
57 throw std::invalid_argument (
"gr_block_detail::input");
58 return d_input[which];
64 if (which >= d_noutputs)
65 throw std::invalid_argument (
"gr_block_detail::output");
66 return d_output[which];
72 void consume (
int which_input,
int how_many_items);
77 void consume_each (
int how_many_items);
82 void produce (
int which_output,
int how_many_items);
87 void produce_each (
int how_many_items);
90 uint64_t nitems_read(
unsigned int which_input);
93 uint64_t nitems_written(
unsigned int which_output);
105 void add_item_tag(
unsigned int which_output,
const gr_tag_t &tag);
115 void remove_item_tag(
unsigned int which_input,
const gr_tag_t &tag);
131 void get_tags_in_range(std::vector<gr_tag_t> &v,
132 unsigned int which_input,
153 void get_tags_in_range(std::vector<gr_tag_t> &v,
154 unsigned int which_input,
164 void set_processor_affinity(
const std::vector<unsigned int> &mask);
169 void unset_processor_affinity();
174 void start_perf_counters();
175 void stop_perf_counters(
int noutput_items,
int nproduced);
176 void reset_perf_counters();
179 float pc_noutput_items();
180 float pc_nproduced();
181 float pc_input_buffers_full(
size_t which);
182 std::vector<float> pc_input_buffers_full();
183 float pc_output_buffers_full(
size_t which);
184 std::vector<float> pc_output_buffers_full();
185 float pc_work_time();
187 float pc_noutput_items_var();
188 float pc_nproduced_var();
189 float pc_input_buffers_full_var(
size_t which);
190 std::vector<float> pc_input_buffers_full_var();
191 float pc_output_buffers_full_var(
size_t which);
192 std::vector<float> pc_output_buffers_full_var();
193 float pc_work_time_var();
201 unsigned int d_ninputs;
202 unsigned int d_noutputs;
203 std::vector<gr_buffer_reader_sptr> d_input;
204 std::vector<gr_buffer_sptr> d_output;
208 float d_avg_noutput_items;
209 float d_var_noutput_items;
210 float d_avg_nproduced;
211 float d_var_nproduced;
212 std::vector<float> d_avg_input_buffers_full;
213 std::vector<float> d_var_input_buffers_full;
214 std::vector<float> d_avg_output_buffers_full;
215 std::vector<float> d_var_output_buffers_full;
217 float d_avg_work_time;
218 float d_var_work_time;