2021-12-03 15:37:49 +01:00
|
|
|
#ifndef FSFW_SRC_FSFW_CFDP_PDU_FILEDIRECTIVESERIALIZER_H_
|
|
|
|
#define FSFW_SRC_FSFW_CFDP_PDU_FILEDIRECTIVESERIALIZER_H_
|
|
|
|
|
|
|
|
#include "fsfw/cfdp/pdu/HeaderSerializer.h"
|
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
class FileDirectiveSerializer : public HeaderSerializer {
|
|
|
|
public:
|
|
|
|
FileDirectiveSerializer(PduConfig& pduConf, cfdp::FileDirectives directiveCode,
|
|
|
|
size_t directiveParamFieldLen);
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
/**
|
|
|
|
* This only returns the size of the PDU header + 1 for the directive code octet.
|
|
|
|
* Use FileDirectiveSerializer::getWholePduSize to get the full packet length, assuming
|
|
|
|
* the length fields was set correctly
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
size_t getSerializedSize() const override;
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize,
|
|
|
|
Endianness streamEndianness) const override;
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
void setDirectiveDataFieldLen(size_t len);
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
private:
|
|
|
|
cfdp::FileDirectives directiveCode = cfdp::FileDirectives::INVALID_DIRECTIVE;
|
2021-12-03 15:37:49 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* FSFW_SRC_FSFW_CFDP_PDU_FILEDIRECTIVESERIALIZER_H_ */
|