2021-12-03 15:37:49 +01:00
|
|
|
#ifndef FSFW_SRC_FSFW_CFDP_ENTITYIDTLV_H_
|
|
|
|
#define FSFW_SRC_FSFW_CFDP_ENTITYIDTLV_H_
|
|
|
|
|
|
|
|
#include "TlvIF.h"
|
2022-02-02 10:29:30 +01:00
|
|
|
#include "fsfw/cfdp/pdu/PduConfig.h"
|
|
|
|
#include "fsfw/cfdp/tlv/Tlv.h"
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
class EntityIdTlv : public TlvIF {
|
|
|
|
public:
|
|
|
|
EntityIdTlv(cfdp::EntityId& entityId);
|
|
|
|
virtual ~EntityIdTlv();
|
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
|
|
|
size_t getSerializedSize() const override;
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
/**
|
|
|
|
* Deserialize an entity ID from a raw TLV object
|
|
|
|
* @param tlv
|
|
|
|
* @param endianness
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
ReturnValue_t deSerialize(cfdp::Tlv& tlv, Endianness endianness);
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2023-06-02 11:33:20 +02:00
|
|
|
using SerializeIF::deSerialize; // we overloaded this function, so this is needed to unconfuse
|
|
|
|
// the compiler
|
2022-02-02 10:29:30 +01:00
|
|
|
ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size,
|
|
|
|
Endianness streamEndianness) override;
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
uint8_t getLengthField() const override;
|
2022-09-15 18:41:15 +02:00
|
|
|
cfdp::TlvType getType() const override;
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
cfdp::EntityId& getEntityId();
|
2021-12-03 15:37:49 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
private:
|
|
|
|
cfdp::EntityId& entityId;
|
|
|
|
};
|
2021-12-03 15:37:49 +01:00
|
|
|
|
|
|
|
#endif /* FSFW_SRC_FSFW_CFDP_ENTITYIDTLV_H_ */
|