F´ Flight Software - C/C++ Documentation  NASA-v1.5.0
A framework for building embedded system applications to NASA flight quality standards.
BufferSerializableAc.hpp
Go to the documentation of this file.
1 /*
2  * Buffer.hpp
3  *
4  * Created on: Wednesday, 14 October 2020
5  * Author: mstarch
6  *
7  */
8 #ifndef BUFFER_HPP_
9 #define BUFFER_HPP_
10 
11 #include <Fw/Types/BasicTypes.hpp>
13 #if FW_SERIALIZABLE_TO_STRING
14 #include <Fw/Types/StringType.hpp>
15 #include <stdio.h> // snprintf
16 #ifdef BUILD_UT
17 #include <iostream>
19 #endif
20 #endif
21 
22 namespace Fw {
23 
24 class Buffer : public Fw::Serializable {
25 
26 
27 public:
28 
29  enum {
31  sizeof(U32) +
32  sizeof(U32) +
33  sizeof(U64) +
34  sizeof(U32)
35  };
36 
37  Buffer(void);
38  Buffer(const Buffer* src);
39  Buffer(const Buffer& src);
40  Buffer(U32 managerID, U32 bufferID, U64 data, U32 size);
41  const Buffer& operator=(const Buffer& src);
42  bool operator==(const Buffer& src) const;
43 #ifdef BUILD_UT
44  // to support GoogleTest framework in unit tests
45  friend std::ostream& operator<<(std::ostream& os, const Buffer& obj);
46 #endif
47 
48  void set(U32 managerID, U32 bufferID, U64 data, U32 size);
49 
50  U32 getmanagerID(void);
51  U32 getbufferID(void);
52  U64 getdata(void);
53  U32 getsize(void);
54 
55  void setmanagerID(U32 val);
56  void setbufferID(U32 val);
57  void setdata(U64 val);
58  void setsize(U32 val);
59 
60 
63 #if FW_SERIALIZABLE_TO_STRING || BUILD_UT
64  void toString(Fw::StringBase& text) const;
65 #endif
66 protected:
67 
68  enum {
69  TYPE_ID = 0xA4583D9C
70  };
71 
72  U32 m_managerID; //<! managerID - The ID of the buffer manager that allocated this buffer
73  U32 m_bufferID; //<! bufferID - The ID of this buffer
74  U64 m_data; //<! data - A pointer to the data
75  U32 m_size; //<! size - The data size in bytes
76 private:
77 
78 };
79 } // end namespace Fw
80 #endif /* BUFFER_HPP_ */
81 
StringType.hpp
Declares ISF string base class.
Fw::Buffer::SERIALIZED_SIZE
@ SERIALIZED_SIZE
Definition: BufferSerializableAc.hpp:30
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
Serializable.hpp
Fw::Buffer::m_bufferID
U32 m_bufferID
Definition: BufferSerializableAc.hpp:73
Fw::StringBase
Definition: StringType.hpp:23
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
U64
#define U64(C)
Definition: sha.h:176
Fw::Buffer::getdata
U64 getdata(void)
get member data
Definition: BufferSerializableAc.cpp:57
EightyCharString.hpp
Fw::Buffer::m_managerID
U32 m_managerID
Definition: BufferSerializableAc.hpp:72
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::Buffer::serialize
Fw::SerializeStatus serialize(Fw::SerializeBufferBase &buffer) const
serialization function
Definition: BufferSerializableAc.cpp:77
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