F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DeserialStatusEnumAc.cpp
Go to the documentation of this file.
1// ======================================================================
2// \title DeserialStatusEnumAc.cpp
3// \author Generated by fpp-to-cpp
4// \brief cpp file for DeserialStatus enum
5// ======================================================================
6
7#include <cstring>
8#include <limits>
9
10#include "Fw/Types/Assert.hpp"
12
13namespace Fw {
14
15 // ----------------------------------------------------------------------
16 // Operators
17 // ----------------------------------------------------------------------
18
19 DeserialStatus& DeserialStatus ::
20 operator=(const DeserialStatus& obj)
21 {
22 this->e = obj.e;
23 return *this;
24 }
25
26 DeserialStatus& DeserialStatus ::
27 operator=(T e)
28 {
29 this->e = e;
30 return *this;
31 }
32
33#ifdef BUILD_UT
34
35 std::ostream& operator<<(std::ostream& os, const DeserialStatus& obj) {
36 Fw::String s;
37 obj.toString(s);
38 os << s;
39 return os;
40 }
41
42#endif
43
44 // ----------------------------------------------------------------------
45 // Member functions
46 // ----------------------------------------------------------------------
47
48 bool DeserialStatus ::
49 isValid() const
50 {
51 return ((e >= OK) && (e <= OK))
52 || ((e >= BUFFER_EMPTY) && (e <= TYPE_MISMATCH));
53 }
54
55 Fw::SerializeStatus DeserialStatus ::
56 serialize(Fw::SerializeBufferBase& buffer) const
57 {
58 const Fw::SerializeStatus status = buffer.serialize(
59 static_cast<SerialType>(this->e)
60 );
61 return status;
62 }
63
64 Fw::SerializeStatus DeserialStatus ::
65 deserialize(Fw::SerializeBufferBase& buffer)
66 {
67 SerialType es;
68 Fw::SerializeStatus status = buffer.deserialize(es);
69 if (status == Fw::FW_SERIALIZE_OK) {
70 this->e = static_cast<T>(es);
71 if (!this->isValid()) {
73 }
74 }
75 return status;
76 }
77
78#if FW_SERIALIZABLE_TO_STRING || BUILD_UT
79
80 void DeserialStatus ::
81 toString(Fw::StringBase& sb) const
82 {
83 Fw::String s;
84 switch (e) {
85 case OK:
86 s = "OK";
87 break;
88 case BUFFER_EMPTY:
89 s = "BUFFER_EMPTY";
90 break;
91 case FORMAT_ERROR:
92 s = "FORMAT_ERROR";
93 break;
94 case SIZE_MISMATCH:
95 s = "SIZE_MISMATCH";
96 break;
97 case TYPE_MISMATCH:
98 s = "TYPE_MISMATCH";
99 break;
100 default:
101 s = "[invalid]";
102 break;
103 }
104 sb.format("%s (%" PRIi32 ")", s.toChar(), e);
105 }
106
107#elif FW_ENABLE_TEXT_LOGGING
108
109 void DeserialStatus ::
110 toString(Fw::StringBase& sb) const
111 {
112 sb.format("%" PRIi32 "", e);
113 }
114
115#endif
116
117}
Deserialization status.
T e
The raw enum value.
I32 SerialType
The serial representation type.
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
void format(const CHAR *formatString,...)
write formatted string to buffer
const char * toChar() const
gets char buffer
Definition String.cpp:48
SerializeStatus
forward declaration for string
@ FW_DESERIALIZE_FORMAT_ERROR
Deserialization data had incorrect values (unexpected data types)
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.