vdr 2.7.7
cRingBufferFrame Class Reference

#include <ringbuffer.h>

Public Member Functions

 cRingBufferFrame (int Size, bool Statistics=false)
virtual ~cRingBufferFrame () override
virtual int Available (void) override
virtual void Clear (void) override
bool Put (cFrame *Frame)
cFrameGet (void)
void Drop (cFrame *Frame)
Public Member Functions inherited from cRingBuffer
 cRingBuffer (int Size, bool Statistics=false)
virtual ~cRingBuffer ()
void SetTimeouts (int PutTimeout, int GetTimeout)
void SetIoThrottle (void)
void ReportOverflow (int Bytes)

Private Member Functions

void Delete (cFrame *Frame)
void Lock (void)
void Unlock (void)

Private Attributes

cMutex mutex
cFramehead
int currentFill

Additional Inherited Members

Protected Member Functions inherited from cRingBuffer
void UpdatePercentage (int Fill)
void WaitForPut (void)
void WaitForGet (void)
void EnablePut (void)
void EnableGet (void)
virtual int Free (void)
int Size (void)
Protected Attributes inherited from cRingBuffer
tThreadId getThreadTid
int maxFill
int lastPercent
bool statistics

Detailed Description

Definition at line 133 of file ringbuffer.h.

Constructor & Destructor Documentation

◆ cRingBufferFrame()

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

Definition at line 420 of file ringbuffer.c.

References cRingBuffer::cRingBuffer(), currentFill, head, and cRingBuffer::Size().

◆ ~cRingBufferFrame()

cRingBufferFrame::~cRingBufferFrame ( )
overridevirtual

Definition at line 427 of file ringbuffer.c.

References Clear().

Member Function Documentation

◆ Available()

int cRingBufferFrame::Available ( void )
overridevirtual

Implements cRingBuffer.

Definition at line 498 of file ringbuffer.c.

References currentFill, Lock(), and Unlock().

◆ Clear()

void cRingBufferFrame::Clear ( void )
overridevirtual

Implements cRingBuffer.

Definition at line 432 of file ringbuffer.c.

References Drop(), cRingBuffer::EnableGet(), cRingBuffer::EnablePut(), Get(), Lock(), and Unlock().

Referenced by ~cRingBufferFrame().

◆ Delete()

void cRingBufferFrame::Delete ( cFrame * Frame)
private

Definition at line 471 of file ringbuffer.c.

References cFrame::Count(), and currentFill.

Referenced by Drop().

◆ Drop()

void cRingBufferFrame::Drop ( cFrame * Frame)

Definition at line 477 of file ringbuffer.c.

References Delete(), cRingBuffer::EnablePut(), esyslog, head, Lock(), cFrame::next, and Unlock().

Referenced by Clear().

◆ Get()

cFrame * cRingBufferFrame::Get ( void )

Definition at line 463 of file ringbuffer.c.

References head, Lock(), and Unlock().

Referenced by Clear().

◆ Lock()

void cRingBufferFrame::Lock ( void )
inlineprivate

Definition at line 139 of file ringbuffer.h.

References mutex.

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

◆ Put()

bool cRingBufferFrame::Put ( cFrame * Frame)

◆ Unlock()

void cRingBufferFrame::Unlock ( void )
inlineprivate

Definition at line 140 of file ringbuffer.h.

References mutex.

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

Member Data Documentation

◆ currentFill

int cRingBufferFrame::currentFill
private

Definition at line 137 of file ringbuffer.h.

Referenced by Available(), cRingBufferFrame(), Delete(), and Put().

◆ head

cFrame* cRingBufferFrame::head
private

Definition at line 136 of file ringbuffer.h.

Referenced by cRingBufferFrame(), Drop(), Get(), and Put().

◆ mutex

cMutex cRingBufferFrame::mutex
private

Definition at line 135 of file ringbuffer.h.

Referenced by Lock(), and Unlock().


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