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);
117 void remove_item_tag(
unsigned int which_input,
const gr_tag_t &tag,
long id);
134 void get_tags_in_range(std::vector<gr_tag_t> &v,
135 unsigned int which_input,
158 void get_tags_in_range(std::vector<gr_tag_t> &v,
159 unsigned int which_input,
170 void set_processor_affinity(
const std::vector<int> &mask);
175 void unset_processor_affinity();
180 void start_perf_counters();
181 void stop_perf_counters(
int noutput_items,
int nproduced);
182 void reset_perf_counters();
185 float pc_noutput_items();
186 float pc_nproduced();
187 float pc_input_buffers_full(
size_t which);
188 std::vector<float> pc_input_buffers_full();
189 float pc_output_buffers_full(
size_t which);
190 std::vector<float> pc_output_buffers_full();
191 float pc_work_time();
193 float pc_noutput_items_var();
194 float pc_nproduced_var();
195 float pc_input_buffers_full_var(
size_t which);
196 std::vector<float> pc_input_buffers_full_var();
197 float pc_output_buffers_full_var(
size_t which);
198 std::vector<float> pc_output_buffers_full_var();
199 float pc_work_time_var();
207 unsigned int d_ninputs;
208 unsigned int d_noutputs;
209 std::vector<gr_buffer_reader_sptr> d_input;
210 std::vector<gr_buffer_sptr> d_output;
214 float d_avg_noutput_items;
215 float d_var_noutput_items;
216 float d_avg_nproduced;
217 float d_var_nproduced;
218 std::vector<float> d_avg_input_buffers_full;
219 std::vector<float> d_var_input_buffers_full;
220 std::vector<float> d_avg_output_buffers_full;
221 std::vector<float> d_var_output_buffers_full;
223 float d_avg_work_time;
224 float d_var_work_time;