GNU Radio 3.7.1 C++ API
|
How we keep track of the readers of a gr::buffer. More...
#include <buffer.h>
Public Member Functions | |
~buffer_reader () | |
int | items_available () const |
Return number of items available for reading. | |
buffer_sptr | buffer () const |
Return buffer this reader reads from. | |
int | max_possible_items_available () const |
Return maximum number of items that could ever be available for reading. This is used as a sanity check in the scheduler to avoid looping forever. | |
const void * | read_pointer () |
return pointer to read buffer. | |
void | update_read_pointer (int nitems) |
void | set_done (bool done) |
bool | done () const |
gr::thread::mutex * | mutex () |
uint64_t | nitems_read () |
size_t | get_sizeof_item () |
block_sptr | link () |
Return the block that reads via this reader. | |
void | get_tags_in_range (std::vector< tag_t > &v, uint64_t abs_start, uint64_t abs_end, long id) |
Given a [start,end), returns a vector all tags in the range. | |
Friends | |
class | buffer |
GR_RUNTIME_API buffer_reader_sptr | buffer_add_reader (buffer_sptr buf, int nzero_preload, block_sptr link) |
Create a new gr::buffer_reader and attach it to buffer buf . |
How we keep track of the readers of a gr::buffer.
buffer_sptr gr::buffer_reader::buffer | ( | ) | const [inline] |
Return buffer this reader reads from.
bool gr::buffer_reader::done | ( | ) | const [inline] |
size_t gr::buffer_reader::get_sizeof_item | ( | ) | [inline] |
void gr::buffer_reader::get_tags_in_range | ( | std::vector< tag_t > & | v, |
uint64_t | abs_start, | ||
uint64_t | abs_end, | ||
long | id | ||
) |
Given a [start,end), returns a vector all tags in the range.
Get a vector of tags in given range. Range of counts is from start to end-1.
Tags are tuples of: (item count, source id, key, value)
v | a vector reference to return tags into |
abs_start | a uint64 count of the start of the range of interest |
abs_end | a uint64 count of the end of the range of interest |
id | the unique ID of the block to make sure already deleted tags are not returned |
int gr::buffer_reader::items_available | ( | ) | const |
Return number of items available for reading.
block_sptr gr::buffer_reader::link | ( | ) | [inline] |
Return the block that reads via this reader.
int gr::buffer_reader::max_possible_items_available | ( | ) | const [inline] |
Return maximum number of items that could ever be available for reading. This is used as a sanity check in the scheduler to avoid looping forever.
gr::thread::mutex* gr::buffer_reader::mutex | ( | ) | [inline] |
uint64_t gr::buffer_reader::nitems_read | ( | ) | [inline] |
const void* gr::buffer_reader::read_pointer | ( | ) |
return pointer to read buffer.
The return value points to items_available() number of items
void gr::buffer_reader::set_done | ( | bool | done | ) | [inline] |
void gr::buffer_reader::update_read_pointer | ( | int | nitems | ) |
friend class buffer [friend] |
GR_RUNTIME_API buffer_reader_sptr buffer_add_reader | ( | buffer_sptr | buf, |
int | nzero_preload, | ||
block_sptr | link | ||
) | [friend] |
Create a new gr::buffer_reader and attach it to buffer buf
.
buf | is the buffer the gr::buffer_reader reads from. |
nzero_preload | -- number of zero items to "preload" into buffer. |
link | is the block that reads from the buffer using this gr::buffer_reader. |