vdr
2.2.0
|
#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 |
cIoThrottle * | ioThrottle |
Definition at line 16 of file ringbuffer.h.
cRingBuffer::cRingBuffer | ( | int | Size, |
bool | Statistics = false |
||
) |
Definition at line 26 of file ringbuffer.c.
References getThreadTid, getTimeout, ioThrottle, lastOverflowReport, lastPercent, maxFill, overflowBytes, overflowCount, putTimeout, size, Size(), and statistics.
Referenced by Size().
|
virtual |
Definition at line 39 of file ringbuffer.c.
References dsyslog, ioThrottle, maxFill, size, and statistics.
Referenced by Size().
|
protectedpure virtual |
Implemented in cRingBufferFrame, and cRingBufferLinear.
Referenced by EnableGet(), Free(), cRingBufferLinear::Free(), and cRingBufferFrame::Unlock().
|
protectedpure virtual |
Implemented in cRingBufferFrame, and cRingBufferLinear.
Referenced by cRingBufferLinear::Free(), and cRingBufferFrame::Unlock().
|
protected |
Definition at line 83 of file ringbuffer.c.
References Available(), getTimeout, readyForGet, cCondWait::Signal(), and Size().
Referenced by cRingBufferFrame::Clear(), cRingBufferLinear::Put(), cRingBufferFrame::Put(), and cRingBufferLinear::Read().
|
protected |
Definition at line 77 of file ringbuffer.c.
References Free(), putTimeout, readyForPut, cCondWait::Signal(), and Size().
Referenced by cRingBufferLinear::Clear(), cRingBufferFrame::Clear(), cRingBufferLinear::Del(), and cRingBufferFrame::Drop().
|
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 | ) |
Definition at line 101 of file ringbuffer.c.
References cRingBufferLinear::description, esyslog, lastOverflowReport, max(), overflowBytes, overflowCount, OVERFLOWREPORTDELTA, and Size().
Referenced by cRecorder::Receive(), and Size().
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().
|
inlineprotected |
Definition at line 39 of file ringbuffer.h.
References cRingBuffer(), ReportOverflow(), SetIoThrottle(), SetTimeouts(), size, and ~cRingBuffer().
Referenced by cRingBufferLinear::Available(), cRingBuffer(), cRingBufferLinear::Del(), EnableGet(), EnablePut(), Free(), cRingBufferLinear::Free(), cRingBufferLinear::Get(), cRingBufferLinear::Put(), cRingBufferLinear::Read(), ReportOverflow(), cRingBufferFrame::Unlock(), and UpdatePercentage().
|
protected |
Definition at line 46 of file ringbuffer.c.
References cIoThrottle::Activate(), dsyslog, getThreadTid, ioThrottle, IOTHROTTLEHIGH, IOTHROTTLELOW, lastPercent, maxFill, PERCENTAGEDELTA, PERCENTAGETHRESHOLD, cIoThrottle::Release(), and Size().
Referenced by cRingBufferLinear::Put(), and cRingBufferLinear::Read().
|
protected |
Definition at line 71 of file ringbuffer.c.
References getTimeout, readyForGet, and cCondWait::Wait().
Referenced by cRingBufferLinear::Get().
|
protected |
Definition at line 65 of file ringbuffer.c.
References putTimeout, readyForPut, and cCondWait::Wait().
Referenced by cRingBufferLinear::Put(), and cRingBufferLinear::Read().
|
protected |
Definition at line 27 of file ringbuffer.h.
Referenced by cRingBuffer(), cRingBufferLinear::Get(), and UpdatePercentage().
|
private |
Definition at line 20 of file ringbuffer.h.
Referenced by cRingBuffer(), EnableGet(), SetTimeouts(), and WaitForGet().
|
private |
Definition at line 25 of file ringbuffer.h.
Referenced by cRingBuffer(), SetIoThrottle(), UpdatePercentage(), and ~cRingBuffer().
|
private |
Definition at line 22 of file ringbuffer.h.
Referenced by cRingBuffer(), and ReportOverflow().
|
protected |
Definition at line 29 of file ringbuffer.h.
Referenced by cRingBuffer(), and UpdatePercentage().
|
protected |
Definition at line 28 of file ringbuffer.h.
Referenced by cRingBufferLinear::Clear(), cRingBuffer(), UpdatePercentage(), and ~cRingBuffer().
|
private |
Definition at line 24 of file ringbuffer.h.
Referenced by cRingBuffer(), and ReportOverflow().
|
private |
Definition at line 23 of file ringbuffer.h.
Referenced by cRingBuffer(), and ReportOverflow().
|
private |
Definition at line 19 of file ringbuffer.h.
Referenced by cRingBuffer(), EnablePut(), SetTimeouts(), and WaitForPut().
|
private |
Definition at line 18 of file ringbuffer.h.
Referenced by EnableGet(), and WaitForGet().
|
private |
Definition at line 18 of file ringbuffer.h.
Referenced by EnablePut(), and WaitForPut().
|
private |
Definition at line 21 of file ringbuffer.h.
Referenced by cRingBuffer(), Size(), and ~cRingBuffer().
|
protected |
Definition at line 30 of file ringbuffer.h.
Referenced by cRingBuffer(), cRingBufferLinear::Put(), cRingBufferLinear::Read(), and ~cRingBuffer().