F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
WasmSequencer_StatusEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title WasmSequencer_StatusEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for WasmSequencer_Status enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
11 
12 namespace Svc {
13 
14  // ----------------------------------------------------------------------
15  // Operators
16  // ----------------------------------------------------------------------
17 
18  WasmSequencer_Status& WasmSequencer_Status ::
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 
31  {
32  FW_ASSERT(isValid(e1), static_cast<FwAssertArgType>(e1));
33  this->e = static_cast<enum T>(e1);
34 #ifdef BUILD_UT
35  this->m_serializeValueIsSet = false;
36  this->m_serializeValue = 0;
37 #endif
38  return *this;
39  }
40 
42  operator=(enum T e1)
43  {
44  FW_ASSERT(isValid(e1), static_cast<FwAssertArgType>(e1));
45  this->e = e1;
46 #ifdef BUILD_UT
47  this->m_serializeValueIsSet = false;
48  this->m_serializeValue = 0;
49 #endif
50  return *this;
51  }
52 
53 #ifdef BUILD_UT
54 
55  std::ostream& operator<<(std::ostream& os, const WasmSequencer_Status& obj) {
56  Fw::String s;
57  obj.toString(s);
58  os << s;
59  return os;
60  }
61 
62 #endif
63 
64  // ----------------------------------------------------------------------
65  // Member functions
66  // ----------------------------------------------------------------------
67 
69  isValid() const
70  {
71  return WasmSequencer_Status::isValid(this->e);
72  }
73 
76  Fw::SerialBufferBase& buffer,
77  Fw::Endianness mode
78  ) const
79  {
80  SerialType es = static_cast<SerialType>(this->e);
81 #ifdef BUILD_UT
82  // Unit testing only: On request, override the enum value
83  // with the numeric value, which is allowed to be invalid
84  if (this->m_serializeValueIsSet) {
85  es = this->m_serializeValue;
86  }
87 #endif
88  const Fw::SerializeStatus status = buffer.serializeFrom(es, mode);
89  return status;
90  }
91 
94  Fw::SerialBufferBase& buffer,
95  Fw::Endianness mode
96  )
97  {
98  SerialType es;
99  Fw::SerializeStatus status = buffer.deserializeTo(es, mode);
100  if ((status == Fw::FW_SERIALIZE_OK) && !WasmSequencer_Status::isValid(es)) {
102  }
103  if (status == Fw::FW_SERIALIZE_OK) {
104  this->e = static_cast<enum T>(es);
105  }
106  return status;
107  }
108 
109 #if FW_SERIALIZABLE_TO_STRING
110 
111  void WasmSequencer_Status ::
112  toString(Fw::StringBase& sb) const
113  {
114  Fw::String s;
115  switch (e) {
116  case OK:
117  s = "OK";
118  break;
119  case ERR_NULL_ARG:
120  s = "ERR_NULL_ARG";
121  break;
122  case ERR_BAD_ARG:
123  s = "ERR_BAD_ARG";
124  break;
125  case ERR_BAD_UTF8:
126  s = "ERR_BAD_UTF8";
127  break;
128  case ERR_NAME_TOO_LONG:
129  s = "ERR_NAME_TOO_LONG";
130  break;
131  case ERR_BAD_SIGNATURE:
132  s = "ERR_BAD_SIGNATURE";
133  break;
134  case ERR_CAPACITY:
135  s = "ERR_CAPACITY";
136  break;
137  case ERR_NOT_FOUND:
138  s = "ERR_NOT_FOUND";
139  break;
140  case ERR_WRONG_STATE:
141  s = "ERR_WRONG_STATE";
142  break;
144  s = "ERR_GUEST_MEMORY_ALLOC_FAILED";
145  break;
146  case ERR_ALLOC_FAILED:
147  s = "ERR_ALLOC_FAILED";
148  break;
149  case ERR_OUT_OF_MEMORY:
150  s = "ERR_OUT_OF_MEMORY";
151  break;
152  case ERR_PAGE_TOO_SMALL:
153  s = "ERR_PAGE_TOO_SMALL";
154  break;
156  s = "ERR_MEM_OUT_OF_BOUNDS";
157  break;
159  s = "ERR_PARAM_LEN_MISMATCH";
160  break;
162  s = "ERR_PARAM_TYPE_MISMATCH";
163  break;
164  case ERR_STACK_OVERFLOW:
165  s = "ERR_STACK_OVERFLOW";
166  break;
167  case ERR_EOF:
168  s = "ERR_EOF";
169  break;
171  s = "ERR_MALFORMED_INTEGER";
172  break;
173  case ERR_I33_IS_NEGATIVE:
174  s = "ERR_I33_IS_NEGATIVE";
175  break;
176  case ERR_MALFORMED_MAGIC:
177  s = "ERR_MALFORMED_MAGIC";
178  break;
180  s = "ERR_MALFORMED_VERSION";
181  break;
182  case ERR_MALFORMED_UTF8:
183  s = "ERR_MALFORMED_UTF8";
184  break;
186  s = "ERR_DUPLICATE_MODULE_NAME";
187  break;
189  s = "ERR_DUPLICATE_EXPORT_NAME";
190  break;
192  s = "ERR_MALFORMED_SECTION_ID";
193  break;
195  s = "ERR_MALFORMED_VALUE_TYPE";
196  break;
198  s = "ERR_MALFORMED_FUNCTION";
199  break;
200  case ERR_MALFORMED_LIMIT:
201  s = "ERR_MALFORMED_LIMIT";
202  break;
204  s = "ERR_MALFORMED_ELEM_TYPE";
205  break;
207  s = "ERR_MALFORMED_SECTION_SIZE";
208  break;
210  s = "ERR_EXPECTED_CONST_OR_VAR";
211  break;
213  s = "ERR_MALFORMED_IMPORT_EXPORT_DESC";
214  break;
216  s = "ERR_MALFORMED_MEM_TYPE";
217  break;
219  s = "ERR_INVALID_PAGE_SIZE";
220  break;
222  s = "ERR_INVALID_SECTION_ORDERING";
223  break;
225  s = "ERR_DUPLICATE_SECTION";
226  break;
228  s = "ERR_INVALID_MAX_LIMIT";
229  break;
231  s = "ERR_EXPECTED_TERMINAL";
232  break;
233  case ERR_INVALID_OPCODE:
234  s = "ERR_INVALID_OPCODE";
235  break;
237  s = "ERR_MALFORMED_CODE_SIZE";
238  break;
240  s = "ERR_INVALID_CODE_SECTION_FUNCTION_COUNT";
241  break;
242  case ERR_VEC_TOO_LONG:
243  s = "ERR_VEC_TOO_LONG";
244  break;
245  case ERR_IDX_TOO_LARGE:
246  s = "ERR_IDX_TOO_LARGE";
247  break;
249  s = "ERR_MODULE_IDX_TOO_LARGE";
250  break;
252  s = "ERR_MEMORY_TOO_LARGE";
253  break;
255  s = "ERR_MEMORY_IMPORT_TOO_LARGE";
256  break;
258  s = "ERR_MEM_ALIGN_TOO_LARGE";
259  break;
260  case ERR_TABLE_TOO_LARGE:
261  s = "ERR_TABLE_TOO_LARGE";
262  break;
264  s = "ERR_CONTROL_FLOW_TOO_DEEP";
265  break;
266  case ERR_STACK_UNDERFLOW:
267  s = "ERR_STACK_UNDERFLOW";
268  break;
269  case ERR_STACK_TOO_LARGE:
270  s = "ERR_STACK_TOO_LARGE";
271  break;
273  s = "ERR_LABEL_STACK_JUMP_TOO_DEEP";
274  break;
276  s = "ERR_LABEL_JUMP_TOO_LARGE";
277  break;
278  case ERR_TYPE_MISMATCH:
279  s = "ERR_TYPE_MISMATCH";
280  break;
282  s = "ERR_BLOCK_RESULT_TYPE_MISMATCH";
283  break;
285  s = "ERR_FUNCTION_RESULT_TYPE_MISMATCH";
286  break;
288  s = "ERR_BR_TABLE_RESULT_TYPE_MISMATCH";
289  break;
291  s = "ERR_ILLEGAL_MEMORY_GROW";
292  break;
294  s = "ERR_INVALID_ELEMENT_OFFSET";
295  break;
297  s = "ERR_INVALID_ELEMENT_OUT_OF_BOUNDS";
298  break;
300  s = "ERR_INVALID_TABLE_INDEX";
301  break;
303  s = "ERR_TABLE_NOT_DEFINED";
304  break;
306  s = "ERR_INVALID_ELEMENT_COUNT";
307  break;
309  s = "ERR_INVALID_MEM_INDEX";
310  break;
312  s = "ERR_MEMORY_NOT_DEFINED";
313  break;
315  s = "ERR_INVALID_MEM_OFFSET_TYPE";
316  break;
318  s = "ERR_INVALID_NEGATIVE_MEM_OFFSET";
319  break;
321  s = "ERR_INVALID_MEM_OFFSET";
322  break;
324  s = "ERR_MULTIPLE_MEMORIES";
325  break;
326  case ERR_MULTIPLE_TABLES:
327  s = "ERR_MULTIPLE_TABLES";
328  break;
330  s = "ERR_INVALID_LABEL_INDEX";
331  break;
333  s = "ERR_INVALID_ELSE_BLOCK";
334  break;
336  s = "ERR_INVALID_END_BLOCK";
337  break;
339  s = "ERR_INSTRUCTION_OUTSIDE_OF_FUNCTION";
340  break;
342  s = "ERR_LOCAL_IDX_OUT_OF_RANGE";
343  break;
345  s = "ERR_FUNCTION_IDX_OUT_OF_RANGE";
346  break;
348  s = "ERR_TYPE_IDX_OUT_OF_RANGE";
349  break;
351  s = "ERR_FUNCTION_TEXT_OUT_OF_RANGE";
352  break;
354  s = "ERR_GLOBAL_IDX_OUT_OF_RANGE";
355  break;
357  s = "ERR_FUNCTION_IMPORT_NOT_FOUND";
358  break;
360  s = "ERR_GLOBAL_IMPORT_NOT_FOUND";
361  break;
363  s = "ERR_MEMORY_IMPORT_NOT_FOUND";
364  break;
366  s = "ERR_TABLE_IMPORT_NOT_FOUND";
367  break;
369  s = "ERR_FUNCTION_IMPORT_OUT_OF_RANGE";
370  break;
372  s = "ERR_FUNCTION_IMPORT_TYPE_MISMATCH";
373  break;
375  s = "ERR_GLOBAL_NOT_MUTABLE";
376  break;
378  s = "ERR_GLOBAL_IMPORT_TYPE_MISMATCH";
379  break;
381  s = "ERR_MEMORY_IMPORT_TYPE_MISMATCH";
382  break;
384  s = "ERR_TABLE_IMPORT_TYPE_MISMATCH";
385  break;
387  s = "ERR_TABLE_IMPORT_INCOMPATIBLE_SIZE";
388  break;
390  s = "ERR_TABLE_REF_NOT_UNIQUE";
391  break;
393  s = "ERR_FUNCTION_PARAMETERS_TOO_LARGE";
394  break;
396  s = "ERR_FUNCTION_RETURNS_TOO_LARGE";
397  break;
398  case ERR_TOO_MANY_LOCALS:
399  s = "ERR_TOO_MANY_LOCALS";
400  break;
402  s = "ERR_INVALID_CONST_INSTRUCTION";
403  break;
405  s = "ERR_GLOBAL_TYPE_MISMATCH";
406  break;
408  s = "ERR_ALIGNMENT_LARGER_THAN_TYPE";
409  break;
411  s = "ERR_INVALID_START_FUNCTION_SIGNATURE";
412  break;
414  s = "ERR_INVALID_HOST_START_FUNCTION";
415  break;
417  s = "ERR_CONST_ALREADY_HAS_VALUE";
418  break;
419  case ERR_CONST_NO_VALUE:
420  s = "ERR_CONST_NO_VALUE";
421  break;
423  s = "ERR_CONST_INVALID_GLOBAL";
424  break;
426  s = "ERR_POSSIBLE_BACKPATCH_CYCLE";
427  break;
428  case ERR_PAGE_FAULT:
429  s = "ERR_PAGE_FAULT";
430  break;
431  case ERR_READER_ERROR:
432  s = "ERR_READER_ERROR";
433  break;
434  default:
435  s = "[invalid]";
436  break;
437  }
438  sb.format("%s (%" PRIi32 ")", s.toChar(), e);
439  }
440 
441 #endif
442 
443 #ifdef BUILD_UT
444 
445  void WasmSequencer_Status ::
446  setSerializeValue(SerialType serializeValue)
447  {
448  this->m_serializeValue = serializeValue;
449  this->m_serializeValueIsSet = true;
450  }
451 
452 #endif
453 
454  // ----------------------------------------------------------------------
455  // Static functions
456  // ----------------------------------------------------------------------
457 
459  isValid(SerialType serialTypeValue)
460  {
461  return ((serialTypeValue >= OK) && (serialTypeValue <= ERR_WRONG_STATE))
462  || ((serialTypeValue >= ERR_GUEST_MEMORY_ALLOC_FAILED) && (serialTypeValue <= ERR_PAGE_TOO_SMALL))
463  || (serialTypeValue == ERR_MEM_OUT_OF_BOUNDS)
464  || ((serialTypeValue >= ERR_PARAM_LEN_MISMATCH) && (serialTypeValue <= ERR_STACK_OVERFLOW))
465  || ((serialTypeValue >= ERR_EOF) && (serialTypeValue <= ERR_BR_TABLE_RESULT_TYPE_MISMATCH))
466  || ((serialTypeValue >= ERR_ILLEGAL_MEMORY_GROW) && (serialTypeValue <= ERR_MULTIPLE_TABLES))
467  || ((serialTypeValue >= ERR_INVALID_LABEL_INDEX) && (serialTypeValue <= ERR_GLOBAL_IDX_OUT_OF_RANGE))
468  || ((serialTypeValue >= ERR_FUNCTION_IMPORT_NOT_FOUND) && (serialTypeValue <= ERR_TABLE_REF_NOT_UNIQUE))
469  || ((serialTypeValue >= ERR_FUNCTION_PARAMETERS_TOO_LARGE) && (serialTypeValue <= ERR_INVALID_HOST_START_FUNCTION))
470  || ((serialTypeValue >= ERR_CONST_ALREADY_HAS_VALUE) && (serialTypeValue <= ERR_CONST_INVALID_GLOBAL))
471  || ((serialTypeValue >= ERR_POSSIBLE_BACKPATCH_CYCLE) && (serialTypeValue <= ERR_READER_ERROR));
472  }
473 
474 }
Serialization/Deserialization operation was successful.
WasmSequencer_Status & operator=(const WasmSequencer_Status &obj)
Copy assignment operator (object)
Deserialization data had incorrect values (unexpected data types)
I32 SerialType
The serial representation type.
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.
bool isValid() const
Check raw enum value for validity.
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 serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
RateGroupDivider component implementation.
Endianness
Corresponds to spacewasm_status_t.
#define FW_ASSERT(...)
Definition: Assert.hpp:14
ComCfg::Apid::SerialType SerialType
Definition: TestUtils.cpp:14