vdr  1.7.31
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
cRingBuffer Class Reference

#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)
 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)
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 include/vdr/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.

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

Member Function Documentation

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

Reimplemented in cRingBufferLinear, and cRingBufferLinear.

Definition at line 38 of file include/vdr/ringbuffer.h.

References Available(), and Size().

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

virtual int cRingBuffer::Free ( void  )
inlineprotectedvirtual

Reimplemented in cRingBufferLinear, and cRingBufferLinear.

Definition at line 38 of file ringbuffer.h.

References Available(), and Size().

void cRingBuffer::ReportOverflow ( int  Bytes)

Definition at line 101 of file ringbuffer.c.

References esyslog, lastOverflowReport, overflowBytes, overflowCount, and OVERFLOWREPORTDELTA.

Referenced by cRecorder::Receive().

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

Definition at line 95 of file ringbuffer.c.

References ioThrottle.

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

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

Definition at line 89 of file ringbuffer.c.

References getTimeout, and putTimeout.

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

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

Definition at line 39 of file ringbuffer.h.

References size.

void cRingBuffer::UpdatePercentage ( int  Fill)
protected
void cRingBuffer::UpdatePercentage ( int  Fill)
protected
void cRingBuffer::WaitForGet ( void  )
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
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 include/vdr/ringbuffer.h.

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

int cRingBuffer::getTimeout
private

Definition at line 20 of file include/vdr/ringbuffer.h.

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

cIoThrottle * cRingBuffer::ioThrottle
private
time_t cRingBuffer::lastOverflowReport
private

Definition at line 22 of file include/vdr/ringbuffer.h.

Referenced by cRingBuffer(), and ReportOverflow().

int cRingBuffer::lastPercent
protected

Definition at line 29 of file include/vdr/ringbuffer.h.

Referenced by cRingBuffer(), and UpdatePercentage().

int cRingBuffer::maxFill
protected
int cRingBuffer::overflowBytes
private

Definition at line 24 of file include/vdr/ringbuffer.h.

Referenced by cRingBuffer(), and ReportOverflow().

int cRingBuffer::overflowCount
private

Definition at line 23 of file include/vdr/ringbuffer.h.

Referenced by cRingBuffer(), and ReportOverflow().

int cRingBuffer::putTimeout
private

Definition at line 19 of file include/vdr/ringbuffer.h.

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

cCondWait cRingBuffer::readyForGet
private

Definition at line 18 of file include/vdr/ringbuffer.h.

Referenced by EnableGet(), and WaitForGet().

cCondWait cRingBuffer::readyForPut
private

Definition at line 18 of file include/vdr/ringbuffer.h.

Referenced by EnablePut(), and WaitForPut().

int cRingBuffer::size
private

Definition at line 21 of file include/vdr/ringbuffer.h.

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

bool cRingBuffer::statistics
protected

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