F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
DirectionEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title DirectionEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for Direction enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
11 
12 namespace Fw {
13 
14  // ----------------------------------------------------------------------
15  // Operators
16  // ----------------------------------------------------------------------
17 
18  Direction& Direction ::
19  operator=(const Direction& obj)
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 Direction& 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 
56  bool Direction ::
57  isValid() const
58  {
59  return Direction::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) && !Direction::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 Direction ::
100  toString(Fw::StringBase& sb) const
101  {
102  Fw::String s;
103  switch (e) {
104  case IN:
105  s = "IN";
106  break;
107  case OUT:
108  s = "OUT";
109  break;
110  case INOUT:
111  s = "INOUT";
112  break;
113  default:
114  s = "[invalid]";
115  break;
116  }
117  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
118  }
119 
120 #endif
121 
122 #ifdef BUILD_UT
123 
124  void Direction ::
125  setSerializeValue(SerialType serializeValue)
126  {
127  this->m_serializeValue = serializeValue;
128  this->m_serializeValueIsSet = true;
129  }
130 
131 #endif
132 
133  // ----------------------------------------------------------------------
134  // Static functions
135  // ----------------------------------------------------------------------
136 
137  bool Direction ::
138  isValid(SerialType serialTypeValue)
139  {
140  return (serialTypeValue <= INOUT);
141  }
142 
143 }
Serialization/Deserialization operation was successful.
U8 SerialType
The serial representation type.
bool isValid() const
Check raw enum value for validity.
Deserialization data had incorrect values (unexpected data types)
Out direction.
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.
Direction & operator=(const Direction &obj)
Copy assignment operator (object)
T
The raw enum type.
Direction states.
const char * toChar() const
Convert to a C-style char*.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:58
enum T e
The raw enum value.
In/Out direction.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
In direction.
Implementation of malloc based allocator.
Endianness
#define FW_ASSERT(...)
Definition: Assert.hpp:14
ComCfg::Apid::SerialType SerialType
Definition: TestUtils.cpp:14