/** * \file PoolEntryIF.h * * \brief This file holds the class that defines the Interface for Pool Entry elements. * * \date 10/18/2012 * * \author Bastian Baetz */ #ifndef POOLENTRYIF_H_ #define POOLENTRYIF_H_ #include #include /** * \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 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 return pointer. * * \ingroup data_pool * */ class PoolEntryIF { public: /** * \brief This is an empty virtual destructor, as it is proposed for C++ interfaces. */ virtual ~PoolEntryIF() { } /** * \brief getSize returns the array size of the entry. A single variable parameter has size 1. */ virtual uint8_t getSize() = 0; /** * \brief This operation returns the size in bytes, which is calculated by * sizeof(type) * array_size. */ virtual uint16_t getByteSize() = 0; /** * \brief This operation returns a the address pointer casted to void*. */ virtual void* getRawData() = 0; /** * \brief This method allows to set the valid information of the pool entry. */ virtual void setValid(uint8_t isValid) = 0; /** * \brief This method allows to set the valid information of the pool entry. */ virtual uint8_t getValid() = 0; /** * \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. */ virtual void print() = 0; /** * Returns the type of the entry. */ virtual Type getType() = 0; }; #endif /* POOLENTRYIF_H_ */