vdr 2.6.1
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)
 
 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() [1/2]

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

◆ ~cRingBuffer() [1/2]

cRingBuffer::~cRingBuffer ( )
virtual

Definition at line 39 of file ringbuffer.c.

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

◆ cRingBuffer() [2/2]

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

◆ ~cRingBuffer() [2/2]

virtual cRingBuffer::~cRingBuffer ( )
virtual

Member Function Documentation

◆ Available() [1/2]

virtual int cRingBuffer::Available ( void  )
protectedpure virtual

◆ Available() [2/2]

virtual int cRingBuffer::Available ( void  )
protectedpure virtual

◆ Clear() [1/2]

virtual void cRingBuffer::Clear ( void  )
protectedpure virtual

◆ Clear() [2/2]

virtual void cRingBuffer::Clear ( void  )
protectedpure virtual

◆ EnableGet() [1/2]

void cRingBuffer::EnableGet ( void  )
protected

◆ EnableGet() [2/2]

void cRingBuffer::EnableGet ( void  )
protected

◆ EnablePut() [1/2]

void cRingBuffer::EnablePut ( void  )
protected

◆ EnablePut() [2/2]

void cRingBuffer::EnablePut ( void  )
protected

◆ Free() [1/2]

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().

◆ Free() [2/2]

virtual int cRingBuffer::Free ( void  )
inlineprotectedvirtual

Reimplemented in cRingBufferLinear, and cRingBufferLinear.

Definition at line 38 of file ringbuffer.h.

References Available(), and Size().

◆ ReportOverflow() [1/2]

void cRingBuffer::ReportOverflow ( int  Bytes)

Definition at line 101 of file ringbuffer.c.

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

Referenced by cRecorder::Receive().

◆ ReportOverflow() [2/2]

void cRingBuffer::ReportOverflow ( int  Bytes)

◆ SetIoThrottle() [1/2]

void cRingBuffer::SetIoThrottle ( void  )

Definition at line 95 of file ringbuffer.c.

References ioThrottle.

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

◆ SetIoThrottle() [2/2]

void cRingBuffer::SetIoThrottle ( void  )

◆ SetTimeouts() [1/2]

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().

◆ SetTimeouts() [2/2]

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

◆ Size() [1/2]

int cRingBuffer::Size ( void  )
inlineprotected

◆ Size() [2/2]

int cRingBuffer::Size ( void  )
inlineprotected

Definition at line 39 of file ringbuffer.h.

References size.

◆ UpdatePercentage() [1/2]

void cRingBuffer::UpdatePercentage ( int  Fill)
protected

◆ UpdatePercentage() [2/2]

void cRingBuffer::UpdatePercentage ( int  Fill)
protected

◆ WaitForGet() [1/2]

void cRingBuffer::WaitForGet ( void  )
protected

Definition at line 71 of file ringbuffer.c.

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

Referenced by cRingBufferLinear::Get().

◆ WaitForGet() [2/2]

void cRingBuffer::WaitForGet ( void  )
protected

◆ WaitForPut() [1/2]

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().

◆ WaitForPut() [2/2]

void cRingBuffer::WaitForPut ( void  )
protected

Member Data Documentation

◆ getThreadTid

tThreadId cRingBuffer::getThreadTid
protected

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

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

◆ getTimeout

int cRingBuffer::getTimeout
private

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

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

◆ ioThrottle

cIoThrottle * cRingBuffer::ioThrottle
private

◆ lastOverflowReport

time_t cRingBuffer::lastOverflowReport
private

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

Referenced by cRingBuffer(), and ReportOverflow().

◆ lastPercent

int cRingBuffer::lastPercent
protected

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

Referenced by cRingBuffer(), and UpdatePercentage().

◆ maxFill

int cRingBuffer::maxFill
protected

◆ overflowBytes

int cRingBuffer::overflowBytes
private

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

Referenced by cRingBuffer(), and ReportOverflow().

◆ overflowCount

int cRingBuffer::overflowCount
private

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

Referenced by cRingBuffer(), and ReportOverflow().

◆ putTimeout

int cRingBuffer::putTimeout
private

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

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

◆ readyForGet

cCondWait cRingBuffer::readyForGet
private

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

Referenced by EnableGet(), and WaitForGet().

◆ readyForPut

cCondWait cRingBuffer::readyForPut
private

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

Referenced by EnablePut(), and WaitForPut().

◆ size

int cRingBuffer::size
private

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

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

◆ statistics

bool cRingBuffer::statistics
protected

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