RingBuffer: Remove 'old style' version

This commit is contained in:
Murilo Belluzzo 2016-07-27 22:03:05 -03:00 committed by Andrew Tridgell
parent c112e1c889
commit 3f1896b9b7
1 changed files with 4 additions and 26 deletions

View File

@ -1,31 +1,11 @@
#pragma once #pragma once
#include <atomic> #include <atomic>
#include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h>
/* /*
old style ring buffer handling macros * Circular buffer of bytes.
These macros assume a ring buffer like this:
uint8_t *_buf;
uint16_t _buf_size;
volatile uint16_t _buf_head;
volatile uint16_t _buf_tail;
These should be converted to a class in future
*/
#define BUF_AVAILABLE(buf) ((buf##_head > (_tail=buf##_tail))? (buf##_size - buf##_head) + _tail: _tail - buf##_head)
#define BUF_SPACE(buf) (((_head=buf##_head) > buf##_tail)?(_head - buf##_tail) - 1:((buf##_size - buf##_tail) + _head) - 1)
#define BUF_EMPTY(buf) (buf##_head == buf##_tail)
#define BUF_ADVANCETAIL(buf, n) buf##_tail = (buf##_tail + n) % buf##_size
#define BUF_ADVANCEHEAD(buf, n) buf##_head = (buf##_head + n) % buf##_size
/*
new style buffers
*/ */
class ByteBuffer { class ByteBuffer {
public: public:
@ -108,10 +88,8 @@ private:
uint8_t *buf; uint8_t *buf;
uint32_t size; uint32_t size;
// head is where the next available data is. tail is where new std::atomic<uint32_t> head{0}; // where to read data
// data is written std::atomic<uint32_t> tail{0}; // where to write data
std::atomic<uint32_t> head{0};
std::atomic<uint32_t> tail{0};
}; };
/* /*