2021-12-03 15:37:49 +01:00
|
|
|
#ifndef FSFW_SRC_FSFW_CFDP_PDU_PDUHEADERIF_H_
|
|
|
|
#define FSFW_SRC_FSFW_CFDP_PDU_PDUHEADERIF_H_
|
|
|
|
|
|
|
|
#include <cstddef>
|
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
#include "PduConfig.h"
|
2022-08-09 14:39:03 +02:00
|
|
|
#include "fsfw/cfdp/definitions.h"
|
2022-02-02 10:29:30 +01:00
|
|
|
|
2021-12-03 15:37:49 +01:00
|
|
|
/**
|
|
|
|
* @brief Generic interface to access all fields of a PDU header
|
|
|
|
* @details
|
|
|
|
* See CCSDS 727.0-B-5 pp.75 for more information about these fields
|
|
|
|
*/
|
|
|
|
class PduHeaderIF {
|
2022-02-02 10:29:30 +01:00
|
|
|
public:
|
2022-08-03 15:22:39 +02:00
|
|
|
virtual ~PduHeaderIF() = default;
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-08-03 15:22:39 +02:00
|
|
|
[[nodiscard]] virtual size_t getWholePduSize() const = 0;
|
|
|
|
[[nodiscard]] virtual size_t getPduDataFieldLen() const = 0;
|
2022-09-08 11:26:17 +02:00
|
|
|
[[nodiscard]] virtual cfdp::PduTypes getPduType() const = 0;
|
2022-08-03 15:22:39 +02:00
|
|
|
[[nodiscard]] virtual cfdp::Direction getDirection() const = 0;
|
|
|
|
[[nodiscard]] virtual cfdp::TransmissionModes getTransmissionMode() const = 0;
|
|
|
|
[[nodiscard]] virtual bool getCrcFlag() const = 0;
|
|
|
|
[[nodiscard]] virtual bool getLargeFileFlag() const = 0;
|
|
|
|
[[nodiscard]] virtual cfdp::SegmentationControl getSegmentationControl() const = 0;
|
|
|
|
[[nodiscard]] virtual cfdp::WidthInBytes getLenEntityIds() const = 0;
|
|
|
|
[[nodiscard]] virtual cfdp::WidthInBytes getLenSeqNum() const = 0;
|
|
|
|
[[nodiscard]] virtual cfdp::SegmentMetadataFlag getSegmentMetadataFlag() const = 0;
|
|
|
|
[[nodiscard]] virtual bool hasSegmentMetadataFlag() const = 0;
|
2022-02-02 10:29:30 +01:00
|
|
|
virtual void getSourceId(cfdp::EntityId& sourceId) const = 0;
|
|
|
|
virtual void getDestId(cfdp::EntityId& destId) const = 0;
|
|
|
|
virtual void getTransactionSeqNum(cfdp::TransactionSeqNum& seqNum) const = 0;
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
private:
|
|
|
|
};
|
2021-12-03 15:37:49 +01:00
|
|
|
|
|
|
|
#endif /* FSFW_SRC_FSFW_CFDP_PDU_PDUHEADERIF_H_ */
|