23 #ifndef INCLUDED_GR_BLOCK_H
24 #define INCLUDED_GR_BLOCK_H
64 WORK_CALLED_PRODUCE = -2,
83 unsigned history ()
const {
return d_history; }
107 virtual void forecast (
int noutput_items,
124 virtual int general_work (
int noutput_items,
137 virtual bool start();
153 void set_output_multiple (
int multiple);
173 void set_alignment (
int multiple);
176 void set_unaligned (
int na);
178 void set_is_unaligned (
bool u);
184 void consume (
int which_input,
int how_many_items);
189 void consume_each (
int how_many_items);
196 void produce (
int which_output,
int how_many_items);
207 void set_relative_rate (
double relative_rate);
225 virtual int fixed_rate_ninput_to_noutput(
int ninput);
232 virtual int fixed_rate_noutput_to_ninput(
int noutput);
237 uint64_t nitems_read(
unsigned int which_input);
242 uint64_t nitems_written(
unsigned int which_output);
247 tag_propagation_policy_t tag_propagation_policy();
252 void set_tag_propagation_policy(tag_propagation_policy_t p);
258 int d_output_multiple;
259 bool d_output_multiple_set;
262 double d_relative_rate;
266 tag_propagation_policy_t d_tag_propagation_policy;
287 inline void add_item_tag(
unsigned int which_output,
298 this->add_item_tag(which_output, tag);
307 void add_item_tag(
unsigned int which_output,
const gr_tag_t &tag);
322 void get_tags_in_range(std::vector<gr_tag_t> &v,
323 unsigned int which_input,
342 void get_tags_in_range(std::vector<gr_tag_t> &v,
343 unsigned int which_input,