F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
DirectiveIdEnumAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title DirectiveIdEnumAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for DirectiveId enum
5 // ======================================================================
6 
7 #include <cstring>
8 #include <limits>
9 
10 #include "Fw/Types/Assert.hpp"
12 
13 namespace Svc {
14 
15  namespace Fpy {
16 
17  // ----------------------------------------------------------------------
18  // Operators
19  // ----------------------------------------------------------------------
20 
21  DirectiveId& DirectiveId ::
23  {
24  this->e = obj.e;
25  return *this;
26  }
27 
30  {
31  this->e = e1;
32  return *this;
33  }
34 
35 #ifdef BUILD_UT
36 
37  std::ostream& operator<<(std::ostream& os, const DirectiveId& obj) {
38  Fw::String s;
39  obj.toString(s);
40  os << s;
41  return os;
42  }
43 
44 #endif
45 
46  // ----------------------------------------------------------------------
47  // Member functions
48  // ----------------------------------------------------------------------
49 
50  bool DirectiveId ::
51  isValid() const
52  {
53  return ((e >= INVALID) && (e <= STORE_ABS_CONST_OFFSET));
54  }
55 
58  Fw::SerialBufferBase& buffer,
59  Fw::Endianness mode
60  ) const
61  {
62  const Fw::SerializeStatus status = buffer.serializeFrom(
63  static_cast<SerialType>(this->e),
64  mode
65  );
66  return status;
67  }
68 
71  Fw::SerialBufferBase& buffer,
72  Fw::Endianness mode
73  )
74  {
75  SerialType es;
76  Fw::SerializeStatus status = buffer.deserializeTo(es, mode);
77  if (status == Fw::FW_SERIALIZE_OK) {
78  this->e = static_cast<T>(es);
79  if (!this->isValid()) {
81  }
82  }
83  return status;
84  }
85 
86 #if FW_SERIALIZABLE_TO_STRING
87 
88  void DirectiveId ::
89  toString(Fw::StringBase& sb) const
90  {
91  Fw::String s;
92  switch (e) {
93  case INVALID:
94  s = "INVALID";
95  break;
96  case WAIT_REL:
97  s = "WAIT_REL";
98  break;
99  case WAIT_ABS:
100  s = "WAIT_ABS";
101  break;
102  case GOTO:
103  s = "GOTO";
104  break;
105  case IF:
106  s = "IF";
107  break;
108  case NO_OP:
109  s = "NO_OP";
110  break;
111  case PUSH_TLM_VAL:
112  s = "PUSH_TLM_VAL";
113  break;
114  case PUSH_PRM:
115  s = "PUSH_PRM";
116  break;
117  case CONST_CMD:
118  s = "CONST_CMD";
119  break;
120  case OR:
121  s = "OR";
122  break;
123  case AND:
124  s = "AND";
125  break;
126  case IEQ:
127  s = "IEQ";
128  break;
129  case INE:
130  s = "INE";
131  break;
132  case ULT:
133  s = "ULT";
134  break;
135  case ULE:
136  s = "ULE";
137  break;
138  case UGT:
139  s = "UGT";
140  break;
141  case UGE:
142  s = "UGE";
143  break;
144  case SLT:
145  s = "SLT";
146  break;
147  case SLE:
148  s = "SLE";
149  break;
150  case SGT:
151  s = "SGT";
152  break;
153  case SGE:
154  s = "SGE";
155  break;
156  case FEQ:
157  s = "FEQ";
158  break;
159  case FNE:
160  s = "FNE";
161  break;
162  case FLT:
163  s = "FLT";
164  break;
165  case FLE:
166  s = "FLE";
167  break;
168  case FGT:
169  s = "FGT";
170  break;
171  case FGE:
172  s = "FGE";
173  break;
174  case NOT:
175  s = "NOT";
176  break;
177  case FPTOSI:
178  s = "FPTOSI";
179  break;
180  case FPTOUI:
181  s = "FPTOUI";
182  break;
183  case SITOFP:
184  s = "SITOFP";
185  break;
186  case UITOFP:
187  s = "UITOFP";
188  break;
189  case ADD:
190  s = "ADD";
191  break;
192  case SUB:
193  s = "SUB";
194  break;
195  case MUL:
196  s = "MUL";
197  break;
198  case UDIV:
199  s = "UDIV";
200  break;
201  case SDIV:
202  s = "SDIV";
203  break;
204  case UMOD:
205  s = "UMOD";
206  break;
207  case SMOD:
208  s = "SMOD";
209  break;
210  case FADD:
211  s = "FADD";
212  break;
213  case FSUB:
214  s = "FSUB";
215  break;
216  case FMUL:
217  s = "FMUL";
218  break;
219  case FDIV:
220  s = "FDIV";
221  break;
222  case FPOW:
223  s = "FPOW";
224  break;
225  case FLOG:
226  s = "FLOG";
227  break;
228  case FMOD:
229  s = "FMOD";
230  break;
231  case FPEXT:
232  s = "FPEXT";
233  break;
234  case FPTRUNC:
235  s = "FPTRUNC";
236  break;
237  case SIEXT_8_64:
238  s = "SIEXT_8_64";
239  break;
240  case SIEXT_16_64:
241  s = "SIEXT_16_64";
242  break;
243  case SIEXT_32_64:
244  s = "SIEXT_32_64";
245  break;
246  case ZIEXT_8_64:
247  s = "ZIEXT_8_64";
248  break;
249  case ZIEXT_16_64:
250  s = "ZIEXT_16_64";
251  break;
252  case ZIEXT_32_64:
253  s = "ZIEXT_32_64";
254  break;
255  case ITRUNC_64_8:
256  s = "ITRUNC_64_8";
257  break;
258  case ITRUNC_64_16:
259  s = "ITRUNC_64_16";
260  break;
261  case ITRUNC_64_32:
262  s = "ITRUNC_64_32";
263  break;
264  case EXIT:
265  s = "EXIT";
266  break;
267  case ALLOCATE:
268  s = "ALLOCATE";
269  break;
271  s = "STORE_REL_CONST_OFFSET";
272  break;
273  case LOAD_REL:
274  s = "LOAD_REL";
275  break;
276  case PUSH_VAL:
277  s = "PUSH_VAL";
278  break;
279  case DISCARD:
280  s = "DISCARD";
281  break;
282  case MEMCMP:
283  s = "MEMCMP";
284  break;
285  case STACK_CMD:
286  s = "STACK_CMD";
287  break;
289  s = "PUSH_TLM_VAL_AND_TIME";
290  break;
291  case PUSH_TIME:
292  s = "PUSH_TIME";
293  break;
294  case SET_FLAG:
295  s = "SET_FLAG";
296  break;
297  case GET_FLAG:
298  s = "GET_FLAG";
299  break;
300  case GET_FIELD:
301  s = "GET_FIELD";
302  break;
303  case PEEK:
304  s = "PEEK";
305  break;
306  case STORE_REL:
307  s = "STORE_REL";
308  break;
309  case CALL:
310  s = "CALL";
311  break;
312  case RETURN:
313  s = "RETURN";
314  break;
315  case LOAD_ABS:
316  s = "LOAD_ABS";
317  break;
318  case STORE_ABS:
319  s = "STORE_ABS";
320  break;
322  s = "STORE_ABS_CONST_OFFSET";
323  break;
324  default:
325  s = "[invalid]";
326  break;
327  }
328  sb.format("%s (%" PRIu8 ")", s.toChar(), e);
329  }
330 
331 #elif FW_ENABLE_TEXT_LOGGING
332 
333  void DirectiveId ::
334  toString(Fw::StringBase& sb) const
335  {
336  sb.format("%" PRIu8 "", e);
337  }
338 
339 #endif
340 
341  }
342 
343 }
Serialization/Deserialization operation was successful.
U8 SerialType
The serial representation type.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialize raw enum value from SerialType.
const char * toChar() const
Convert to a C-style char*.
Definition: String.hpp:50
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.
DirectiveId & operator=(const DirectiveId &obj)
Copy assignment operator (object)
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:39
T e
The raw enum value.
bool isValid() const
Check raw enum value for validity.
T
The raw enum type.
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialize raw enum value to SerialType.
RateGroupDivider component implementation.
Endianness