F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
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 
11 
12 namespace Os {
13 
14  // ----------------------------------------------------------------------
15  // Operators
16  // ----------------------------------------------------------------------
17 
18  RawTimeStatus& RawTimeStatus ::
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 RawTimeStatus& 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 
68  bool RawTimeStatus ::
69  isValid() const
70  {
71  return RawTimeStatus::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) && !RawTimeStatus::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 RawTimeStatus ::
112  toString(Fw::StringBase& sb) const
113  {
114  Fw::String s;
115  switch (e) {
116  case OP_OK:
117  s = "OP_OK";
118  break;
119  case OP_OVERFLOW:
120  s = "OP_OVERFLOW";
121  break;
122  case INVALID_PARAMS:
123  s = "INVALID_PARAMS";
124  break;
125  case NOT_SUPPORTED:
126  s = "NOT_SUPPORTED";
127  break;
128  case OTHER_ERROR:
129  s = "OTHER_ERROR";
130  break;
131  default:
132  s = "[invalid]";
133  break;
134  }
135  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
136  }
137 
138 #endif
139 
140 #ifdef BUILD_UT
141 
142  void RawTimeStatus ::
143  setSerializeValue(SerialType serializeValue)
144  {
145  this->m_serializeValue = serializeValue;
146  this->m_serializeValueIsSet = true;
147  }
148 
149 #endif
150 
151  // ----------------------------------------------------------------------
152  // Static functions
153  // ----------------------------------------------------------------------
154 
155  bool RawTimeStatus ::
156  isValid(SerialType serialTypeValue)
157  {
158  return (serialTypeValue <= OTHER_ERROR);
159  }
160 
161 }
Serialization/Deserialization operation was successful.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
FPP shadow-enum representing Os::RawTime::Status.
Operation result caused an overflow.
RawTime feature is not supported.
bool isValid() const
Check raw enum value for validity.
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.
U8 SerialType
The serial representation type.
const char * toChar() const
Convert to a C-style char*.
Operation was successful.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:58
Parameters invalid for current platform.
RawTimeStatus & operator=(const RawTimeStatus &obj)
Copy assignment operator (object)
enum 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.
T
The raw enum type.
Endianness
#define FW_ASSERT(...)
Definition: Assert.hpp:14
ComCfg::Apid::SerialType SerialType
Definition: TestUtils.cpp:14