#ifndef FSFW_TMTCPACKET_PUS_TCPACKETSTOREDIF_H_ #define FSFW_TMTCPACKET_PUS_TCPACKETSTOREDIF_H_ #include "TcPacketBase.h" #include "../../../storagemanager/storeAddress.h" #include "../../../returnvalues/HasReturnvaluesIF.h" class TcPacketStoredIF { public: virtual~TcPacketStoredIF() {}; /** * With this call, the stored packet can be set to another packet in a store. This is useful * if the packet is a class member and used for more than one packet. * @param setAddress The new packet id to link to. */ virtual void setStoreAddress(store_address_t setAddress) = 0; virtual store_address_t getStoreAddress() = 0; /** * Getter function for the raw data. * @param dataPtr [out] Pointer to the data pointer to set * @param dataSize [out] Address of size to set. * @return -@c RETURN_OK if data was retrieved successfully. */ virtual ReturnValue_t getData(const uint8_t ** dataPtr, size_t* dataSize) = 0; /** * Get packet base pointer which can be used to get access to PUS packet fields * @return */ virtual TcPacketBase* getPacketBase() = 0; }; #endif /* FSFW_TMTCPACKET_PUS_TCPACKETSTOREDIF_H_ */