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 
11 
12 namespace Fw {
13 
14  // ----------------------------------------------------------------------
15  // Operators
16  // ----------------------------------------------------------------------
17 
18  DeserialStatus& DeserialStatus ::
20  {
21  this->e = obj.e;
22 #ifdef BUILD_UT
23  this->m_serializeValueIsSet = obj.m_serializeValueIsSet;
24  this->m_serializeValue = obj.m_serializeValue;
25 #endif
26  return *this;
27  }
28 
30  operator=(enum T e1)
31  {
32  FW_ASSERT(isValid(e1), static_cast<FwAssertArgType>(e1));
33  this->e = e1;
34 #ifdef BUILD_UT
35  this->m_serializeValueIsSet = false;
36  this->m_serializeValue = 0;
37 #endif
38  return *this;
39  }
40 
41 #ifdef BUILD_UT
42 
43  std::ostream& operator<<(std::ostream& os, const DeserialStatus& obj) {
44  Fw::String s;
45  obj.toString(s);
46  os << s;
47  return os;
48  }
49 
50 #endif
51 
52  // ----------------------------------------------------------------------
53  // Member functions
54  // ----------------------------------------------------------------------
55 
57  isValid() const
58  {
59  return DeserialStatus::isValid(this->e);
60  }
61 
64  Fw::SerialBufferBase& buffer,
65  Fw::Endianness mode
66  ) const
67  {
68  SerialType es = static_cast<SerialType>(this->e);
69 #ifdef BUILD_UT
70  // Unit testing only: On request, override the enum value
71  // with the numeric value, which is allowed to be invalid
72  if (this->m_serializeValueIsSet) {
73  es = this->m_serializeValue;
74  }
75 #endif
76  const Fw::SerializeStatus status = buffer.serializeFrom(es, mode);
77  return status;
78  }
79 
82  Fw::SerialBufferBase& buffer,
83  Fw::Endianness mode
84  )
85  {
86  SerialType es;
87  Fw::SerializeStatus status = buffer.deserializeTo(es, mode);
88  if ((status == Fw::FW_SERIALIZE_OK) && !DeserialStatus::isValid(es)) {
90  }
91  if (status == Fw::FW_SERIALIZE_OK) {
92  this->e = static_cast<enum T>(es);
93  }
94  return status;
95  }
96 
97 #if FW_SERIALIZABLE_TO_STRING
98 
99  void DeserialStatus ::
100  toString(Fw::StringBase& sb) const
101  {
102  Fw::String s;
103  switch (e) {
104  case OK:
105  s = "OK";
106  break;
107  case BUFFER_EMPTY:
108  s = "BUFFER_EMPTY";
109  break;
110  case FORMAT_ERROR:
111  s = "FORMAT_ERROR";
112  break;
113  case SIZE_MISMATCH:
114  s = "SIZE_MISMATCH";
115  break;
116  case TYPE_MISMATCH:
117  s = "TYPE_MISMATCH";
118  break;
119  default:
120  s = "[invalid]";
121  break;
122  }
123  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
124  }
125 
126 #endif
127 
128 #ifdef BUILD_UT
129 
130  void DeserialStatus ::
131  setSerializeValue(SerialType serializeValue)
132  {
133  this->m_serializeValue = serializeValue;
134  this->m_serializeValueIsSet = true;
135  }
136 
137 #endif
138 
139  // ----------------------------------------------------------------------
140  // Static functions
141  // ----------------------------------------------------------------------
142 
143  bool DeserialStatus ::
144  isValid(SerialType serialTypeValue)
145  {
146  return (serialTypeValue == OK)
147  || ((serialTypeValue >= BUFFER_EMPTY) && (serialTypeValue <= TYPE_MISMATCH));
148  }
149 
150 }
Serialization/Deserialization operation was successful.
Deserialized type ID didn&#39;t match.
Deserialization buffer was empty when trying to read data.
Deserialization status.
U8 SerialType
The serial representation type.
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.
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
enum T e
The raw enum value.
bool isValid() const
Check raw enum value for validity.
Data was left in in the buffer, but not enough to deserialize.
const char * toChar() const
Convert to a C-style char*.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:58
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
#define FW_ASSERT(...)
Definition: Assert.hpp:14
ComCfg::Apid::SerialType SerialType
Definition: TestUtils.cpp:14
DeserialStatus & operator=(const DeserialStatus &obj)
Copy assignment operator (object)