| 
| virtual void  | set_enabled (bool enable)=0 | 
|   | 
| virtual bool  | enabled () const =0 | 
|   | 
| virtual void  | set_input_index (unsigned int input_index)=0 | 
|   | 
| virtual int  | input_index () const =0 | 
|   | 
| virtual void  | set_output_index (unsigned int output_index)=0 | 
|   | 
| virtual int  | output_index () const =0 | 
|   | 
|   | ~block () override | 
|   | 
| unsigned  | history () const | 
|   | 
| void  | set_history (unsigned history) | 
|   | 
| void  | declare_sample_delay (int which, unsigned delay) | 
|   | 
| void  | declare_sample_delay (unsigned delay) | 
|   | 
| unsigned  | sample_delay (int which) const | 
|   | 
| bool  | fixed_rate () const | 
|   | Return true if this block has a fixed input to output rate.  
  | 
|   | 
| virtual void  | forecast (int noutput_items, gr_vector_int &ninput_items_required) | 
|   | Estimate input requirements given output request.  
  | 
|   | 
| virtual int  | general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) | 
|   | compute output items from input items  
  | 
|   | 
| virtual bool  | start () | 
|   | Called to enable drivers, etc for i/o devices.  
  | 
|   | 
| virtual bool  | stop () | 
|   | Called to disable drivers, etc for i/o devices.  
  | 
|   | 
| void  | set_output_multiple (int multiple) | 
|   | Constrain the noutput_items argument passed to forecast and general_work.  
  | 
|   | 
| int  | output_multiple () const | 
|   | 
| bool  | output_multiple_set () const | 
|   | 
| void  | set_alignment (int multiple) | 
|   | Constrains buffers to work on a set item alignment (for SIMD)  
  | 
|   | 
| int  | alignment () const | 
|   | 
| void  | set_unaligned (int na) | 
|   | 
| int  | unaligned () const | 
|   | 
| void  | set_is_unaligned (bool u) | 
|   | 
| bool  | is_unaligned () const | 
|   | 
| void  | consume (int which_input, int how_many_items) | 
|   | Tell the scheduler how_many_items of input stream which_input were consumed.  
  | 
|   | 
| void  | consume_each (int how_many_items) | 
|   | Tell the scheduler how_many_items were consumed on each input stream.  
  | 
|   | 
| void  | produce (int which_output, int how_many_items) | 
|   | Tell the scheduler how_many_items were produced on output stream which_output.  
  | 
|   | 
| void  | set_relative_rate (double relative_rate) | 
|   | Set the approximate output rate / input rate.  
  | 
|   | 
| void  | set_inverse_relative_rate (double inverse_relative_rate) | 
|   | Set the approximate output rate / input rate using its reciprocal.  
  | 
|   | 
| void  | set_relative_rate (uint64_t interpolation, uint64_t decimation) | 
|   | Set the approximate output rate / input rate as an integer ratio.  
  | 
|   | 
| double  | relative_rate () const | 
|   | return the approximate output rate / input rate  
  | 
|   | 
| uint64_t  | relative_rate_i () const | 
|   | return the numerator, or interpolation rate, of the approximate output rate / input rate  
  | 
|   | 
| uint64_t  | relative_rate_d () const | 
|   | return the denominator, or decimation rate, of the approximate output rate / input rate  
  | 
|   | 
| mpq_class &  | mp_relative_rate () | 
|   | return a reference to the multiple precision rational representation of the approximate output rate / input rate  
  | 
|   | 
| virtual int  | fixed_rate_ninput_to_noutput (int ninput) | 
|   | Given ninput samples, return number of output samples that will be produced. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.  
  | 
|   | 
| virtual int  | fixed_rate_noutput_to_ninput (int noutput) | 
|   | Given noutput samples, return number of input samples required to produce noutput. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this.  
  | 
|   | 
| uint64_t  | nitems_read (unsigned int which_input) | 
|   | Return the number of items read on input stream which_input.  
  | 
|   | 
| uint64_t  | nitems_written (unsigned int which_output) | 
|   | Return the number of items written on output stream which_output.  
  | 
|   | 
| tag_propagation_policy_t  | tag_propagation_policy () | 
|   | Asks for the policy used by the scheduler to moved tags downstream.  
  | 
|   | 
| void  | set_tag_propagation_policy (tag_propagation_policy_t p) | 
|   | Set the policy by the scheduler to determine how tags are moved downstream.  
  | 
|   | 
| int  | min_noutput_items () const | 
|   | Return the minimum number of output items this block can produce during a call to work.  
  | 
|   | 
| void  | set_min_noutput_items (int m) | 
|   | Set the minimum number of output items this block can produce during a call to work.  
  | 
|   | 
| int  | max_noutput_items () | 
|   | Return the maximum number of output items this block will handle during a call to work.  
  | 
|   | 
| void  | set_max_noutput_items (int m) | 
|   | Set the maximum number of output items this block will handle during a call to work.  
  | 
|   | 
| void  | unset_max_noutput_items () | 
|   | Clear the switch for using the max_noutput_items value of this block.  
  | 
|   | 
| bool  | is_set_max_noutput_items () | 
|   | Ask the block if the flag is or is not set to use the internal value of max_noutput_items during a call to work.  
  | 
|   | 
| void  | expand_minmax_buffer (int port) | 
|   | 
| long  | max_output_buffer (size_t i) | 
|   | Returns max buffer size on output port i.  
  | 
|   | 
| void  | set_max_output_buffer (long max_output_buffer) | 
|   | Request limit on max buffer size on all output ports.  
  | 
|   | 
| void  | set_max_output_buffer (int port, long max_output_buffer) | 
|   | Request limit on max buffer size on output port port.  
  | 
|   | 
| long  | min_output_buffer (size_t i) | 
|   | Returns min buffer size on output port i.  
  | 
|   | 
| void  | set_min_output_buffer (long min_output_buffer) | 
|   | Request limit on the minimum buffer size on all output ports.  
  | 
|   | 
| void  | set_min_output_buffer (int port, long min_output_buffer) | 
|   | Request limit on min buffer size on output port port.  
  | 
|   | 
| void  | set_blkd_input_timer_value (unsigned int timer_value_ms) | 
|   | DEPRECATED Configure the timer set when input is blocked port.  
  | 
|   | 
| unsigned int  | blkd_input_timer_value () | 
|   | DEPRECATED Returns timer value set when input is blocked.  
  | 
|   | 
| void  | allocate_detail (int ninputs, int noutputs, const std::vector< int > &downstream_max_nitems_vec, const std::vector< uint64_t > &downstream_lcm_nitems_vec, const std::vector< uint32_t > &downstream_max_out_mult_vec) | 
|   | Allocate the block_detail and necessary output buffers for this block.  
  | 
|   | 
| buffer_sptr  | replace_buffer (size_t src_port, size_t dst_port, block_sptr block_owner) | 
|   | Replace the block's buffer with a new one owned by the block_owner parameter.  
  | 
|   | 
| float  | pc_noutput_items () | 
|   | Gets instantaneous noutput_items performance counter.  
  | 
|   | 
| float  | pc_noutput_items_avg () | 
|   | Gets average noutput_items performance counter.  
  | 
|   | 
| float  | pc_noutput_items_var () | 
|   | Gets variance of noutput_items performance counter.  
  | 
|   | 
| float  | pc_nproduced () | 
|   | Gets instantaneous num items produced performance counter.  
  | 
|   | 
| float  | pc_nproduced_avg () | 
|   | Gets average num items produced performance counter.  
  | 
|   | 
| float  | pc_nproduced_var () | 
|   | Gets variance of num items produced performance counter.  
  | 
|   | 
| float  | pc_input_buffers_full (int which) | 
|   | Gets instantaneous fullness of which input buffer.  
  | 
|   | 
| float  | pc_input_buffers_full_avg (int which) | 
|   | Gets average fullness of which input buffer.  
  | 
|   | 
| float  | pc_input_buffers_full_var (int which) | 
|   | Gets variance of fullness of which input buffer.  
  | 
|   | 
| std::vector< float >  | pc_input_buffers_full () | 
|   | Gets instantaneous fullness of all input buffers.  
  | 
|   | 
| std::vector< float >  | pc_input_buffers_full_avg () | 
|   | Gets average fullness of all input buffers.  
  | 
|   | 
| std::vector< float >  | pc_input_buffers_full_var () | 
|   | Gets variance of fullness of all input buffers.  
  | 
|   | 
| float  | pc_output_buffers_full (int which) | 
|   | Gets instantaneous fullness of which output buffer.  
  | 
|   | 
| float  | pc_output_buffers_full_avg (int which) | 
|   | Gets average fullness of which output buffer.  
  | 
|   | 
| float  | pc_output_buffers_full_var (int which) | 
|   | Gets variance of fullness of which output buffer.  
  | 
|   | 
| std::vector< float >  | pc_output_buffers_full () | 
|   | Gets instantaneous fullness of all output buffers.  
  | 
|   | 
| std::vector< float >  | pc_output_buffers_full_avg () | 
|   | Gets average fullness of all output buffers.  
  | 
|   | 
| std::vector< float >  | pc_output_buffers_full_var () | 
|   | Gets variance of fullness of all output buffers.  
  | 
|   | 
| float  | pc_work_time () | 
|   | Gets instantaneous clock cycles spent in work.  
  | 
|   | 
| float  | pc_work_time_avg () | 
|   | Gets average clock cycles spent in work.  
  | 
|   | 
| float  | pc_work_time_var () | 
|   | Gets average clock cycles spent in work.  
  | 
|   | 
| float  | pc_work_time_total () | 
|   | Gets total clock cycles spent in work.  
  | 
|   | 
| float  | pc_throughput_avg () | 
|   | Gets average throughput.  
  | 
|   | 
| void  | reset_perf_counters () | 
|   | Resets the performance counters.  
  | 
|   | 
| void  | setup_pc_rpc () | 
|   | Sets up export of perf. counters to ControlPort. Only called by the scheduler.  
  | 
|   | 
| bool  | is_pc_rpc_set () const | 
|   | Checks if this block is already exporting perf. counters to ControlPort.  
  | 
|   | 
| void  | no_pc_rpc () | 
|   | If the block calls this in its constructor, it's perf. counters will not be exported.  
  | 
|   | 
| void  | set_processor_affinity (const std::vector< int > &mask) override | 
|   | Set the thread's affinity to processor core n.  
  | 
|   | 
| void  | unset_processor_affinity () override | 
|   | Remove processor affinity to a specific core.  
  | 
|   | 
| std::vector< int >  | processor_affinity () override | 
|   | Get the current processor affinity.  
  | 
|   | 
| int  | active_thread_priority () | 
|   | Get the current thread priority in use.  
  | 
|   | 
| int  | thread_priority () | 
|   | Get the current thread priority stored.  
  | 
|   | 
| int  | set_thread_priority (int priority) | 
|   | Set the current thread priority.  
  | 
|   | 
| bool  | update_rate () const | 
|   | 
| void  | system_handler (pmt::pmt_t msg) | 
|   | the system message handler  
  | 
|   | 
| void  | set_log_level (const std::string &level) override | 
|   | Set the logger's output level.  
  | 
|   | 
| std::string  | log_level () override | 
|   | Get the logger's output level.  
  | 
|   | 
| bool  | finished () | 
|   | returns true when execution has completed due to a message connection  
  | 
|   | 
| block_detail_sptr  | detail () const | 
|   | 
| void  | set_detail (block_detail_sptr detail) | 
|   | 
| void  | notify_msg_neighbors () | 
|   | Tell msg neighbors we are finished.  
  | 
|   | 
| void  | clear_finished () | 
|   | Make sure we don't think we are finished.  
  | 
|   | 
| std::string  | identifier () const | 
|   | 
| pmt::pmt_t  | message_subscribers (pmt::pmt_t port) | 
|   | 
|   | ~basic_block () override | 
|   | 
| long  | unique_id () const | 
|   | 
| long  | symbolic_id () const | 
|   | 
| std::string  | name () const | 
|   | 
| std::string  | symbol_name () const | 
|   | 
| std::string  | identifier () const | 
|   | 
| gr::io_signature::sptr  | input_signature () const | 
|   | 
| gr::io_signature::sptr  | output_signature () const | 
|   | 
| basic_block_sptr  | to_basic_block () | 
|   | 
| bool  | alias_set () const | 
|   | 
| std::string  | alias () const | 
|   | 
| pmt::pmt_t  | alias_pmt () const | 
|   | 
| void  | set_block_alias (std::string name) | 
|   | 
| void  | message_port_register_in (pmt::pmt_t port_id) | 
|   | 
| void  | message_port_register_out (pmt::pmt_t port_id) | 
|   | 
| void  | message_port_pub (pmt::pmt_t port_id, pmt::pmt_t msg) | 
|   | 
| void  | message_port_sub (pmt::pmt_t port_id, pmt::pmt_t target) | 
|   | 
| void  | message_port_unsub (pmt::pmt_t port_id, pmt::pmt_t target) | 
|   | 
| virtual bool  | message_port_is_hier (pmt::pmt_t port_id) | 
|   | 
| virtual bool  | message_port_is_hier_in (pmt::pmt_t port_id) | 
|   | 
| virtual bool  | message_port_is_hier_out (pmt::pmt_t port_id) | 
|   | 
| pmt::pmt_t  | message_ports_in () | 
|   | Get input message port names.  
  | 
|   | 
| pmt::pmt_t  | message_ports_out () | 
|   | Get output message port names.  
  | 
|   | 
| void  | _post (pmt::pmt_t which_port, pmt::pmt_t msg) | 
|   | 
| bool  | empty_p (pmt::pmt_t which_port) | 
|   | is the queue empty?  
  | 
|   | 
| bool  | empty_p () | 
|   | 
| bool  | empty_handled_p (pmt::pmt_t which_port) | 
|   | are all msg ports with handlers empty?  
  | 
|   | 
| bool  | empty_handled_p () | 
|   | 
| size_t  | nmsgs (pmt::pmt_t which_port) | 
|   | How many messages in the queue?  
  | 
|   | 
| void  | insert_tail (pmt::pmt_t which_port, pmt::pmt_t msg) | 
|   | 
| pmt::pmt_t  | delete_head_nowait (pmt::pmt_t which_port) | 
|   | 
| msg_queue_t::iterator  | get_iterator (pmt::pmt_t which_port) | 
|   | 
| void  | erase_msg (pmt::pmt_t which_port, msg_queue_t::iterator it) | 
|   | 
| virtual bool  | has_msg_port (pmt::pmt_t which_port) | 
|   | 
| const msg_queue_map_t &  | get_msg_map (void) const | 
|   | 
| virtual void  | setup_rpc () | 
|   | Set up the RPC registered variables.  
  | 
|   | 
| bool  | is_rpc_set () | 
|   | Ask if this block has been registered to the RPC.  
  | 
|   | 
| void  | rpc_set () | 
|   | When the block is registered with the RPC, set this.  
  | 
|   | 
| virtual bool  | check_topology (int ninputs, int noutputs) | 
|   | Confirm that ninputs and noutputs is an acceptable combination.  
  | 
|   | 
| template<typename T >  | 
| void  | set_msg_handler (pmt::pmt_t which_port, T msg_handler) | 
|   | Set the callback that is fired when messages are available.  
  | 
|   | 
|   | msg_accepter () | 
|   | 
|   | ~msg_accepter () override | 
|   | 
| void  | post (pmt::pmt_t which_port, pmt::pmt_t msg) override | 
|   | send msg to msg_accepter on port which_port  
  | 
|   | 
|   | msg_accepter () | 
|   | 
 | 
| enum   | vcolor { WHITE
, GREY
, BLACK
 } | 
|   | 
|   | block (void) | 
|   | 
|   | block (const std::string &name, gr::io_signature::sptr input_signature, gr::io_signature::sptr output_signature) | 
|   | 
| void  | set_fixed_rate (bool fixed_rate) | 
|   | 
| void  | 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) | 
|   | Adds a new tag onto the given output buffer.  
  | 
|   | 
| void  | add_item_tag (unsigned int which_output, const tag_t &tag) | 
|   | Adds a new tag onto the given output buffer.  
  | 
|   | 
| void  | remove_item_tag (unsigned int which_input, uint64_t abs_offset, const pmt::pmt_t &key, const pmt::pmt_t &value, const pmt::pmt_t &srcid=pmt::PMT_F) | 
|   | DEPRECATED. Will be removed in 3.8.  
  | 
|   | 
| void  | remove_item_tag (unsigned int which_input, const tag_t &tag) | 
|   | DEPRECATED. Will be removed in 3.8.  
  | 
|   | 
| void  | get_tags_in_range (std::vector< tag_t > &v, unsigned int which_input, uint64_t abs_start, uint64_t abs_end) | 
|   | Given a [start,end), returns a vector of all tags in the range.  
  | 
|   | 
| void  | get_tags_in_range (std::vector< tag_t > &v, unsigned int which_input, uint64_t abs_start, uint64_t abs_end, const pmt::pmt_t &key) | 
|   | Given a [start,end), returns a vector of all tags in the range with a given key.  
  | 
|   | 
| void  | get_tags_in_window (std::vector< tag_t > &v, unsigned int which_input, uint64_t rel_start, uint64_t rel_end) | 
|   | Gets all tags within the relative window of the current call to work.  
  | 
|   | 
| void  | get_tags_in_window (std::vector< tag_t > &v, unsigned int which_input, uint64_t rel_start, uint64_t rel_end, const pmt::pmt_t &key) | 
|   | Operates like gr::block::get_tags_in_window with the ability to only return tags with the specified key.  
  | 
|   | 
| void  | enable_update_rate (bool en) | 
|   | 
| buffer_sptr  | allocate_buffer (size_t port, int downstream_max_nitems, uint64_t downstream_lcm_nitems, uint32_t downstream_max_out_mult) | 
|   | Allocate a buffer for the given output port of this block. Note that the downstream max number of items must be passed in to this function for consideration.  
  | 
|   | 
|   | basic_block (void) | 
|   | 
|   | basic_block (const std::string &name, gr::io_signature::sptr input_signature, gr::io_signature::sptr output_signature) | 
|   | Protected constructor prevents instantiation by non-derived classes.  
  | 
|   | 
| void  | set_input_signature (gr::io_signature::sptr iosig) | 
|   | may only be called during constructor  
  | 
|   | 
| void  | set_output_signature (gr::io_signature::sptr iosig) | 
|   | may only be called during constructor  
  | 
|   | 
| void  | set_color (vcolor color) | 
|   | Allow the flowgraph to set for sorting and partitioning.  
  | 
|   | 
| vcolor  | color () const | 
|   | 
| virtual bool  | has_msg_handler (pmt::pmt_t which_port) | 
|   | Tests if there is a handler attached to port which_port.  
  | 
|   | 
| virtual void  | dispatch_msg (pmt::pmt_t which_port, pmt::pmt_t msg) | 
|   | 
| template<typename Derived >  | 
| std::shared_ptr< Derived >  | shared_from_base () | 
|   | This is meant to be called by derived classes (e.g. block) to get a shared pointer internally. This is needed because std::enable_shared_from_this doesn't seem to work with derived classes in an inheritance hierarchy.  
  | 
|   | 
| std::vector< long >  | d_max_output_buffer | 
|   | 
| std::vector< long >  | d_min_output_buffer | 
|   | 
| unsigned int  | d_blkd_input_timer_value = 250 | 
|   | 
| gr::thread::mutex  | d_setlock | 
|   | 
| const pmt::pmt_t  | d_pmt_done | 
|   | 
| const pmt::pmt_t  | d_system_port | 
|   | 
| std::string  | d_name | 
|   | 
| gr::io_signature::sptr  | d_input_signature | 
|   | 
| gr::io_signature::sptr  | d_output_signature | 
|   | 
| long  | d_unique_id | 
|   | 
| long  | d_symbolic_id | 
|   | 
| std::string  | d_symbol_name | 
|   | 
| std::string  | d_symbol_alias | 
|   | 
| vcolor  | d_color | 
|   | 
| bool  | d_rpc_set | 
|   | 
| gr::logger_ptr  | d_logger | 
|   | 
| gr::logger_ptr  | d_debug_logger | 
|   | Default logger.  
  | 
|   | 
| msg_queue_map_t  | msg_queue | 
|   | Verbose logger.  
  | 
|   | 
| std::vector< rpcbasic_sptr >  | d_rpc_vars | 
|   | 
| pmt::pmt_t  | d_message_subscribers | 
|   | 
output[output_index][i] = input[input_index][i] 
Connect the sink at input index to the source at output index.
Samples from other input ports are consumed and dumped at a rate which is limited by (but not necessarily the same as) the rate of samples copied from the active input to the active output.
Other output ports produce no samples.