F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
EofPdu.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title EofPdu.hpp
3 // \author Brian Campuzano
4 // \brief hpp file for CFDP EOF PDU
5 // ======================================================================
6 
7 #ifndef Svc_Ccsds_Cfdp_EofPdu_HPP
8 #define Svc_Ccsds_Cfdp_EofPdu_HPP
9 
13 
14 namespace Svc {
15 namespace Ccsds {
16 namespace Cfdp {
17 
19 class EofPdu : public PduBase {
20  private:
22  ConditionCode m_conditionCode;
23 
25  U32 m_checksum;
26 
28  FileSize m_fileSize;
29 
31  TlvList m_tlvList;
32 
33  public:
35  EofPdu() : m_conditionCode(ConditionCode::CONDITION_CODE_NO_ERROR), m_checksum(0), m_fileSize(0) {}
36 
38  void initialize(PduDirection direction,
39  Cfdp::Class::T txmMode,
40  EntityId sourceEid,
41  TransactionSeq transactionSeq,
42  EntityId destEid,
43  ConditionCode conditionCode,
44  U32 checksum,
45  FileSize fileSize);
46 
48  U32 getBufferSize() const override;
49 
52  Fw::Endianness mode = Fw::Endianness::BIG) const override;
53 
56  Fw::Endianness mode = Fw::Endianness::BIG) override;
57 
59  const PduHeader& asHeader() const { return this->m_header; }
60 
62  ConditionCode getConditionCode() const { return this->m_conditionCode; }
63 
65  U32 getChecksum() const { return this->m_checksum; }
66 
68  FileSize getFileSize() const { return this->m_fileSize; }
69 
72 
75  bool appendTlv(const Tlv& tlv) { return this->m_tlvList.appendTlv(tlv); }
76 
78  const TlvList& getTlvList() const { return this->m_tlvList; }
79 
81  U8 getNumTlv() const { return this->m_tlvList.getNumTlv(); }
82 
83  private:
85  Fw::SerializeStatus fromSerialBuffer(Fw::SerialBufferBase& serialBuffer);
86 
88  Fw::SerializeStatus toSerialBuffer(Fw::SerialBufferBase& serialBuffer) const;
89 };
90 
91 } // namespace Cfdp
92 } // namespace Ccsds
93 } // namespace Svc
94 
95 #endif // Svc_Ccsds_Cfdp_EofPdu_HPP
bool appendTlv(const Tlv &tlv)
Definition: Tlv.cpp:188
FileDirective getDirectiveCode() const
Get directive code.
Definition: EofPdu.hpp:71
void initialize(PduDirection direction, Cfdp::Class::T txmMode, EntityId sourceEid, TransactionSeq transactionSeq, EntityId destEid, ConditionCode conditionCode, U32 checksum, FileSize fileSize)
Initialize an EOF PDU.
Definition: EofPdu.cpp:14
U32 EntityId
Entity id size.
U8 getNumTlv() const
Get number of TLVs.
Definition: EofPdu.hpp:81
List of TLVs.
Definition: Tlv.hpp:88
bool appendTlv(const Tlv &tlv)
Definition: EofPdu.hpp:75
ConditionCode getConditionCode() const
Get condition code.
Definition: EofPdu.hpp:62
SerializeStatus
forward declaration for string
U32 getChecksum() const
Get checksum.
Definition: EofPdu.hpp:65
U32 TransactionSeq
transaction sequence number size
U8 getNumTlv() const
Definition: Tlv.cpp:202
U32 getBufferSize() const override
Compute the buffer size needed.
Definition: EofPdu.cpp:33
FileSize getFileSize() const
Get file size.
Definition: EofPdu.hpp:68
Single TLV entry.
Definition: Tlv.hpp:59
const TlvList & getTlvList() const
Get TLV list.
Definition: EofPdu.hpp:78
const PduHeader & asHeader() const
Get this as a Header.
Definition: EofPdu.hpp:59
PduHeader m_header
The PDU header (common to all PDUs)
Definition: PduBase.hpp:27
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) override
Fw::Serializable interface - deserialize from buffer.
Definition: EofPdu.cpp:52
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const override
Fw::Serializable interface - serialize to buffer.
Definition: EofPdu.cpp:48
U32 FileSize
File size and offset type.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:54
EofPdu()
Constructor.
Definition: EofPdu.hpp:35
The type of a PDU header (common to all PDUs)
Definition: PduHeader.hpp:47
RateGroupDivider component implementation.
The type of an EOF PDU.
Definition: EofPdu.hpp:19
Endianness
T
The raw enum type.
Definition: ClassEnumAc.hpp:42
Big endian serialization.