F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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