GNU Radio 3.6.2git-147-g267ac52b C++ API
gr_buffer Class Reference

Single writer, multiple reader fifo. More...

#include <gr_buffer.h>

List of all members.

Public Member Functions

virtual ~gr_buffer ()
int space_available ()
 return number of items worth of space available for writing
int bufsize () const
 return size of this buffer in items
voidwrite_pointer ()
 return pointer to write buffer.
void update_write_pointer (int nitems)
 tell buffer that we wrote nitems into it
void set_done (bool done)
bool done () const
gr_block_sptr link ()
 Return the block that writes to this buffer.
size_t nreaders () const
gr_buffer_readerreader (size_t index)
gruel::mutexmutex ()
uint64_t nitems_written ()
size_t get_sizeof_item ()
void add_item_tag (const gr_tag_t &tag)
 Adds a new tag to the buffer.
void prune_tags (uint64_t max_time)
 Removes all tags before max_time from buffer.
std::deque< gr_tag_t >::iterator get_tags_begin ()
std::deque< gr_tag_t >::iterator get_tags_end ()

Protected Attributes

char * d_base
unsigned int d_bufsize

Friends

class gr_buffer_reader
GR_CORE_API gr_buffer_sptr gr_make_buffer (int nitems, size_t sizeof_item, gr_block_sptr link)
 Allocate a buffer that holds at least nitems of size sizeof_item.
GR_CORE_API gr_buffer_reader_sptr gr_buffer_add_reader (gr_buffer_sptr buf, int nzero_preload, gr_block_sptr link)
 Create a new gr_buffer_reader and attach it to buffer buf.

Detailed Description

Single writer, multiple reader fifo.


Constructor & Destructor Documentation

virtual gr_buffer::~gr_buffer ( ) [virtual]

Member Function Documentation

Adds a new tag to the buffer.

Parameters:
tagthe new tag
int gr_buffer::bufsize ( ) const [inline]

return size of this buffer in items

bool gr_buffer::done ( ) const [inline]
size_t gr_buffer::get_sizeof_item ( ) [inline]
std::deque<gr_tag_t>::iterator gr_buffer::get_tags_begin ( ) [inline]
std::deque<gr_tag_t>::iterator gr_buffer::get_tags_end ( ) [inline]

Return the block that writes to this buffer.

size_t gr_buffer::nreaders ( ) const [inline]

Removes all tags before max_time from buffer.

Parameters:
max_timethe time (item number) to trim up until.
gr_buffer_reader* gr_buffer::reader ( size_t  index) [inline]
void gr_buffer::set_done ( bool  done)

return number of items worth of space available for writing

tell buffer that we wrote nitems into it

return pointer to write buffer.

The return value points at space that can hold at least space_available() items.


Friends And Related Function Documentation

GR_CORE_API gr_buffer_reader_sptr gr_buffer_add_reader ( gr_buffer_sptr  buf,
int  nzero_preload,
gr_block_sptr  link 
) [friend]

Create a new gr_buffer_reader and attach it to buffer buf.

Parameters:
bufis the buffer the gr_buffer_reader reads from.
nzero_preload-- number of zero items to "preload" into buffer.
linkis the block that reads from the buffer using this gr_buffer_reader.
friend class gr_buffer_reader [friend]
GR_CORE_API gr_buffer_sptr gr_make_buffer ( int  nitems,
size_t  sizeof_item,
gr_block_sptr  link 
) [friend]

Allocate a buffer that holds at least nitems of size sizeof_item.

The total size of the buffer will be rounded up to a system dependent boundary. This is typically the system page size, but under MS windows is 64KB.

Parameters:
nitemsis the minimum number of items the buffer will hold.
sizeof_itemis the size of an item in bytes.
linkis the block that writes to this buffer.

Member Data Documentation

char* gr_buffer::d_base [protected]
unsigned int gr_buffer::d_bufsize [protected]

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