NetBurner 3.5.6
PDF Version
datalog.h
1/*NB_REVISION*/
2
3/*NB_COPYRIGHT*/
4
5#ifndef __DATALOG_H
6#define __DATALOG_H
7
8#include <stdint.h>
9
10struct dataStruct
11{
12 int sensorID = 0;
13 uint32_t timeStamp = 0;
14 float value = 0.0;
15};
16
17typedef void (*RingLogSerializer)(dataStruct *item, void *args);
18
19class RingLog
20{
21 private:
22 dataStruct *pHead = nullptr;
23 dataStruct *pTail = nullptr;
24 int32_t count = 0;
25
26 const dataStruct *pStart = nullptr;
27 const dataStruct *pEnd = nullptr;
28 const int32_t maxSize = 0;
29
30 void IncrementTail();
31 void IncrementHead();
32 void IncrementPtr(dataStruct *&ptr);
33
34 public:
35 RingLog(dataStruct *buffer, uint32_t bufferSize);
36 ~RingLog();
37
38 void Add(dataStruct *item);
39 void Remove(dataStruct *item);
40 void Clear();
41 int32_t GetCount();
42 void Dump();
43 void Serialize(RingLogSerializer serializer, void *args);
44};
45
46#endif /* #ifndef __DATALOG_H */