Dynalib Utils
DynaRingBuffer.h
Go to the documentation of this file.
1 /*
2  * RingBuffer.h
3  *
4  * Created on: 31/08/2017
5  * Author: ken
6  */
7 
8 #ifndef DYNARINGBUFFER_H_
9 #define DYNARINGBUFFER_H_
10 
11 #include "TypeDefs.h"
12 #include "String.h"
13 
15  uint8_t* _buffer = nullptr;
16  ulong _bufSize;
17  ulong _count;
18  ulong _bufHead;
19  ulong _bufTail;
20 
21 public:
22  static bool THROW_EXCEPTIONS;
23 
24  explicit DynaRingBuffer(ulong size);
25  virtual ~DynaRingBuffer();
26 
27  void reset();
28  bool isEmpty();
29  bool isFull();
30  bool hasNextByte();
31  bool hasByteCount(ulong count);
32  ulong getCount();
33  bool hasFreeCount(ulong count);
34  ulong getFreeCount();
35  ulong getBufferSize();
36  uint8_t getNextByte();
37  uint8_t popLastByte();
39  ulong getNextULong();
40  ulonglong getNextULongLong();
41  float getNextFloat();
42  double getNextDouble();
44 
45  bool getNextString(char* buf, ulong count, bool addTerm);
46  void getNextString(char* buf, ulong maxCount);
47  bool getNextString(String& str);
48  bool getNextToken(String& str, char delim);
49  bool putByte(uint8_t value);
50  bool putUShort(ushort value);
51  bool putULong(ulong value);
52  bool putULongLong(ulonglong value);
53  bool putFloat(float value);
54  bool putDouble(double value);
55  bool putString(const char* value, bool addTerm = true);
56 };
57 
58 #endif /* DYNARINGBUFFER_H_ */
uint16_t ushort
Definition: TypeDefs.h:23
Definition: DynaRingBuffer.h:14
bool hasByteCount(ulong count)
Definition: DynaRingBuffer.cpp:45
void reset()
Definition: DynaRingBuffer.cpp:28
bool putByte(uint8_t value)
Definition: DynaRingBuffer.cpp:184
uint8_t getNextByte()
Definition: DynaRingBuffer.cpp:65
String getBufferAsString()
Definition: DynaRingBuffer.cpp:175
ushort getNextUShort()
Definition: DynaRingBuffer.cpp:91
GeneratorWrapper< T > value(T &&value)
Definition: catch.hpp:4005
virtual ~DynaRingBuffer()
Definition: DynaRingBuffer.cpp:24
bool isFull()
Definition: DynaRingBuffer.cpp:37
Definition: String.h:60
ulong getFreeCount()
Definition: DynaRingBuffer.cpp:57
bool getNextToken(String &str, char delim)
Definition: DynaRingBuffer.cpp:163
double getNextDouble()
Definition: DynaRingBuffer.cpp:125
bool putULongLong(ulonglong value)
Definition: DynaRingBuffer.cpp:213
bool putUShort(ushort value)
Definition: DynaRingBuffer.cpp:197
ulong getNextULong()
Definition: DynaRingBuffer.cpp:98
return os str()
bool isEmpty()
Definition: DynaRingBuffer.cpp:33
bool putULong(ulong value)
Definition: DynaRingBuffer.cpp:204
uint8_t popLastByte()
Definition: DynaRingBuffer.cpp:78
float getNextFloat()
Definition: DynaRingBuffer.cpp:120
static bool THROW_EXCEPTIONS
Definition: DynaRingBuffer.h:22
bool getNextString(char *buf, ulong count, bool addTerm)
Definition: DynaRingBuffer.cpp:130
bool putString(const char *value, bool addTerm=true)
Definition: DynaRingBuffer.cpp:234
bool hasNextByte()
Definition: DynaRingBuffer.cpp:41
bool putDouble(double value)
Definition: DynaRingBuffer.cpp:230
bool putFloat(float value)
Definition: DynaRingBuffer.cpp:226
ulonglong getNextULongLong()
Definition: DynaRingBuffer.cpp:107
bool hasFreeCount(ulong count)
Definition: DynaRingBuffer.cpp:53
ulong getCount()
Definition: DynaRingBuffer.cpp:49
DynaRingBuffer(ulong size)
Definition: DynaRingBuffer.cpp:18
ulong getBufferSize()
Definition: DynaRingBuffer.cpp:61