gr_buffer Class Reference
[Implementation Details]

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
void * write_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::mutex * mutex ()

Protected Attributes

char * d_base
unsigned int d_bufsize

Friends

class gr_buffer_reader
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_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

int gr_buffer::bufsize (  )  const [inline]

return size of this buffer in items

References d_bufsize.

bool gr_buffer::done (  )  const [inline]
gr_block_sptr gr_buffer::link (  )  [inline]

Return the block that writes to this buffer.

gruel::mutex* gr_buffer::mutex (  )  [inline]
size_t gr_buffer::nreaders (  )  const [inline]
gr_buffer_reader* gr_buffer::reader ( size_t  index  )  [inline]
void gr_buffer::set_done ( bool  done  ) 
int gr_buffer::space_available (  ) 

return number of items worth of space available for writing

void gr_buffer::update_write_pointer ( int  nitems  ) 

tell buffer that we wrote nitems into it

void* gr_buffer::write_pointer (  ) 

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_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:
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.
friend class gr_buffer_reader [friend]
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:
nitems is the minimum number of items the buffer will hold.
sizeof_item is the size of an item in bytes.
link is the block that writes to this buffer.

Member Data Documentation

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

Referenced by bufsize().


The documentation for this class was generated from the following file:
Generated on Sat Oct 23 17:37:46 2010 for GNU Radio 3.3.0 C++ API by  doxygen 1.6.3