F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
DpResponsePortAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title DpResponsePortAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for DpResponse port
5 // ======================================================================
6 
8 #include "Fw/Types/Assert.hpp"
10 
11 namespace Fw {
12 
13  namespace {
14 
15  // ----------------------------------------------------------------------
16  // Port buffer class
17  // ----------------------------------------------------------------------
18 
19  class DpResponsePortBuffer : public Fw::LinearBufferBase {
20 
21  public:
22 
23  Fw::Serializable::SizeType getCapacity() const {
25  }
26 
27  U8* getBuffAddr() {
28  return m_buff;
29  }
30 
31  const U8* getBuffAddr() const {
32  return m_buff;
33  }
34 
35  private:
36 
38 
39  };
40 
41  }
42 
43  // ----------------------------------------------------------------------
44  // Input Port Member functions
45  // ----------------------------------------------------------------------
46 
49  Fw::InputPortBase(),
50  m_func(nullptr)
51  {
52 
53  }
54 
57  {
59  }
60 
63  Fw::PassiveComponentBase* callComp,
64  CompFuncPtr funcPtr
65  )
66  {
67  FW_ASSERT(callComp != nullptr);
68  FW_ASSERT(funcPtr != nullptr);
69 
70  this->m_comp = callComp;
71  this->m_func = funcPtr;
72  this->m_connObj = callComp;
73  }
74 
77  FwDpIdType id,
78  const Fw::Buffer& buffer,
79  const Fw::Success& status
80  )
81  {
82 #if FW_PORT_TRACING == 1
83  this->trace();
84 #endif
85 
86  FW_ASSERT(this->m_comp != nullptr);
87  FW_ASSERT(this->m_func != nullptr);
88 
89  return this->m_func(this->m_comp, this->m_portNum, id, buffer, status);
90  }
91 
92 #if FW_PORT_SERIALIZATION == 1
93 
94  Fw::SerializeStatus InputDpResponsePort ::
95  invokeSerial(Fw::LinearBufferBase& _buffer)
96  {
97  Fw::SerializeStatus _status;
98 
99 #if FW_PORT_TRACING == 1
100  this->trace();
101 #endif
102 
103  FW_ASSERT(this->m_comp != nullptr);
104  FW_ASSERT(this->m_func != nullptr);
105 
106  FwDpIdType id;
107  _status = _buffer.deserializeTo(id);
108  if (_status != Fw::FW_SERIALIZE_OK) {
109  return _status;
110  }
111 
112  Fw::Buffer buffer;
113  _status = _buffer.deserializeTo(buffer);
114  if (_status != Fw::FW_SERIALIZE_OK) {
115  return _status;
116  }
117 
118  Fw::Success status;
119  _status = _buffer.deserializeTo(status);
120  if (_status != Fw::FW_SERIALIZE_OK) {
121  return _status;
122  }
123 
124  this->m_func(this->m_comp, this->m_portNum, id, buffer, status);
125 
126  return Fw::FW_SERIALIZE_OK;
127  }
128 
129 #endif
130 
131  // ----------------------------------------------------------------------
132  // Output Port Member functions
133  // ----------------------------------------------------------------------
134 
137  Fw::OutputPortBase(),
138  m_port(nullptr)
139  {
140 
141  }
142 
145  {
147  }
148 
151  {
152  FW_ASSERT(callPort != nullptr);
153 
154  this->m_port = callPort;
155  this->m_connObj = callPort;
156 
157 #if FW_PORT_SERIALIZATION == 1
158  this->m_serPort = nullptr;
159 #endif
160  }
161 
164  FwDpIdType id,
165  const Fw::Buffer& buffer,
166  const Fw::Success& status
167  ) const
168  {
169 #if FW_PORT_TRACING == 1
170  this->trace();
171 #endif
172 
173 #if FW_PORT_SERIALIZATION
174  FW_ASSERT((this->m_port != nullptr) || (this->m_serPort != nullptr));
175 
176  if (this->m_port != nullptr) {
177  this->m_port->invoke(id, buffer, status);
178  }
179  else {
180  Fw::SerializeStatus _status;
181  DpResponsePortBuffer _buffer;
182 
183  _status = _buffer.serializeFrom(id);
184  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
185 
186  _status = _buffer.serializeFrom(buffer);
187  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
188 
189  _status = _buffer.serializeFrom(status);
190  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
191 
192  _status = this->m_serPort->invokeSerial(_buffer);
193  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
194  }
195 #else
196  FW_ASSERT(this->m_port != nullptr);
197  this->m_port->invoke(id, buffer, status);
198 #endif
199  }
200 
201 }
Serialization/Deserialization operation was successful.
InputDpResponsePort()
Constructor.
FwIndexType m_portNum
OutputDpResponsePort()
Constructor.
void addCallPort(InputDpResponsePort *callPort)
Register an input port.
void invoke(FwDpIdType id, const Fw::Buffer &buffer, const Fw::Success &status) const
Invoke a port interface.
SerializeStatus
forward declaration for string
void init()
Initialization function.
void init() override
void init()
Initialization function.
FwSizeType SizeType
The size of the serial representations of the port arguments.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
void invoke(FwDpIdType id, const Fw::Buffer &buffer, const Fw::Success &status)
Invoke a port interface.
FwIdType FwDpIdType
The type of a data product identifier.
PassiveComponentBase * m_comp
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
void init() override
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG) override
Deserialize an 8-bit unsigned integer value.
Implementation of malloc based allocator.
Fw::ObjBase * m_connObj
Definition: PortBase.hpp:34
#define FW_ASSERT(...)
Definition: Assert.hpp:14
Success/Failure.