F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
MetadataPdu.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title MetadataPdu.hpp
3 // \author Brian Campuzano
4 // \brief hpp file for CFDP Metadata PDU
5 // ======================================================================
6 
7 #ifndef Svc_Ccsds_Cfdp_MetadataPdu_HPP
8 #define Svc_Ccsds_Cfdp_MetadataPdu_HPP
9 
10 #include <Fw/Types/String.hpp>
13 #include <config/CfdpCfg.hpp>
14 
15 namespace Svc {
16 namespace Ccsds {
17 namespace Cfdp {
18 
20 class MetadataPdu : public PduBase {
21  private:
23  U8 m_closureRequested;
24 
26  ChecksumType m_checksumType;
27 
29  FileSize m_fileSize;
30 
32  Fw::String m_sourceFilename;
33 
35  Fw::String m_destFilename;
36 
37  public:
40  : m_closureRequested(0),
41  m_checksumType(ChecksumType::CHECKSUM_TYPE_MODULAR),
42  m_fileSize(0),
43  m_sourceFilename(""),
44  m_destFilename("") {}
45 
47  void initialize(PduDirection direction,
48  Cfdp::Class::T txmMode,
49  EntityId sourceEid,
50  TransactionSeq transactionSeq,
51  EntityId destEid,
52  FileSize fileSize,
53  const Fw::String& sourceFilename,
54  const Fw::String& destFilename,
55  ChecksumType checksumType,
56  U8 closureRequested);
57 
59  U32 getBufferSize() const override;
60 
63  Fw::Endianness mode = Fw::Endianness::BIG) const override;
64 
67  Fw::Endianness mode = Fw::Endianness::BIG) override;
68 
70  const PduHeader& asHeader() const { return this->m_header; }
71 
73  FileSize getFileSize() const { return this->m_fileSize; }
74 
76  const Fw::String& getSourceFilename() const { return this->m_sourceFilename; }
77 
79  const Fw::String& getDestFilename() const { return this->m_destFilename; }
80 
82  ChecksumType getChecksumType() const { return this->m_checksumType; }
83 
85  U8 getClosureRequested() const { return this->m_closureRequested; }
86 
89 
90  private:
92  Fw::SerializeStatus fromSerialBuffer(Fw::SerialBufferBase& serialBuffer);
93 
95  Fw::SerializeStatus toSerialBuffer(Fw::SerialBufferBase& serialBuffer) const;
96 };
97 
98 } // namespace Cfdp
99 } // namespace Ccsds
100 } // namespace Svc
101 
102 #endif // Svc_Ccsds_Cfdp_MetadataPdu_HPP
U32 EntityId
Entity id size.
FileSize getFileSize() const
Get the file size.
Definition: MetadataPdu.hpp:73
const Fw::String & getDestFilename() const
Get the destination filename.
Definition: MetadataPdu.hpp:79
const Fw::String & getSourceFilename() const
Get the source filename.
Definition: MetadataPdu.hpp:76
SerializeStatus
forward declaration for string
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const override
Fw::Serializable interface - serialize to buffer.
Definition: MetadataPdu.cpp:61
U32 TransactionSeq
transaction sequence number size
const PduHeader & asHeader() const
Get this as a Header.
Definition: MetadataPdu.hpp:70
U32 getBufferSize() const override
Compute the buffer size needed.
Definition: MetadataPdu.cpp:44
The type of a Metadata PDU.
Definition: MetadataPdu.hpp:20
FileDirective getDirectiveCode() const
Get directive code.
Definition: MetadataPdu.hpp:88
ChecksumType getChecksumType() const
Get checksum type.
Definition: MetadataPdu.hpp:82
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: MetadataPdu.cpp:65
U32 FileSize
File size and offset type.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:54
The type of a PDU header (common to all PDUs)
Definition: PduHeader.hpp:47
RateGroupDivider component implementation.
void initialize(PduDirection direction, Cfdp::Class::T txmMode, EntityId sourceEid, TransactionSeq transactionSeq, EntityId destEid, FileSize fileSize, const Fw::String &sourceFilename, const Fw::String &destFilename, ChecksumType checksumType, U8 closureRequested)
Initialize a Metadata PDU.
Definition: MetadataPdu.cpp:16
Endianness
T
The raw enum type.
Definition: ClassEnumAc.hpp:42
U8 getClosureRequested() const
Get closure requested flag.
Definition: MetadataPdu.hpp:85
Big endian serialization.