F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
ByteStreamStatusEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title ByteStreamStatusEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for ByteStreamStatus enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
11 
12 namespace Drv {
13 
14  // ----------------------------------------------------------------------
15  // Operators
16  // ----------------------------------------------------------------------
17 
18  ByteStreamStatus& ByteStreamStatus ::
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 ByteStreamStatus& 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 ByteStreamStatus::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) && !ByteStreamStatus::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 ByteStreamStatus ::
100  toString(Fw::StringBase& sb) const
101  {
102  Fw::String s;
103  switch (e) {
104  case OP_OK:
105  s = "OP_OK";
106  break;
107  case SEND_RETRY:
108  s = "SEND_RETRY";
109  break;
110  case RECV_NO_DATA:
111  s = "RECV_NO_DATA";
112  break;
113  case OTHER_ERROR:
114  s = "OTHER_ERROR";
115  break;
116  default:
117  s = "[invalid]";
118  break;
119  }
120  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
121  }
122 
123 #endif
124 
125 #ifdef BUILD_UT
126 
127  void ByteStreamStatus ::
128  setSerializeValue(SerialType serializeValue)
129  {
130  this->m_serializeValue = serializeValue;
131  this->m_serializeValueIsSet = true;
132  }
133 
134 #endif
135 
136  // ----------------------------------------------------------------------
137  // Static functions
138  // ----------------------------------------------------------------------
139 
141  isValid(SerialType serialTypeValue)
142  {
143  return (serialTypeValue <= OTHER_ERROR);
144  }
145 
146 }
Serialization/Deserialization operation was successful.
bool isValid() const
Check raw enum value for validity.
Error occurred, retrying may succeed.
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.
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
Receive worked, but there was no data.
SerializeStatus
forward declaration for string
virtual SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)=0
Deserialize an 8-bit unsigned integer value.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
Status returned by the send call.
Operation worked as expected.
U8 SerialType
The serial representation type.
const char * toChar() const
Convert to a C-style char*.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:39
ByteStreamStatus & operator=(const ByteStreamStatus &obj)
Copy assignment operator (object)
enum T e
The raw enum value.
Endianness
#define FW_ASSERT(...)
Definition: Assert.hpp:14
ComCfg::Apid::SerialType SerialType
Definition: TestUtils.cpp:14