|
vdr 2.7.9
|
#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 cRingBufferFrame::cRingBufferFrame(), and cRingBufferLinear::cRingBufferLinear().
|
virtual |
Definition at line 39 of file ringbuffer.c.
References dsyslog, ioThrottle, maxFill, size, and statistics.
|
protectedpure virtual |
Implemented in cRingBufferFrame, and cRingBufferLinear.
Referenced by EnableGet(), and Free().
|
protectedpure virtual |
Implemented in cRingBufferFrame, and cRingBufferLinear.
|
protected |
Definition at line 83 of file ringbuffer.c.
References Available(), getTimeout, readyForGet, and Size().
Referenced by cRingBufferFrame::Clear(), cRingBufferFrame::Put(), cRingBufferLinear::Put(), cRingBufferLinear::Read(), and cRingBufferLinear::Read().
|
protected |
Definition at line 77 of file ringbuffer.c.
References Free(), putTimeout, readyForPut, and Size().
Referenced by cRingBufferFrame::Clear(), cRingBufferLinear::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 esyslog, lastOverflowReport, overflowBytes, overflowCount, and OVERFLOWREPORTDELTA.
| void cRingBuffer::SetIoThrottle | ( | void | ) |
Definition at line 95 of file ringbuffer.c.
References ioThrottle.
| void cRingBuffer::SetTimeouts | ( | int | PutTimeout, |
| int | GetTimeout ) |
Definition at line 89 of file ringbuffer.c.
References getTimeout, and putTimeout.
|
inlineprotected |
Definition at line 39 of file ringbuffer.h.
References size.
Referenced by cRingBufferLinear::Available(), cRingBuffer(), cRingBufferFrame::cRingBufferFrame(), cRingBufferLinear::cRingBufferLinear(), cRingBufferLinear::Del(), EnableGet(), EnablePut(), Free(), cRingBufferLinear::Free(), cRingBufferLinear::Get(), cRingBufferLinear::Put(), cRingBufferLinear::Read(), cRingBufferLinear::Read(), and UpdatePercentage().
|
protected |
Definition at line 46 of file ringbuffer.c.
References dsyslog, getThreadTid, ioThrottle, IOTHROTTLEHIGH, IOTHROTTLELOW, lastPercent, maxFill, PERCENTAGEDELTA, PERCENTAGETHRESHOLD, and Size().
Referenced by cRingBufferLinear::Put(), cRingBufferLinear::Read(), and cRingBufferLinear::Read().
|
protected |
Definition at line 71 of file ringbuffer.c.
References getTimeout, and readyForGet.
Referenced by cRingBufferLinear::Get().
|
protected |
Definition at line 65 of file ringbuffer.c.
References putTimeout, and readyForPut.
Referenced by cRingBufferLinear::Put(), cRingBufferLinear::Read(), 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(), cRingBufferLinear::Read(), and ~cRingBuffer().