18 #ifndef _KRADIO_RING_BUFFER_H 19 #define _KRADIO_RING_BUFFER_H 25 #include <sys/types.h> 26 #include <kdemacros.h> 27 #include <QtCore/QSemaphore> 32 RingBuffer(
size_t size,
bool synchronized =
false);
35 bool resize(
size_t new_size);
37 size_t addData (
const char *src,
size_t size);
38 size_t takeData(
char *dst,
size_t size,
bool lock =
true);
40 char *getFreeSpace(
size_t &size);
41 size_t removeFreeSpace(
size_t size);
43 char *getData(
size_t &size);
44 size_t removeData(
size_t size);
46 size_t getSize()
const;
47 size_t getFillSize()
const;
48 size_t getFreeSize()
const;
52 void lockTransaction()
const;
53 void unlockTransaction()
const;
QSemaphore m_transactionSynchronizer
QSemaphore m_synchronizer