GNU Radio 3.6.5.1 C++ API
gr::blocks::copy_impl Class Reference

#include <copy_impl.h>

Inheritance diagram for gr::blocks::copy_impl:
gr::blocks::copy gr_block gr_basic_block gr_msg_accepter gruel::msg_accepter

Public Member Functions

 copy_impl (size_t itemsize)
 ~copy_impl ()
void forecast (int noutput_items, gr_vector_int &ninput_items_required)
 Estimate input requirements given output request.
bool check_topology (int ninputs, int noutputs)
 Confirm that ninputs and noutputs is an acceptable combination.
void set_enabled (bool enable)
bool enabled () const
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

Additional Inherited Members

- Public Types inherited from gr::blocks::copy
typedef boost::shared_ptr< copysptr
- Static Public Member Functions inherited from gr::blocks::copy
static sptr make (size_t itemsize)
- Protected Types inherited from gr_basic_block
enum  vcolor { WHITE, GREY, BLACK }
- Protected Member Functions inherited from gr_block
 gr_block (void)
 gr_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 gr_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)
 Removes a tag from the given input buffer.
void remove_item_tag (unsigned int which_input, const gr_tag_t &tag)
 Removes a tag from the given input buffer.
void get_tags_in_range (std::vector< gr_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< gr_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.
- Protected Attributes inherited from gr_block
std::vector< long > d_max_output_buffer
std::vector< long > d_min_output_buffer
gruel::mutex d_setlock
gr_logger_ptr d_logger
gr_logger_ptr d_debug_logger

Constructor & Destructor Documentation

gr::blocks::copy_impl::copy_impl ( size_t  itemsize)
gr::blocks::copy_impl::~copy_impl ( )

Member Function Documentation

bool gr::blocks::copy_impl::check_topology ( int  ninputs,
int  noutputs 
)
virtual

Confirm that ninputs and noutputs is an acceptable combination.

Parameters
ninputsnumber of input streams connected
noutputsnumber of output streams connected
Returns
true if this is a valid configuration for this block.

This function is called by the runtime system whenever the topology changes. Most classes do not need to override this. This check is in addition to the constraints specified by the input and output gr_io_signatures.

Reimplemented from gr_basic_block.

bool gr::blocks::copy_impl::enabled ( ) const
inlinevirtual

Implements gr::blocks::copy.

void gr::blocks::copy_impl::forecast ( int  noutput_items,
gr_vector_int ninput_items_required 
)
virtual

Estimate input requirements given output request.

Parameters
noutput_itemsnumber of output items to produce
ninput_items_requirednumber of input items required on each input stream

Given a request to product noutput_items, estimate the number of data items required on each input stream. The estimate doesn't have to be exact, but should be close.

Reimplemented from gr_block.

int gr::blocks::copy_impl::general_work ( int  noutput_items,
gr_vector_int ninput_items,
gr_vector_const_void_star input_items,
gr_vector_void_star output_items 
)
virtual

compute output items from input items

Parameters
noutput_itemsnumber of output items to write on each output stream
ninput_itemsnumber of input items available on each input stream
input_itemsvector of pointers to the input items, one entry per input stream
output_itemsvector of pointers to the output items, one entry per output stream
Returns
number of items actually written to each output stream, or -1 on EOF. It is OK to return a value less than noutput_items. -1 <= return value <= noutput_items

general_work must call consume or consume_each to indicate how many items were consumed on each input stream.

Reimplemented from gr_block.

void gr::blocks::copy_impl::set_enabled ( bool  enable)
inlinevirtual

Implements gr::blocks::copy.


The documentation for this class was generated from the following file: