F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
BufferSerializableAc.cpp
Go to the documentation of this file.
2 #include <Fw/Types/Assert.hpp>
4 #if FW_SERIALIZABLE_TO_STRING
6 #endif
7 #include <cstring>
8 namespace Fw {
9 // public methods
10 
12 
13 }
14 
16  this->set(src.m_managerID, src.m_bufferID, src.m_data, src.m_size);
17 }
18 
20  FW_ASSERT(src);
21  this->set(src->m_managerID, src->m_bufferID, src->m_data, src->m_size);
22 }
23 
24 Buffer::Buffer(U32 managerID, U32 bufferID, U64 data, U32 size) : Serializable() {
25  this->set(managerID, bufferID, data, size);
26 }
27 
28 const Buffer& Buffer::operator=(const Buffer& src) {
29  this->set(src.m_managerID, src.m_bufferID, src.m_data, src.m_size);
30  return src;
31 }
32 
33 bool Buffer::operator==(const Buffer& src) const {
34  return (
35  (src.m_managerID == this->m_managerID) &&
36  (src.m_bufferID == this->m_bufferID) &&
37  (src.m_data == this->m_data) &&
38  (src.m_size == this->m_size) &&
39  true);
40 }
41 
42 void Buffer::set(U32 managerID, U32 bufferID, U64 data, U32 size) {
43  this->m_managerID = managerID;
44  this->m_bufferID = bufferID;
45  this->m_data = data;
46  this->m_size = size;
47 }
48 
50  return this->m_managerID;
51 }
52 
54  return this->m_bufferID;
55 }
56 
58  return this->m_data;
59 }
60 
61 U32 Buffer::getsize(void) {
62  return this->m_size;
63 }
64 
65 void Buffer::setmanagerID(U32 val) {
66  this->m_managerID = val;
67 }
68 void Buffer::setbufferID(U32 val) {
69  this->m_bufferID = val;
70 }
71 void Buffer::setdata(U64 val) {
72  this->m_data = val;
73 }
74 void Buffer::setsize(U32 val) {
75  this->m_size = val;
76 }
79 
80 #if FW_SERIALIZATION_TYPE_ID
81  // serialize type ID
82  stat = buffer.serialize((U32)Buffer::TYPE_ID);
83 #endif
84 
85  stat = buffer.serialize(this->m_managerID);
86  if (stat != Fw::FW_SERIALIZE_OK) {
87  return stat;
88  }
89  stat = buffer.serialize(this->m_bufferID);
90  if (stat != Fw::FW_SERIALIZE_OK) {
91  return stat;
92  }
93  stat = buffer.serialize(this->m_data);
94  if (stat != Fw::FW_SERIALIZE_OK) {
95  return stat;
96  }
97  stat = buffer.serialize(this->m_size);
98  if (stat != Fw::FW_SERIALIZE_OK) {
99  return stat;
100  }
101  return stat;
102 }
103 
105  Fw::SerializeStatus stat;
106 
107 #if FW_SERIALIZATION_TYPE_ID
108  U32 typeId;
109 
110  stat = buffer.deserialize(typeId);
111  if (stat != Fw::FW_SERIALIZE_OK) {
112  return stat;
113  }
114 
115  if (typeId != Buffer::TYPE_ID) {
117  }
118 #endif
119 
120  stat = buffer.deserialize(this->m_managerID);
121  if (stat != Fw::FW_SERIALIZE_OK) {
122  return stat;
123  }
124  stat = buffer.deserialize(this->m_bufferID);
125  if (stat != Fw::FW_SERIALIZE_OK) {
126  return stat;
127  }
128  stat = buffer.deserialize(this->m_data);
129  if (stat != Fw::FW_SERIALIZE_OK) {
130  return stat;
131  }
132  stat = buffer.deserialize(this->m_size);
133  if (stat != Fw::FW_SERIALIZE_OK) {
134  return stat;
135  }
136  return stat;
137 }
138 
139 #if FW_SERIALIZABLE_TO_STRING || BUILD_UT
140 
141 void Buffer::toString(Fw::StringBase& text) const {
142 
143  static const char * formatString =
144  "("
145  "managerID = %u, "
146  "bufferID = %u, "
147  "data = %lu, "
148  "size = %u"
149  ")";
150 
151  // declare strings to hold any serializable toString() arguments
152 
153 
154  char outputString[FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE];
155  (void)snprintf(outputString,FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE,formatString
156  ,this->m_managerID
157  ,this->m_bufferID
158  ,this->m_data
159  ,this->m_size
160  );
161  outputString[FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE-1] = 0; // NULL terminate
162 
163  text = outputString;
164 }
165 
166 #endif
167 
168 #ifdef BUILD_UT
169  std::ostream& operator<<(std::ostream& os, const Buffer& obj) {
171  obj.toString(str);
172  os << str.toChar();
173  return os;
174  }
175 #endif
176 } // end namespace Fw
Fw::EightyCharString::toChar
const char * toChar(void) const
gets char buffer
Definition: EightyCharString.cpp:34
BufferSerializableAc.hpp
Fw::Buffer::setsize
void setsize(U32 val)
set member size
Definition: BufferSerializableAc.cpp:74
Fw::Buffer::getsize
U32 getsize(void)
get member size
Definition: BufferSerializableAc.cpp:61
Fw::Buffer::setdata
void setdata(U64 val)
set member data
Definition: BufferSerializableAc.cpp:71
Fw::SerializeBufferBase
Definition: Serializable.hpp:43
Fw::Buffer::operator=
const Buffer & operator=(const Buffer &src)
equal operator
Definition: BufferSerializableAc.cpp:28
Fw::SerializeStatus
SerializeStatus
forward declaration for string
Definition: Serializable.hpp:14
Fw::SerializeBufferBase::serialize
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
Definition: Serializable.cpp:67
Fw::Buffer::m_bufferID
U32 m_bufferID
Definition: BufferSerializableAc.hpp:73
Fw::StringBase
Definition: StringType.hpp:23
Fw::EightyCharString
Definition: EightyCharString.hpp:10
Fw::Buffer
Definition: BufferSerializableAc.hpp:24
Fw::Buffer::set
void set(U32 managerID, U32 bufferID, U64 data, U32 size)
set values
Definition: BufferSerializableAc.cpp:42
Fw::Serializable
forward declaration
Definition: Serializable.hpp:26
Assert.hpp
Fw::FW_SERIALIZE_OK
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
Definition: Serializable.hpp:15
U64
#define U64(C)
Definition: sha.h:176
Fw::Buffer::getdata
U64 getdata(void)
get member data
Definition: BufferSerializableAc.cpp:57
EightyCharString.hpp
FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE
#define FW_SERIALIZABLE_TO_STRING_BUFFER_SIZE
Size of string to store toString() string output.
Definition: FpConfig.hpp:302
Fw::Buffer::m_managerID
U32 m_managerID
Definition: BufferSerializableAc.hpp:72
FW_ASSERT
#define FW_ASSERT(...)
Definition: Assert.hpp:9
Fw::Buffer::setbufferID
void setbufferID(U32 val)
set member bufferID
Definition: BufferSerializableAc.cpp:68
Fw::Buffer::m_data
U64 m_data
Definition: BufferSerializableAc.hpp:74
Fw::Buffer::TYPE_ID
@ TYPE_ID
type id
Definition: BufferSerializableAc.hpp:69
Fw::SerializeBufferBase::deserialize
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Definition: Serializable.cpp:292
Fw::Buffer::serialize
Fw::SerializeStatus serialize(Fw::SerializeBufferBase &buffer) const
serialization function
Definition: BufferSerializableAc.cpp:77
Fw::FW_DESERIALIZE_TYPE_MISMATCH
@ FW_DESERIALIZE_TYPE_MISMATCH
Deserialized type ID didn't match.
Definition: Serializable.hpp:21
Fw::Buffer::getmanagerID
U32 getmanagerID(void)
get member managerID
Definition: BufferSerializableAc.cpp:49
BasicTypes.hpp
Declares ISF basic types.
Fw::Buffer::operator==
bool operator==(const Buffer &src) const
equality operator
Definition: BufferSerializableAc.cpp:33
Fw::Buffer::m_size
U32 m_size
Definition: BufferSerializableAc.hpp:75
Fw::Buffer::setmanagerID
void setmanagerID(U32 val)
set member managerID
Definition: BufferSerializableAc.cpp:65
Fw::Buffer::Buffer
Buffer(void)
Default constructor.
Definition: BufferSerializableAc.cpp:11
Fw::Buffer::deserialize
Fw::SerializeStatus deserialize(Fw::SerializeBufferBase &buffer)
deserialization function
Definition: BufferSerializableAc.cpp:104
Fw
Definition: BufferGetPortAc.cpp:6
Fw::Buffer::getbufferID
U32 getbufferID(void)
get member bufferID
Definition: BufferSerializableAc.cpp:53