FIFO updates

This commit is contained in:
Robin Müller 2020-09-01 12:54:33 +02:00
parent a634875b4b
commit bec562ece0
4 changed files with 15 additions and 13 deletions

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

@ -1,5 +1,5 @@
#ifndef FRAMEWORK_CONTAINER_FIFOBASE_H_
#define FRAMEWORK_CONTAINER_FIFOBASE_H_
#ifndef FSFW_CONTAINER_FIFOBASE_H_
#define FSFW_CONTAINER_FIFOBASE_H_
#include "../returnvalues/HasReturnvaluesIF.h"
#include <cstddef>
@ -48,7 +48,7 @@ public:
size_t getMaxCapacity() const;
protected:
void setData(T* data);
void setContainer(T* data);
size_t maxCapacity = 0;
T* values;
@ -60,6 +60,6 @@ protected:
size_t next(size_t current);
};
#include "../container/FIFOBase.tpp"
#include "FIFOBase.tpp"
#endif /* FRAMEWORK_CONTAINER_FIFOBASE_H_ */
#endif /* FSFW_CONTAINER_FIFOBASE_H_ */

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;
}