FIFO is StaticFIFO now, new FIFO using vector #127

Merged
gaisser merged 21 commits from KSat/fsfw:mueller_FIFO_static_normal into master 2020-09-01 13:09:00 +02:00
4 changed files with 11 additions and 9 deletions
Showing only changes of commit b522b3c29c - Show all commits

View File

@ -22,7 +22,7 @@ public:
// trying to pass the pointer of the uninitialized vector
// to the FIFOBase constructor directly lead to a super evil bug.
// So we do it like this now.
this->setData(fifoVector.data());
this->setContainer(fifoVector.data());
};
/**
@ -31,7 +31,7 @@ public:
*/
DynamicFIFO(const DynamicFIFO& other): FIFOBase<T>(other),
fifoVector(other.maxCapacity) {
this->setData(fifoVector.data());
this->setContainer(fifoVector.data());
}

View File

@ -1,5 +1,5 @@
#ifndef FRAMEWORK_CONTAINER_FIFO_H_
#define FRAMEWORK_CONTAINER_FIFO_H_
#ifndef FSFW_CONTAINER_FIFO_H_
#define FSFW_CONTAINER_FIFO_H_
#include "FIFOBase.h"
#include <array>
@ -16,18 +16,20 @@
template<typename T, size_t capacity>
class FIFO: public FIFOBase<T> {
public:
FIFO(): FIFOBase<T>(fifoArray.data(), capacity) {};
FIFO(): FIFOBase<T>(nullptr, capacity) {
this->setContainer(fifoArray.data());
};
/**
* @brief Custom copy constructor to set pointer correctly.
* @param other
*/
FIFO(const FIFO& other): FIFOBase<T>(other) {
this->setData(fifoArray.data());
this->setContainer(fifoArray.data());
}
private:
std::array<T, capacity> fifoArray;
};
#endif /* FRAMEWORK_CONTAINERS_STATICFIFO_H_ */
#endif /* FSFW_CONTAINER_FIFO_H_ */

View File

@ -48,7 +48,7 @@ public:
size_t getMaxCapacity() const;
protected:
void setData(T* data);
void setContainer(T* data);
size_t maxCapacity = 0;
T* values;

View File

@ -80,7 +80,7 @@ inline size_t FIFOBase<T>::getMaxCapacity() const {
template<typename T>
inline void FIFOBase<T>::setData(T *data) {
inline void FIFOBase<T>::setContainer(T *data) {
this->values = data;
}