EEPROMextent
Arduino EEPROM library
CircularBuffer.hpp
1 //-------------------------------------------------------------------
2 #ifndef __EEPROM_CircularBuffer_H__
3 #define __EEPROM_CircularBuffer_H__
4 //-------------------------------------------------------------------
5 
6 #include "EEPROMextent.h"
7 
31 {
32 private:
33  int StartListPos;
34  byte ItemSize;
35  byte ReplicaNumber;
36 
37 public:
39  CircularBuffer() { this->ItemSize = 0; this->ReplicaNumber = 0; this->StartListPos = 0; }
40 
47  int begin(int inStartListPos, byte inElementSize, byte inReplicaNumber)
48  {
49  this->StartListPos = inStartListPos; this->ItemSize = inItemSize; this->ReplicaNumber = inReplicaNumber;
50  return (this->ItemSize + 1) * this->ReplicaNumber;
51  }
52 
57  void *read(void* outpObject);
63  void write(void* inpObject, bool inUpdate = false);
67  inline void update(void *inpObject) { write(inpObject, true); }
68 
72  int getStartRead();
76  int startWrite();
77 
79  void clear() const;
80 
81 #ifdef EEPROMEXTENT_DEBUG_MODE
82 
83  void printStatus();
84 #endif
85 
86 private:
87  byte FindEnd();
88 };
89 
90 //-------------------------------------------------------------------
91 #endif
92 //-------------------------------------------------------------------
int startWrite()
Definition: CircularBuffer.cpp:89
int getStartRead()
Definition: CircularBuffer.cpp:83
void update(void *inpObject)
Definition: CircularBuffer.hpp:67
void write(void *inpObject, bool inUpdate = false)
Definition: CircularBuffer.cpp:57
void * read(void *outpObject)
Definition: CircularBuffer.cpp:49
int begin(int inStartListPos, byte inElementSize, byte inReplicaNumber)
Definition: CircularBuffer.hpp:47
void clear() const
Definition: CircularBuffer.cpp:78
CircularBuffer()
Definition: CircularBuffer.hpp:39
Definition: CircularBuffer.hpp:30