Fledge
An open source edge computing platform for industrial users
reading_circularbuffer.h
1 #ifndef _READING_CIRCULARBUFFER_H
2 #define _READING_CIRCULARBUFFER_H
3 /*
4  * Fledge Reading Circular Buffer.
5  *
6  * Copyright (c) 2025 Dianomic Systems
7  *
8  * Released under the Apache 2.0 Licence
9  *
10  * Author: Mark Riddoch
11  */
12 #include <reading.h>
13 #include <mutex>
14 #include <vector>
15 #include <memory>
16 
25  public:
26  ReadingCircularBuffer(unsigned int size);
28  void insert(Reading *);
29  void insert(const std::vector<Reading *>& readings);
30  void insert(const std::vector<Reading *> *readings);
31  int extract(std::vector<std::shared_ptr<Reading>>& vec);
32  private:
33  unsigned int m_size;
34  std::mutex m_mutex;
35  std::vector<std::shared_ptr<Reading>>
36  m_readings;
37  unsigned int m_insert;
38  unsigned int m_entries;
39 
40 };
41 #endif
Reading
An asset reading represented as a class.
Definition: reading.h:33
ReadingCircularBuffer::extract
int extract(std::vector< std::shared_ptr< Reading >> &vec)
Return the buffered data into a supplied vector.
Definition: reading_circularbuffer.cpp:82
ReadingCircularBuffer::~ReadingCircularBuffer
~ReadingCircularBuffer()
Destructor for the circular buffer.
Definition: reading_circularbuffer.cpp:28
ReadingCircularBuffer
A circular buffer of readings.
Definition: reading_circularbuffer.h:24
ReadingCircularBuffer::insert
void insert(Reading *)
Insert a single reading into the shared buffer.
Definition: reading_circularbuffer.cpp:40
ReadingCircularBuffer::ReadingCircularBuffer
ReadingCircularBuffer(unsigned int size)
Create a circular buffer of readings.
Definition: reading_circularbuffer.cpp:19