fsfw/datapool/PoolEntryIF.h

64 lines
1.7 KiB
C
Raw Normal View History

2020-06-05 13:44:11 +02:00
#ifndef FRAMEWORK_DATAPOOL_POOLENTRYIF_H_
#define FRAMEWORK_DATAPOOL_POOLENTRYIF_H_
#include <framework/globalfunctions/Type.h>
2020-05-17 01:17:11 +02:00
#include <cstdint>
/**
2020-05-17 01:17:11 +02:00
* @brief This interface defines the access possibilities to a
* single data pool entry.
* @details
* The interface provides methods to determine the size and the validity
2020-06-05 13:44:11 +02:00
* information of a value. It also defines a method to receive a pointer to the
* raw data content. It is mainly used by DataPool itself, but also as a
2020-05-17 01:17:11 +02:00
* return pointer.
2020-06-05 13:44:11 +02:00
*
* @author Bastian Baetz
2020-05-17 01:17:11 +02:00
* @ingroup data_pool
2020-06-05 13:44:11 +02:00
*
*/
class PoolEntryIF {
public:
/**
2020-05-17 01:17:11 +02:00
* @brief This is an empty virtual destructor,
2020-06-05 13:44:11 +02:00
* as it is required for C++ interfaces.
*/
2020-06-05 13:44:11 +02:00
virtual ~PoolEntryIF() {
}
/**
2020-05-17 01:17:11 +02:00
* @brief getSize returns the array size of the entry.
* A single variable parameter has size 1.
*/
virtual uint8_t getSize() = 0;
/**
2020-05-17 01:17:11 +02:00
* @brief This operation returns the size in bytes, which is calculated by
* sizeof(type) * array_size.
*/
virtual uint16_t getByteSize() = 0;
/**
2020-05-17 01:17:11 +02:00
* @brief This operation returns a the address pointer casted to void*.
*/
virtual void* getRawData() = 0;
/**
2020-05-17 01:17:11 +02:00
* @brief This method allows to set the valid information of the pool entry.
*/
2020-06-05 13:44:11 +02:00
virtual void setValid(bool isValid) = 0;
/**
2020-05-17 01:17:11 +02:00
* @brief This method allows to set the valid information of the pool entry.
*/
2020-06-05 13:44:11 +02:00
virtual bool getValid() = 0;
/**
2020-05-17 01:17:11 +02:00
* @brief This is a debug method that prints all values and the valid
* information to the screen. It prints all array entries in a row.
2020-06-05 13:44:11 +02:00
* @details
* Also displays whether the pool entry is valid or invalid.
*/
virtual void print() = 0;
/**
2020-06-05 13:44:11 +02:00
* Returns the type of the entry.
*/
virtual Type getType() = 0;
};
#endif /* POOLENTRYIF_H_ */