#ifndef FRAMEWORK_IPC_MESSAGEQUEUEMESSAGEIF_H_ #define FRAMEWORK_IPC_MESSAGEQUEUEMESSAGEIF_H_ #include #include #include class MessageQueueMessageIF { public: /** * @brief This constants defines the size of the header, * which is added to every message. */ static const size_t HEADER_SIZE = sizeof(MessageQueueId_t); virtual ~MessageQueueMessageIF() {}; /** * @brief With this method, the whole content and the message * size is set to zero. * @details * Implementations should also take care to clear data which is stored * indirectly (e.g. storage data). */ virtual void clear() = 0; /** * @brief Get read-only pointer to the complete data of the message. * @return */ virtual const uint8_t* getBuffer() const = 0; /** * @brief This method is used to get the complete data of the message. */ virtual uint8_t* getBuffer() = 0; /** * @brief This method is used to set the sender's message queue id * information prior to sending the message. * @param setId * The message queue id that identifies the sending message queue. */ virtual void setSender(MessageQueueId_t setId) = 0; /** * @brief This method is used to extract the sender's message queue id * information from a received message. */ virtual MessageQueueId_t getSender() const = 0; /** * @brief This method is used to fetch the data content of the message. * @details * It shall be used by child classes to add data at the right position. */ virtual const uint8_t* getData() const = 0; /** * @brief This method is used to fetch the data content of the message. * @details * It shall be used by child classes to add data at the right position. */ virtual uint8_t* getData() = 0; /** * Get constant message size of current message implementation. * @return */ virtual size_t getMessageSize() const = 0; virtual void setMessageSize(size_t messageSize) = 0; virtual size_t getMinimumMessageSize() const = 0; virtual size_t getMaximumMessageSize() const = 0; }; #endif /* FRAMEWORK_IPC_MESSAGEQUEUEMESSAGEIF_H_ */