kodi
xbmc
utils
RingBuffer.h
1
/*
2
* Copyright (C) 2010-2018 Team Kodi
3
* This file is part of Kodi - https://kodi.tv
4
*
5
* SPDX-License-Identifier: GPL-2.0-or-later
6
* See LICENSES/README.md for more information.
7
*/
8
9
#pragma once
10
11
#include "threads/CriticalSection.h"
12
13
class
CRingBuffer
14
{
15
CCriticalSection m_critSection;
16
char
*m_buffer;
17
unsigned
int
m_size;
18
unsigned
int
m_readPtr;
19
unsigned
int
m_writePtr;
20
unsigned
int
m_fillCount;
21
public
:
22
CRingBuffer
();
23
~
CRingBuffer
();
24
bool
Create(
unsigned
int
size);
25
void
Destroy();
26
void
Clear();
27
bool
ReadData(
char
*buf,
unsigned
int
size);
28
bool
ReadData(
CRingBuffer
&rBuf,
unsigned
int
size);
29
bool
WriteData(
const
char
*buf,
unsigned
int
size);
30
bool
WriteData(
CRingBuffer
&rBuf,
unsigned
int
size);
31
bool
SkipBytes(
int
skipSize);
32
bool
Append(
CRingBuffer
&rBuf);
33
bool
Copy(
CRingBuffer
&rBuf);
34
char
*getBuffer();
35
unsigned
int
getSize();
36
unsigned
int
getReadPtr()
const
;
37
unsigned
int
getWritePtr();
38
unsigned
int
getMaxReadSize();
39
unsigned
int
getMaxWriteSize();
40
};
CRingBuffer
Definition:
RingBuffer.h:13
Generated by
1.8.13