UCommon
ost::FixedBuffer Class Reference

A buffer class that holds a known capacity of fixed sized objects defined during creation. More...

#include <thread.h>

Inheritance diagram for ost::FixedBuffer:
Collaboration diagram for ost::FixedBuffer:

Public Member Functions

 FixedBuffer (const FixedBuffer &fb)
 Create a copy of an existing fixed size buffer and duplicate it's contents.
 
 FixedBuffer (size_t capacity, size_t objsize)
 Create a buffer of known capacity for objects of a specified size.
 
bool isValid (void)
 New virtual to test if buffer is a valid object.
 
FixedBufferoperator= (const FixedBuffer &fb)
 
virtual ~FixedBuffer ()
 Destroy the fixed buffer and free the memory used to store objects.
 
- Public Member Functions inherited from ost::Buffer
 Buffer (size_t capacity)
 Create a buffer object of known capacity.
 
size_t getSize (void) const
 Return the capacity of the buffer as specified at creation.
 
size_t getUsed (void) const
 Return the current capacity in use for the buffer.
 
size_t peek (void *buf)
 Peek at the current content (first object) in the buffer.
 
size_t post (void *buf, timeout_t timeout=0)
 Post an object into the buffer and enable a waiting thread to receive it.
 
size_t wait (void *buf, timeout_t timeout=0)
 Let one or more threads wait for an object to become available in the buffer.
 
virtual ~Buffer ()
 In derived functions, may be used to free the actual memory used to hold buffered data.
 

Protected Member Functions

size_t onPeek (void *buf)
 Return the first object in the buffer.
 
size_t onPost (void *buf)
 Post an object of the appropriate size into the buffer.
 
size_t onWait (void *buf)
 Wait for and return a fixed object in the buffer.
 

Additional Inherited Members

- Static Public Attributes inherited from ost::Buffer
static const size_t timeout
 value to return when a timed operation returned with a timeout.
 

Detailed Description

A buffer class that holds a known capacity of fixed sized objects defined during creation.

Author
David Sugar dyfet.nosp@m.@ost.nosp@m.el.co.nosp@m.m

producer/consumer buffer for fixed size objects.

Definition at line 814 of file thread.h.

Constructor & Destructor Documentation

◆ FixedBuffer() [1/2]

ost::FixedBuffer::FixedBuffer ( size_t capacity,
size_t objsize )

Create a buffer of known capacity for objects of a specified size.

Parameters
capacityof the buffer.
objsizefor each object held in the buffer.

◆ FixedBuffer() [2/2]

ost::FixedBuffer::FixedBuffer ( const FixedBuffer & fb)

Create a copy of an existing fixed size buffer and duplicate it's contents.

Parameters
fbexisting FixedBuffer object.

Member Function Documentation

◆ isValid()

bool ost::FixedBuffer::isValid ( void )
virtual

New virtual to test if buffer is a valid object.

Returns
true if object is valid.

Reimplemented from ost::Buffer.

◆ onPeek()

size_t ost::FixedBuffer::onPeek ( void * buf)
protectedvirtual

Return the first object in the buffer.

Returns
predefined size of this buffers objects.
Parameters
bufpointer to copy contents of head of buffer to.

Implements ost::Buffer.

◆ onPost()

size_t ost::FixedBuffer::onPost ( void * buf)
protectedvirtual

Post an object of the appropriate size into the buffer.

Returns
predefined size of this buffers objects.
Parameters
bufpointer to data to copy into the buffer.

Implements ost::Buffer.

◆ onWait()

size_t ost::FixedBuffer::onWait ( void * buf)
protectedvirtual

Wait for and return a fixed object in the buffer.

Returns
predefined size of this buffers objects.
Parameters
bufpointer to hold object returned from the buffer.

Implements ost::Buffer.


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