F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
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 
13 namespace Fw {
14 
15  // ----------------------------------------------------------------------
16  // Operators
17  // ----------------------------------------------------------------------
18 
19  DeserialStatus& DeserialStatus ::
21  {
22  this->e = obj.e;
23  return *this;
24  }
25 
28  {
29  this->e = e1;
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 
49  isValid() const
50  {
51  return ((e >= OK) && (e <= OK))
52  || ((e >= BUFFER_EMPTY) && (e <= TYPE_MISMATCH));
53  }
54 
57  Fw::SerialBufferBase& buffer,
58  Fw::Endianness mode
59  ) const
60  {
61  const Fw::SerializeStatus status = buffer.serializeFrom(
62  static_cast<SerialType>(this->e),
63  mode
64  );
65  return status;
66  }
67 
70  Fw::SerialBufferBase& buffer,
71  Fw::Endianness mode
72  )
73  {
74  SerialType es;
75  Fw::SerializeStatus status = buffer.deserializeTo(es, mode);
76  if (status == Fw::FW_SERIALIZE_OK) {
77  this->e = static_cast<T>(es);
78  if (!this->isValid()) {
80  }
81  }
82  return status;
83  }
84 
85 #if FW_SERIALIZABLE_TO_STRING
86 
87  void DeserialStatus ::
88  toString(Fw::StringBase& sb) const
89  {
90  Fw::String s;
91  switch (e) {
92  case OK:
93  s = "OK";
94  break;
95  case BUFFER_EMPTY:
96  s = "BUFFER_EMPTY";
97  break;
98  case FORMAT_ERROR:
99  s = "FORMAT_ERROR";
100  break;
101  case SIZE_MISMATCH:
102  s = "SIZE_MISMATCH";
103  break;
104  case TYPE_MISMATCH:
105  s = "TYPE_MISMATCH";
106  break;
107  default:
108  s = "[invalid]";
109  break;
110  }
111  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
112  }
113 
114 #elif FW_ENABLE_TEXT_LOGGING
115 
116  void DeserialStatus ::
117  toString(Fw::StringBase& sb) const
118  {
119  sb.format("%" PRIu8 "", e);
120  }
121 
122 #endif
123 
124 }
Serialization/Deserialization operation was successful.
Deserialized type ID didn&#39;t match.
Deserialization buffer was empty when trying to read data.
Deserialization status.
const char * toChar() const
Convert to a C-style char*.
Definition: String.hpp:50
Deserialization data had incorrect values (unexpected data types)
Deserialization data had incorrect values (unexpected data types)
virtual SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG)=0
Serialize an 8-bit unsigned integer value.
SerializeStatus
forward declaration for string
virtual SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)=0
Deserialize an 8-bit unsigned integer value.
T e
The raw enum value.
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
bool isValid() const
Check raw enum value for validity.
U8 SerialType
The serial representation type.
Data was left in in the buffer, but not enough to deserialize.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:39
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
T
The raw enum type.
Implementation of malloc based allocator.
Endianness
DeserialStatus & operator=(const DeserialStatus &obj)
Copy assignment operator (object)