F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RawTimeStatusEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title RawTimeStatusEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for RawTimeStatus enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
10 #include "Fw/Types/Assert.hpp"
12 
13 namespace Os {
14 
15  // ----------------------------------------------------------------------
16  // Operators
17  // ----------------------------------------------------------------------
18 
20  operator=(const RawTimeStatus& obj)
21  {
22  this->e = obj.e;
23  return *this;
24  }
25 
27  operator=(T e1)
28  {
29  this->e = e1;
30  return *this;
31  }
32 
33 #ifdef BUILD_UT
34 
35  std::ostream& operator<<(std::ostream& os, const RawTimeStatus& 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 >= OP_OK) && (e <= OTHER_ERROR));
52  }
53 
56  {
57  const Fw::SerializeStatus status = buffer.serialize(
58  static_cast<SerialType>(this->e)
59  );
60  return status;
61  }
62 
65  {
66  SerialType es;
67  Fw::SerializeStatus status = buffer.deserialize(es);
68  if (status == Fw::FW_SERIALIZE_OK) {
69  this->e = static_cast<T>(es);
70  if (!this->isValid()) {
72  }
73  }
74  return status;
75  }
76 
77 #if FW_SERIALIZABLE_TO_STRING
78 
79  void RawTimeStatus ::
80  toString(Fw::StringBase& sb) const
81  {
82  Fw::String s;
83  switch (e) {
84  case OP_OK:
85  s = "OP_OK";
86  break;
87  case OP_OVERFLOW:
88  s = "OP_OVERFLOW";
89  break;
90  case INVALID_PARAMS:
91  s = "INVALID_PARAMS";
92  break;
93  case OTHER_ERROR:
94  s = "OTHER_ERROR";
95  break;
96  default:
97  s = "[invalid]";
98  break;
99  }
100  sb.format("%s (%" PRIi32 ")", s.toChar(), e);
101  }
102 
103 #elif FW_ENABLE_TEXT_LOGGING
104 
105  void RawTimeStatus ::
106  toString(Fw::StringBase& sb) const
107  {
108  sb.format("%" PRIi32 "", e);
109  }
110 
111 #endif
112 
113 }
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
Definition: StringBase.cpp:56
const char * toChar() const
Definition: String.hpp:50
FPP shadow-enum representing Os::RawTime::Status.
T e
The raw enum value.
Fw::SerializeStatus serialize(Fw::SerializeBufferBase &buffer) const
Serialize raw enum value to SerialType.
T
The raw enum type.
@ OP_OK
Operation was successful.
@ INVALID_PARAMS
Parameters invalid for current platform.
@ OP_OVERFLOW
Operation result caused an overflow.
@ OTHER_ERROR
All other errors.
bool isValid() const
Check raw enum value for validity.
I32 SerialType
The serial representation type.
RawTimeStatus & operator=(const RawTimeStatus &obj)
Copy assignment operator (object)
Fw::SerializeStatus deserialize(Fw::SerializeBufferBase &buffer)
Deserialize raw enum value from SerialType.
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.