A single mapped buffer where wrapping conditions are handled explicitly via input/output_blocked_callback functions called from block_executor.
More...
|
| ~buffer_single_mapped () override |
|
block_sptr | buf_owner () |
| Return the block that owns this buffer. More...
|
|
int | space_available () override |
| return number of items worth of space available for writing More...
|
|
void | update_reader_block_history (unsigned history, int delay) override |
|
bool | input_blkd_cb_ready (int items_required, unsigned read_index) override |
| Return true if thread is ready to call input_blocked_callback, false otherwise. More...
|
|
bool | input_blocked_callback (int items_required, int items_avail, unsigned read_index) override=0 |
| Callback function that the scheduler will call when it determines that the input is blocked. Override this function if needed. More...
|
|
bool | output_blkd_cb_ready (int output_multiple) override |
| Return true if thread is ready to call the callback, false otherwise. More...
|
|
bool | output_blocked_callback (int output_multiple, bool force) override=0 |
| Callback function that the scheduler will call when it determines that the output is blocked. More...
|
|
| ~buffer () override |
|
buffer_mapping_type | get_mapping_type () |
| return the buffer's mapping type More...
|
|
unsigned int | bufsize () const |
| return size of this buffer in items More...
|
|
const char * | base () const |
| return the base address of the buffer More...
|
|
virtual void * | write_pointer () |
| return pointer to write buffer. More...
|
|
virtual const void * | _read_pointer (unsigned int read_index) |
| return pointer to read buffer. More...
|
|
void | update_write_pointer (int nitems) |
| tell buffer that we wrote nitems into it More...
|
|
void | set_done (bool done) |
|
bool | done () const |
|
block_sptr | link () |
| Return the block that writes to this buffer. More...
|
|
size_t | nreaders () const |
|
buffer_reader * | reader (size_t index) |
|
gr::thread::mutex * | mutex () |
|
uint64_t | nitems_written () |
|
void | reset_nitem_counter () |
|
size_t | get_sizeof_item () |
|
uint64_t | get_downstream_lcm_nitems () |
|
uint32_t | get_max_reader_output_multiple () |
|
virtual void | update_reader_block_history (unsigned history, [[maybe_unused]] int delay) |
|
void | add_item_tag (const tag_t &tag) |
| Adds a new tag to the buffer. More...
|
|
void | remove_item_tag (const tag_t &tag, long id) |
| Removes an existing tag from the buffer. More...
|
|
void | prune_tags (uint64_t max_time) |
| Removes all tags before max_time from buffer. More...
|
|
std::multimap< uint64_t, tag_t >::iterator | get_tags_begin () |
|
std::multimap< uint64_t, tag_t >::iterator | get_tags_end () |
|
std::multimap< uint64_t, tag_t >::iterator | get_tags_lower_bound (uint64_t x) |
|
std::multimap< uint64_t, tag_t >::iterator | get_tags_upper_bound (uint64_t x) |
|
virtual void | post_work (int nitems)=0 |
| Function to be executed after this object's owner completes the call to general_work() More...
|
|
virtual bool | input_blkd_cb_ready ([[maybe_unused]] int items_required, [[maybe_unused]] unsigned read_index) |
| Returns true when the current thread is ready to call the callback, false otherwise. Note if input_blocked_callback is overridden then this function should also be overridden. More...
|
|
virtual bool | input_blocked_callback ([[maybe_unused]] int items_required, [[maybe_unused]] int items_avail, [[maybe_unused]] unsigned read_index) |
| Callback function that the scheduler will call when it determines that the input is blocked. Override this function if needed. More...
|
|
virtual bool | output_blkd_cb_ready ([[maybe_unused]] int output_multiple) |
| Returns true if the current thread is ready to execute output_blocked_callback(), false otherwise. Note if the default output_blocked_callback is overridden this function should also be overridden. More...
|
|
virtual bool | output_blocked_callback ([[maybe_unused]] int output_multiple, [[maybe_unused]] bool force=false) |
| Callback function that the scheduler will call when it determines that the output is blocked. Override this function if needed. More...
|
|
void | increment_active () |
| Increment the number of active pointers for this buffer. More...
|
|
void | decrement_active () |
| Decrement the number of active pointers for this buffer and signal anyone waiting when the count reaches zero. More...
|
|
void | on_lock (gr::thread::scoped_lock &lock) override |
| "on_lock" function from the custom_lock_if. More...
|
|
void | on_unlock () override |
| "on_unlock" function from the custom_lock_if. More...
|
|
void | set_transfer_type (const transfer_type &type) |
| Assign buffer's transfer_type. More...
|
|
virtual | ~custom_lock_if () |
|
|
bool | allocate_buffer (int nitems) override |
| Make reasonable attempt to adjust nitems based on read/write granularity then delegate actual allocation to do_allocate_buffer(). More...
|
|
virtual bool | do_allocate_buffer (size_t final_nitems, size_t sizeof_item)=0 |
| Do actual buffer allocation. This is intended (required) to be handled by the derived class. More...
|
|
unsigned | index_add (unsigned a, unsigned b) override |
| Increment read or write index for this buffer. More...
|
|
unsigned | index_sub (unsigned a, unsigned b) override |
| Decrement read or write index for this buffer. More...
|
|
| buffer_single_mapped (int nitems, size_t sizeof_item, uint64_t downstream_lcm_nitems, uint32_t downstream_max_out_mult, block_sptr link, block_sptr buf_owner) |
| constructor is private. Use gr_make_buffer to create instances. More...
|
|
virtual bool | input_blocked_callback_logic (int items_required, int items_avail, unsigned read_index, char *buffer_ptr, mem_func_t const &memcpy_func, mem_func_t const &memmove_func) |
| Abstracted logic for the input blocked callback function. More...
|
|
virtual bool | output_blocked_callback_logic (int output_multiple, bool force, char *buffer_ptr, mem_func_t const &memmove_func) |
| Abstracted logic for the output blocked callback function. More...
|
|
virtual bool | allocate_buffer ([[maybe_unused]] int nitems) |
|
| buffer (buffer_mapping_type buftype, int nitems, size_t sizeof_item, uint64_t downstream_lcm_nitems, uint32_t downstream_max_out_mult, block_sptr link) |
| constructor is private. Use gr_make_buffer to create instances. More...
|
|
void | drop_reader (buffer_reader *reader) |
| disassociate reader from this buffer More...
|
|
A single mapped buffer where wrapping conditions are handled explicitly via input/output_blocked_callback functions called from block_executor.