reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
resip::ProducerFifoBuffer< T > Class Template Reference

Class for buffering messages placed in a Fifo, to be used by a single producer. More...

#include <ProducerFifoBuffer.hxx>

Public Member Functions

 ProducerFifoBuffer (Fifo< T > &fifo, size_t bufferSize)
 
 ~ProducerFifoBuffer ()
 
void add (T *msg)
 
void flush ()
 
size_t getBufferSize () const
 
void setBufferSize (size_t pBufferSize)
 
const Fifo< T > & getFifo () const
 
Fifo< T > & getFifo ()
 

Protected Attributes

Fifo< T > & mFifo
 
Fifo< T >::Messages mBuffer
 
size_t mBufferSize
 

Detailed Description

template<typename T>
class resip::ProducerFifoBuffer< T >

Class for buffering messages placed in a Fifo, to be used by a single producer.

By adding messages in bulk, lock contention is reduced.

Todo:
Refactor so we can use this with AbstractFifo<T>? This is presently not the case because AbstractFifo does not expose its API publicly.

Definition at line 16 of file ProducerFifoBuffer.hxx.

Constructor & Destructor Documentation

◆ ProducerFifoBuffer()

template<typename T >
resip::ProducerFifoBuffer< T >::ProducerFifoBuffer ( Fifo< T > &  fifo,
size_t  bufferSize 
)
inline

Definition at line 19 of file ProducerFifoBuffer.hxx.

◆ ~ProducerFifoBuffer()

template<typename T >
resip::ProducerFifoBuffer< T >::~ProducerFifoBuffer ( )
inline

Definition at line 25 of file ProducerFifoBuffer.hxx.

Member Function Documentation

◆ add()

template<typename T >
void resip::ProducerFifoBuffer< T >::add ( T *  msg)
inline

Definition at line 30 of file ProducerFifoBuffer.hxx.

◆ flush()

template<typename T >
void resip::ProducerFifoBuffer< T >::flush ( )
inline

Definition at line 39 of file ProducerFifoBuffer.hxx.

◆ getBufferSize()

template<typename T >
size_t resip::ProducerFifoBuffer< T >::getBufferSize ( ) const
inline

Definition at line 47 of file ProducerFifoBuffer.hxx.

◆ getFifo() [1/2]

template<typename T >
Fifo< T > & resip::ProducerFifoBuffer< T >::getFifo ( )
inline

Definition at line 60 of file ProducerFifoBuffer.hxx.

◆ getFifo() [2/2]

template<typename T >
const Fifo< T > & resip::ProducerFifoBuffer< T >::getFifo ( ) const
inline

Definition at line 59 of file ProducerFifoBuffer.hxx.

◆ setBufferSize()

template<typename T >
void resip::ProducerFifoBuffer< T >::setBufferSize ( size_t  pBufferSize)
inline

Definition at line 50 of file ProducerFifoBuffer.hxx.

Member Data Documentation

◆ mBuffer

template<typename T >
Fifo<T>::Messages resip::ProducerFifoBuffer< T >::mBuffer
protected

Definition at line 65 of file ProducerFifoBuffer.hxx.

◆ mBufferSize

template<typename T >
size_t resip::ProducerFifoBuffer< T >::mBufferSize
protected

Definition at line 66 of file ProducerFifoBuffer.hxx.

◆ mFifo

template<typename T >
Fifo<T>& resip::ProducerFifoBuffer< T >::mFifo
protected

Definition at line 63 of file ProducerFifoBuffer.hxx.


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