fifo updates

This commit is contained in:
Robin Müller 2020-09-01 12:53:53 +02:00
parent e949637271
commit b522b3c29c
4 changed files with 11 additions and 9 deletions

View File

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

View File

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

View File

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