F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
Loading...
Searching...
No Matches
PathName.cpp
Go to the documentation of this file.
1// ======================================================================
2// \title PathName.cpp
3// \author bocchino
4// \brief cpp file for FilePacket::PathName
5//
6// \copyright
7// Copyright 2009-2016, by the California Institute of Technology.
8// ALL RIGHTS RESERVED. United States Government Sponsorship
9// acknowledged.
10//
11// ======================================================================
12
13#include <cstring>
14
16#include <Fw/Types/Assert.hpp>
18
19namespace Fw {
20
21 void FilePacket::PathName ::
22 initialize(const char *const value)
23 {
24 const U8 length = static_cast<U8>(StringUtils::string_length(value, MAX_LENGTH));
25 this->length = length;
26 this->value = value;
27 }
28
29 U32 FilePacket::PathName ::
30 bufferSize() const
31 {
32 return sizeof(this->length) + this->length;
33 }
34
35 SerializeStatus FilePacket::PathName ::
36 fromSerialBuffer(SerialBuffer& serialBuffer)
37 {
38
39 {
40 const SerializeStatus status =
41 serialBuffer.deserialize(this->length);
42 if (status != FW_SERIALIZE_OK)
43 return status;
44 }
45
46 {
47 const U8* addrLeft = serialBuffer.getBuffAddrLeft();
48 U8 bytes[MAX_LENGTH];
49 const SerializeStatus status =
50 serialBuffer.popBytes(bytes, this->length);
51 if (status != FW_SERIALIZE_OK)
52 return status;
53 this->value = reinterpret_cast<const char*>(addrLeft);
54 }
55
56 return FW_SERIALIZE_OK;
57
58 }
59
60 SerializeStatus FilePacket::PathName ::
61 toSerialBuffer(SerialBuffer& serialBuffer) const
62 {
63
64 {
65 const SerializeStatus status =
66 serialBuffer.serialize(this->length);
67 if (status != FW_SERIALIZE_OK)
68 return status;
69 }
70
71 {
72 const SerializeStatus status = serialBuffer.pushBytes(
73 reinterpret_cast<const U8 *>(this->value),
74 this->length
75 );
76 if (status != FW_SERIALIZE_OK)
77 return status;
78 }
79
80 return FW_SERIALIZE_OK;
81
82 }
83
84}
uint8_t U8
8-bit unsigned integer
Definition BasicTypes.h:26
A variable-length serializable buffer.
SerializeStatus popBytes(U8 *const addr, NATIVE_UINT_TYPE n)
Pop n bytes off the buffer.
const U8 * getBuffAddrLeft() const
gets address of remaining non-deserialized data.
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
U32 string_length(const CHAR *source, U32 max_len)
get the length of the source string or max_len if the string is longer than max_len.
Definition Buffer.cpp:21
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.