F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
SeqArgsSerializableAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title SeqArgsSerializableAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for SeqArgs struct
5 // ======================================================================
6 
7 #include "Fw/Types/Assert.hpp"
9 
10 namespace Svc {
11 
12  // ----------------------------------------------------------------------
13  // Constructors
14  // ----------------------------------------------------------------------
15 
18  Serializable(),
19  m_size(),
20  m_buffer()
21  {
22 
23  }
24 
27  FwSizeType size,
28  const Type_of_buffer& buffer
29  ) :
30  Serializable(),
31  m_size(size)
32  {
33  for (FwSizeType i = 0; i < 255; i++) {
34  this->m_buffer[i] = buffer[i];
35  }
36  }
37 
39  SeqArgs(const SeqArgs& obj) :
40  Serializable(),
41  m_size(obj.m_size)
42  {
43  for (FwSizeType i = 0; i < 255; i++) {
44  this->m_buffer[i] = obj.m_buffer[i];
45  }
46  }
47 
50  FwSizeType size,
51  U8 buffer
52  ) :
53  Serializable(),
54  m_size(size)
55  {
56  for (FwSizeType i = 0; i < 255; i++) {
57  this->m_buffer[i] = buffer;
58  }
59  }
60 
61  // ----------------------------------------------------------------------
62  // Operators
63  // ----------------------------------------------------------------------
64 
66  operator=(const SeqArgs& obj)
67  {
68  if (this == &obj) {
69  return *this;
70  }
71 
72  set(obj.m_size, obj.m_buffer);
73  return *this;
74  }
75 
76  bool SeqArgs ::
77  operator==(const SeqArgs& obj) const
78  {
79  if (this == &obj) { return true; }
80 
81  // Compare non-array members
82  if (!(this->m_size == obj.m_size)) {
83  return false;
84  }
85 
86  // Compare array members
87  for (FwSizeType i = 0; i < 255; i++) {
88  if (!(this->m_buffer[i] == obj.m_buffer[i])) {
89  return false;
90  }
91  }
92 
93  return true;
94  }
95 
96  bool SeqArgs ::
97  operator!=(const SeqArgs& obj) const
98  {
99  return !(*this == obj);
100  }
101 
102 #ifdef BUILD_UT
103 
104  std::ostream& operator<<(std::ostream& os, const SeqArgs& obj) {
105  Fw::String s;
106  obj.toString(s);
107  os << s.toChar();
108  return os;
109  }
110 
111 #endif
112 
113  // ----------------------------------------------------------------------
114  // Member functions
115  // ----------------------------------------------------------------------
116 
119  Fw::SerialBufferBase& buffer,
120  Fw::Endianness mode
121  ) const
122  {
123  Fw::SerializeStatus status;
124 
125  status = buffer.serializeFrom(this->m_size, mode);
126  if (status != Fw::FW_SERIALIZE_OK) {
127  return status;
128  }
129  for (FwSizeType i = 0; i < 255; i++) {
130  status = buffer.serializeFrom(this->m_buffer[i], mode);
131  if (status != Fw::FW_SERIALIZE_OK) {
132  return status;
133  }
134  }
135 
136  return status;
137  }
138 
141  Fw::SerialBufferBase& buffer,
142  Fw::Endianness mode
143  )
144  {
145  Fw::SerializeStatus status;
146 
147  status = buffer.deserializeTo(this->m_size, mode);
148  if (status != Fw::FW_SERIALIZE_OK) {
149  return status;
150  }
151  for (FwSizeType i = 0; i < 255; i++) {
152  status = buffer.deserializeTo(this->m_buffer[i], mode);
153  if (status != Fw::FW_SERIALIZE_OK) {
154  return status;
155  }
156  }
157 
158  return status;
159  }
160 
163  {
164  FwSizeType size = 0;
165  size += sizeof(FwSizeType);
166  size += sizeof(U8) * 255;
167  return size;
168  }
169 
170 #if FW_SERIALIZABLE_TO_STRING
171 
172  void SeqArgs ::
173  toString(Fw::StringBase& sb) const
174  {
175  Fw::String tmp;
176  sb = "( ";
177 
178  // Format size
179  sb += "size = ";
180  tmp.format("%" PRIu64 "", this->m_size);
181  sb += tmp;
182  sb += ", ";
183 
184  // Format buffer
185  sb += "buffer = ";
186  sb += "[ ";
187  for (FwSizeType i = 0; i < 255; i++) {
188  tmp.format("%" PRIu8 "", this->m_buffer[i]);
189  if (i > 0) {
190  sb += ", ";
191  }
192  sb += tmp;
193  }
194  sb += " ]";
195  sb += " )";
196  }
197 
198 #endif
199 
200  // ----------------------------------------------------------------------
201  // Setter functions
202  // ----------------------------------------------------------------------
203 
204  void SeqArgs ::
206  FwSizeType size,
207  const Type_of_buffer& buffer
208  )
209  {
210  this->m_size = size;
211 
212  for (FwSizeType i = 0; i < 255; i++) {
213  this->m_buffer[i] = buffer[i];
214  }
215  }
216 
217  void SeqArgs ::
219  {
220  this->m_size = size;
221  }
222 
223  void SeqArgs ::
225  {
226  for (FwSizeType i = 0; i < 255; i++) {
227  this->m_buffer[i] = buffer[i];
228  }
229  }
230 
231 }
Serialization/Deserialization operation was successful.
void set_buffer(const Type_of_buffer &buffer)
Set member buffer.
PlatformSizeType FwSizeType
bool operator!=(const SeqArgs &obj) const
Inequality operator.
FwSizeType serializedSize() const
Get the dynamic serialized size of the struct.
const char * toChar() const
Convert to a C-style char*.
Definition: String.hpp:50
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.
void set(FwSizeType size, const Type_of_buffer &buffer)
Set all members.
SeqArgs & operator=(const SeqArgs &obj)
Copy assignment operator.
Fw::SerializeStatus deserializeFrom(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG)
Deserialization.
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:39
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
void set_size(FwSizeType size)
Set member size.
bool operator==(const SeqArgs &obj) const
Equality operator.
U8[255] Type_of_buffer
The type of buffer.
RateGroupDivider component implementation.
SeqArgs()
Constructor (default value)
Endianness
Fw::SerializeStatus serializeTo(Fw::SerialBufferBase &buffer, Fw::Endianness mode=Fw::Endianness::BIG) const
Serialization.