Home

Dokumentation

Impressum

Dokumentation VDR
 

Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

cRingBuffer Class Reference

#include <ringbuffer.h>

Inheritance diagram for cRingBuffer:

Inheritance graph
[legend]
Collaboration diagram for cRingBuffer:

Collaboration graph
[legend]

Detailed Description

Ring Buffer.

Definition at line 17 of file ringbuffer.h.

Public Methods

 cRingBuffer (int Size, bool Statistics=false)
virtual ~cRingBuffer ()

Protected Methods

void WaitForPut (void)
void WaitForGet (void)
void EnablePut (void)
void EnableGet (void)
virtual void Clear (void)=0
virtual int Available (void)=0
int Free (void)
void Lock (void)
void Unlock (void)
int Size (void)

Protected Attributes

int maxFill
int lastPercent
bool statistics

Private Attributes

cMutex mutex
cCondVar readyForPut
cCondVar readyForGet
cMutex putMutex
cMutex getMutex
int size


Constructor & Destructor Documentation

cRingBuffer::cRingBuffer int    Size,
bool    Statistics = false
 

Definition at line 20 of file ringbuffer.c.

References lastPercent, maxFill, size, and statistics.

cRingBuffer::~cRingBuffer   [virtual]
 

Definition at line 28 of file ringbuffer.c.

References dsyslog.


Member Function Documentation

virtual int cRingBuffer::Available void    [protected, pure virtual]
 

Implemented in cRingBufferLinear, and cRingBufferFrame.

Referenced by Free().

virtual void cRingBuffer::Clear void    [protected, pure virtual]
 

Implemented in cRingBufferLinear, and cRingBufferFrame.

void cRingBuffer::EnableGet void    [protected]
 

Definition at line 53 of file ringbuffer.c.

References cCondVar::Broadcast(), and readyForGet.

Referenced by cRingBufferFrame::Clear(), cRingBufferLinear::Clear(), cRingBufferFrame::Put(), and cRingBufferLinear::Put().

void cRingBuffer::EnablePut void    [protected]
 

Definition at line 48 of file ringbuffer.c.

References cCondVar::Broadcast(), and readyForPut.

Referenced by cRingBufferFrame::Clear(), cRingBufferLinear::Clear(), and cRingBufferFrame::Drop().

int cRingBuffer::Free void    [inline, protected]
 

Definition at line 33 of file ringbuffer.h.

References Available().

Referenced by cRingBufferFrame::Put().

void cRingBuffer::Lock void    [inline, protected]
 

Definition at line 34 of file ringbuffer.h.

References cMutex::Lock().

Referenced by cRingBufferFrame::Available(), cRingBufferLinear::Available(), cRingBufferFrame::Clear(), cRingBufferLinear::Clear(), cRingBufferFrame::Drop(), cRingBufferFrame::Get(), cRingBufferLinear::Get(), cRingBufferFrame::Put(), and cRingBufferLinear::Put().

int cRingBuffer::Size void    [inline, protected]
 

Definition at line 36 of file ringbuffer.h.

Referenced by cRingBufferLinear::Available(), cRingBufferLinear::Get(), and cRingBufferLinear::Put().

void cRingBuffer::Unlock void    [inline, protected]
 

Definition at line 35 of file ringbuffer.h.

References cMutex::Unlock().

Referenced by cRingBufferFrame::Available(), cRingBufferLinear::Available(), cRingBufferFrame::Clear(), cRingBufferLinear::Clear(), cRingBufferFrame::Drop(), cRingBufferFrame::Get(), cRingBufferLinear::Get(), cRingBufferFrame::Put(), and cRingBufferLinear::Put().

void cRingBuffer::WaitForGet void    [protected]
 

Definition at line 41 of file ringbuffer.c.

References getMutex, cMutex::Lock(), readyForGet, cMutex::Unlock(), and cCondVar::Wait().

Referenced by cRingBufferLinear::Get().

void cRingBuffer::WaitForPut void    [protected]
 

Definition at line 34 of file ringbuffer.c.

References cMutex::Lock(), putMutex, readyForPut, cMutex::Unlock(), and cCondVar::Wait().


Field Documentation

cMutex cRingBuffer::getMutex [private]
 

Definition at line 21 of file ringbuffer.h.

Referenced by WaitForGet().

int cRingBuffer::lastPercent [protected]
 

Definition at line 25 of file ringbuffer.h.

Referenced by cRingBuffer(), and cRingBufferLinear::Put().

int cRingBuffer::maxFill [protected]
 

Definition at line 24 of file ringbuffer.h.

Referenced by cRingBuffer(), and cRingBufferLinear::Put().

cMutex cRingBuffer::mutex [private]
 

Definition at line 19 of file ringbuffer.h.

cMutex cRingBuffer::putMutex [private]
 

Definition at line 21 of file ringbuffer.h.

Referenced by WaitForPut().

cCondVar cRingBuffer::readyForGet [private]
 

Definition at line 20 of file ringbuffer.h.

Referenced by EnableGet(), and WaitForGet().

cCondVar cRingBuffer::readyForPut [private]
 

Definition at line 20 of file ringbuffer.h.

Referenced by EnablePut(), and WaitForPut().

int cRingBuffer::size [private]
 

Definition at line 22 of file ringbuffer.h.

Referenced by cRingBuffer().

bool cRingBuffer::statistics [protected]
 

Definition at line 26 of file ringbuffer.h.

Referenced by cRingBuffer().


The documentation for this class was generated from the following files:
Generated on Wed Feb 5 23:31:53 2003 for VDR by doxygen1.3-rc2