F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
SequenceSerializableAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title SequenceSerializableAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for Sequence struct
5 // ======================================================================
6 
7 #include "Fw/Types/Assert.hpp"
9 
10 namespace Svc {
11 
12  namespace Fpy {
13 
14  // ----------------------------------------------------------------------
15  // Constructors
16  // ----------------------------------------------------------------------
17 
20  Serializable(),
21  m_header(0, 0, 0, 0, 0, 0, 0),
22  m_footer(0)
23  {
24  for (FwSizeType i = 0; i < 16; i++) {
25  this->m_args[i] = 0;
26  }
27  for (FwSizeType i = 0; i < 1024; i++) {
29  }
30  }
31 
34  const Svc::Fpy::Header& header,
35  const Type_of_args& args,
36  const Type_of_statements& statements,
37  const Svc::Fpy::Footer& footer
38  ) :
39  Serializable(),
40  m_header(header),
41  m_footer(footer)
42  {
43  for (FwSizeType i = 0; i < 16; i++) {
44  this->m_args[i] = args[i];
45  }
46  for (FwSizeType i = 0; i < 1024; i++) {
47  this->m_statements[i] = statements[i];
48  }
49  }
50 
52  Sequence(const Sequence& obj) :
53  Serializable(),
54  m_header(obj.m_header),
55  m_footer(obj.m_footer)
56  {
57  for (FwSizeType i = 0; i < 16; i++) {
58  this->m_args[i] = obj.m_args[i];
59  }
60  for (FwSizeType i = 0; i < 1024; i++) {
61  this->m_statements[i] = obj.m_statements[i];
62  }
63  }
64 
67  const Svc::Fpy::Header& header,
68  U8 args,
69  const Svc::Fpy::Statement& statements,
70  const Svc::Fpy::Footer& footer
71  ) :
72  Serializable(),
73  m_header(header),
74  m_footer(footer)
75  {
76  for (FwSizeType i = 0; i < 16; i++) {
77  this->m_args[i] = args;
78  }
79  for (FwSizeType i = 0; i < 1024; i++) {
80  this->m_statements[i] = statements;
81  }
82  }
83 
84  // ----------------------------------------------------------------------
85  // Operators
86  // ----------------------------------------------------------------------
87 
89  operator=(const Sequence& obj)
90  {
91  if (this == &obj) {
92  return *this;
93  }
94 
95  set(obj.m_header, obj.m_args, obj.m_statements, obj.m_footer);
96  return *this;
97  }
98 
99  bool Sequence ::
100  operator==(const Sequence& obj) const
101  {
102  if (this == &obj) { return true; }
103 
104  // Compare non-array members
105  if (!(
106  (this->m_header == obj.m_header) &&
107  (this->m_footer == obj.m_footer)
108  )) {
109  return false;
110  }
111 
112  // Compare array members
113  for (FwSizeType i = 0; i < 16; i++) {
114  if (!(this->m_args[i] == obj.m_args[i])) {
115  return false;
116  }
117  }
118  for (FwSizeType i = 0; i < 1024; i++) {
119  if (!(this->m_statements[i] == obj.m_statements[i])) {
120  return false;
121  }
122  }
123 
124  return true;
125  }
126 
127  bool Sequence ::
128  operator!=(const Sequence& obj) const
129  {
130  return !(*this == obj);
131  }
132 
133 #ifdef BUILD_UT
134 
135  std::ostream& operator<<(std::ostream& os, const Sequence& obj) {
136  Fw::String s;
137  obj.toString(s);
138  os << s.toChar();
139  return os;
140  }
141 
142 #endif
143 
144  // ----------------------------------------------------------------------
145  // Member functions
146  // ----------------------------------------------------------------------
147 
150  {
151  Fw::SerializeStatus status;
152 
153  status = buffer.serializeFrom(this->m_header);
154  if (status != Fw::FW_SERIALIZE_OK) {
155  return status;
156  }
157  for (FwSizeType i = 0; i < 16; i++) {
158  status = buffer.serializeFrom(this->m_args[i]);
159  if (status != Fw::FW_SERIALIZE_OK) {
160  return status;
161  }
162  }
163  for (FwSizeType i = 0; i < 1024; i++) {
164  status = buffer.serializeFrom(this->m_statements[i]);
165  if (status != Fw::FW_SERIALIZE_OK) {
166  return status;
167  }
168  }
169  status = buffer.serializeFrom(this->m_footer);
170  if (status != Fw::FW_SERIALIZE_OK) {
171  return status;
172  }
173 
174  return status;
175  }
176 
179  {
180  Fw::SerializeStatus status;
181 
182  status = buffer.deserializeTo(this->m_header);
183  if (status != Fw::FW_SERIALIZE_OK) {
184  return status;
185  }
186  for (FwSizeType i = 0; i < 16; i++) {
187  status = buffer.deserializeTo(this->m_args[i]);
188  if (status != Fw::FW_SERIALIZE_OK) {
189  return status;
190  }
191  }
192  for (FwSizeType i = 0; i < 1024; i++) {
193  status = buffer.deserializeTo(this->m_statements[i]);
194  if (status != Fw::FW_SERIALIZE_OK) {
195  return status;
196  }
197  }
198  status = buffer.deserializeTo(this->m_footer);
199  if (status != Fw::FW_SERIALIZE_OK) {
200  return status;
201  }
202 
203  return status;
204  }
205 
208  {
209  FwSizeType size = 0;
210  size += this->m_header.serializedSize();
211  size += sizeof(U8) * 16;
212  for (U32 index = 0; index < 1024; index++) {
213  size += this->m_statements[index].serializedSize();
214  }
215  size += this->m_footer.serializedSize();
216  return size;
217  }
218 
219 #if FW_SERIALIZABLE_TO_STRING
220 
221  void Sequence ::
222  toString(Fw::StringBase& sb) const
223  {
224  Fw::String tmp;
225  sb = "( ";
226 
227  // Format header
228  sb += "header = ";
229  this->m_header.toString(tmp);
230  sb += tmp;
231  sb += ", ";
232 
233  // Format args
234  sb += "args = ";
235  sb += "[ ";
236  for (FwSizeType i = 0; i < 16; i++) {
237  tmp.format("%" PRIu8 "", this->m_args[i]);
238  if (i > 0) {
239  sb += ", ";
240  }
241  sb += tmp;
242  }
243  sb += " ]";
244  sb += ", ";
245 
246  // Format statements
247  sb += "statements = ";
248  sb += "[ ";
249  for (FwSizeType i = 0; i < 1024; i++) {
250  this->m_statements[i].toString(tmp);
251  if (i > 0) {
252  sb += ", ";
253  }
254  sb += tmp;
255  }
256  sb += " ]";
257  sb += ", ";
258 
259  // Format footer
260  sb += "footer = ";
261  this->m_footer.toString(tmp);
262  sb += tmp;
263  sb += " )";
264  }
265 
266 #endif
267 
268  // ----------------------------------------------------------------------
269  // Setter functions
270  // ----------------------------------------------------------------------
271 
272  void Sequence ::
274  const Svc::Fpy::Header& header,
275  const Type_of_args& args,
276  const Type_of_statements& statements,
277  const Svc::Fpy::Footer& footer
278  )
279  {
280  this->m_header = header;
281  this->m_footer = footer;
282 
283  for (FwSizeType i = 0; i < 16; i++) {
284  this->m_args[i] = args[i];
285  }
286  for (FwSizeType i = 0; i < 1024; i++) {
287  this->m_statements[i] = statements[i];
288  }
289  }
290 
291  void Sequence ::
293  {
294  this->m_header = header;
295  }
296 
297  void Sequence ::
299  {
300  for (FwSizeType i = 0; i < 16; i++) {
301  this->m_args[i] = args[i];
302  }
303  }
304 
305  void Sequence ::
307  {
308  for (FwSizeType i = 0; i < 1024; i++) {
309  this->m_statements[i] = statements[i];
310  }
311  }
312 
313  void Sequence ::
315  {
316  this->m_footer = footer;
317  }
318 
319  }
320 
321 }
void set_header(const Svc::Fpy::Header &header)
Set member header.
Serialization/Deserialization operation was successful.
FwSizeType serializedSize() const
Get the dynamic serialized size of the struct.
PlatformSizeType FwSizeType
void set(const Svc::Fpy::Header &header, const Type_of_args &args, const Type_of_statements &statements, const Svc::Fpy::Footer &footer)
Set all members.
const char * toChar() const
Definition: String.hpp:50
FwSizeType serializedSize() const
Get the dynamic serialized size of the struct.
bool operator==(const Sequence &obj) const
Equality operator.
Fw::SerializeStatus deserializeFrom(Fw::SerializeBufferBase &buffer)
Deserialization.
Svc::Fpy::Statement[1024] Type_of_statements
The type of statements.
void set_statements(const Type_of_statements &statements)
Set member statements.
bool operator!=(const Sequence &obj) const
Inequality operator.
Fw::SerializeStatus serializeTo(Fw::SerializeBufferBase &buffer) const
Serialization.
SerializeStatus
forward declaration for string
U8[16] Type_of_args
The type of args.
a statement is a directive opcode paired with an argument buffer
Sequence & operator=(const Sequence &obj)
Copy assignment operator.
Sequence()
Constructor (default value)
FwSizeType serializedSize() const
Get the dynamic serialized size of the struct.
void set_footer(const Svc::Fpy::Footer &footer)
Set member footer.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:55
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
void set_args(const Type_of_args &args)
Set member args.
RateGroupDivider component implementation.
SerializeStatus serializeFrom(U8 val)
serialize 8-bit unsigned int
Svc::Fpy::Statement m_statements[1024]
SerializeStatus deserializeTo(U8 &val)
deserialize 8-bit unsigned int