vdr  2.2.0
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
cRingBuffer Class Referenceabstract

#include <ringbuffer.h>

Public Member Functions

 cRingBuffer (int Size, bool Statistics=false)
 
virtual ~cRingBuffer ()
 
void SetTimeouts (int PutTimeout, int GetTimeout)
 
void SetIoThrottle (void)
 
void ReportOverflow (int Bytes)
 

Protected Member Functions

void UpdatePercentage (int Fill)
 
void WaitForPut (void)
 
void WaitForGet (void)
 
void EnablePut (void)
 
void EnableGet (void)
 
virtual void Clear (void)=0
 
virtual int Available (void)=0
 
virtual int Free (void)
 
int Size (void)
 

Protected Attributes

tThreadId getThreadTid
 
int maxFill
 
int lastPercent
 
bool statistics
 

Private Attributes

cCondWait readyForPut
 
cCondWait readyForGet
 
int putTimeout
 
int getTimeout
 
int size
 
time_t lastOverflowReport
 
int overflowCount
 
int overflowBytes
 
cIoThrottleioThrottle
 

Detailed Description

Definition at line 16 of file ringbuffer.h.

Constructor & Destructor Documentation

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

Definition at line 39 of file ringbuffer.c.

References dsyslog, ioThrottle, maxFill, size, and statistics.

Referenced by Size().

Member Function Documentation

virtual int cRingBuffer::Available ( void  )
protectedpure virtual
virtual void cRingBuffer::Clear ( void  )
protectedpure virtual
void cRingBuffer::EnableGet ( void  )
protected
void cRingBuffer::EnablePut ( void  )
protected
virtual int cRingBuffer::Free ( void  )
inlineprotectedvirtual

Reimplemented in cRingBufferLinear.

Definition at line 38 of file ringbuffer.h.

References Available(), and Size().

Referenced by EnablePut(), and cRingBufferFrame::Put().

void cRingBuffer::ReportOverflow ( int  Bytes)
void cRingBuffer::SetIoThrottle ( void  )

Definition at line 95 of file ringbuffer.c.

References ioThrottle.

Referenced by cRecorder::cRecorder(), and Size().

void cRingBuffer::SetTimeouts ( int  PutTimeout,
int  GetTimeout 
)

Definition at line 89 of file ringbuffer.c.

References getTimeout, and putTimeout.

Referenced by cRecorder::cRecorder(), and Size().

int cRingBuffer::Size ( void  )
inlineprotected
void cRingBuffer::UpdatePercentage ( int  Fill)
protected
void cRingBuffer::WaitForGet ( void  )
protected

Definition at line 71 of file ringbuffer.c.

References getTimeout, readyForGet, and cCondWait::Wait().

Referenced by cRingBufferLinear::Get().

void cRingBuffer::WaitForPut ( void  )
protected

Definition at line 65 of file ringbuffer.c.

References putTimeout, readyForPut, and cCondWait::Wait().

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

Member Data Documentation

tThreadId cRingBuffer::getThreadTid
protected

Definition at line 27 of file ringbuffer.h.

Referenced by cRingBuffer(), cRingBufferLinear::Get(), and UpdatePercentage().

int cRingBuffer::getTimeout
private

Definition at line 20 of file ringbuffer.h.

Referenced by cRingBuffer(), EnableGet(), SetTimeouts(), and WaitForGet().

cIoThrottle* cRingBuffer::ioThrottle
private

Definition at line 25 of file ringbuffer.h.

Referenced by cRingBuffer(), SetIoThrottle(), UpdatePercentage(), and ~cRingBuffer().

time_t cRingBuffer::lastOverflowReport
private

Definition at line 22 of file ringbuffer.h.

Referenced by cRingBuffer(), and ReportOverflow().

int cRingBuffer::lastPercent
protected

Definition at line 29 of file ringbuffer.h.

Referenced by cRingBuffer(), and UpdatePercentage().

int cRingBuffer::maxFill
protected

Definition at line 28 of file ringbuffer.h.

Referenced by cRingBufferLinear::Clear(), cRingBuffer(), UpdatePercentage(), and ~cRingBuffer().

int cRingBuffer::overflowBytes
private

Definition at line 24 of file ringbuffer.h.

Referenced by cRingBuffer(), and ReportOverflow().

int cRingBuffer::overflowCount
private

Definition at line 23 of file ringbuffer.h.

Referenced by cRingBuffer(), and ReportOverflow().

int cRingBuffer::putTimeout
private

Definition at line 19 of file ringbuffer.h.

Referenced by cRingBuffer(), EnablePut(), SetTimeouts(), and WaitForPut().

cCondWait cRingBuffer::readyForGet
private

Definition at line 18 of file ringbuffer.h.

Referenced by EnableGet(), and WaitForGet().

cCondWait cRingBuffer::readyForPut
private

Definition at line 18 of file ringbuffer.h.

Referenced by EnablePut(), and WaitForPut().

int cRingBuffer::size
private

Definition at line 21 of file ringbuffer.h.

Referenced by cRingBuffer(), Size(), and ~cRingBuffer().

bool cRingBuffer::statistics
protected

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