F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
DpRequestPortAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title DpRequestPortAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for DpRequest 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 DpRequestPortBuffer : public Fw::SerializeBufferBase {
20 
21  public:
22 
23  Fw::Serializable::SizeType getBuffCapacity() 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  FwSizeType dataSize
79  )
80  {
81 #if FW_PORT_TRACING == 1
82  this->trace();
83 #endif
84 
85  FW_ASSERT(this->m_comp != nullptr);
86  FW_ASSERT(this->m_func != nullptr);
87 
88  return this->m_func(this->m_comp, this->m_portNum, id, dataSize);
89  }
90 
91 #if FW_PORT_SERIALIZATION == 1
92 
93  Fw::SerializeStatus InputDpRequestPort ::
94  invokeSerial(Fw::SerializeBufferBase& _buffer)
95  {
96  Fw::SerializeStatus _status;
97 
98 #if FW_PORT_TRACING == 1
99  this->trace();
100 #endif
101 
102  FW_ASSERT(this->m_comp != nullptr);
103  FW_ASSERT(this->m_func != nullptr);
104 
105  FwDpIdType id;
106  _status = _buffer.deserializeTo(id);
107  if (_status != Fw::FW_SERIALIZE_OK) {
108  return _status;
109  }
110 
111  FwSizeType dataSize;
112  _status = _buffer.deserializeTo(dataSize);
113  if (_status != Fw::FW_SERIALIZE_OK) {
114  return _status;
115  }
116 
117  this->m_func(this->m_comp, this->m_portNum, id, dataSize);
118 
119  return Fw::FW_SERIALIZE_OK;
120  }
121 
122 #endif
123 
124  // ----------------------------------------------------------------------
125  // Output Port Member functions
126  // ----------------------------------------------------------------------
127 
130  Fw::OutputPortBase(),
131  m_port(nullptr)
132  {
133 
134  }
135 
138  {
140  }
141 
144  {
145  FW_ASSERT(callPort != nullptr);
146 
147  this->m_port = callPort;
148  this->m_connObj = callPort;
149 
150 #if FW_PORT_SERIALIZATION == 1
151  this->m_serPort = nullptr;
152 #endif
153  }
154 
157  FwDpIdType id,
158  FwSizeType dataSize
159  ) const
160  {
161 #if FW_PORT_TRACING == 1
162  this->trace();
163 #endif
164 
165 #if FW_PORT_SERIALIZATION
166  FW_ASSERT((this->m_port != nullptr) || (this->m_serPort != nullptr));
167 
168  if (this->m_port != nullptr) {
169  this->m_port->invoke(id, dataSize);
170  }
171  else {
172  Fw::SerializeStatus _status;
173  DpRequestPortBuffer _buffer;
174 
175  _status = _buffer.serializeFrom(id);
176  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
177 
178  _status = _buffer.serializeFrom(dataSize);
179  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
180 
181  _status = this->m_serPort->invokeSerial(_buffer);
182  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
183  }
184 #else
185  FW_ASSERT(this->m_port != nullptr);
186  this->m_port->invoke(id, dataSize);
187 #endif
188  }
189 
190 }
Serialization/Deserialization operation was successful.
void invoke(FwDpIdType id, FwSizeType dataSize)
Invoke a port interface.
PlatformSizeType FwSizeType
FwIndexType m_portNum
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
void init()
Initialization function.
void addCallPort(InputDpRequestPort *callPort)
Register an input port.
The size of the serial representations of the port arguments.
SerializeStatus
forward declaration for string
OutputDpRequestPort()
Constructor.
void init() override
FwSizeType SizeType
InputDpRequestPort()
Constructor.
void invoke(FwDpIdType id, FwSizeType dataSize) const
Invoke a port interface.
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
void init()
Initialization function.
FwIdType FwDpIdType
The type of a data product identifier.
PassiveComponentBase * m_comp
void init() override
Fw::ObjBase * m_connObj
Definition: PortBase.hpp:34
#define FW_ASSERT(...)
Definition: Assert.hpp:14
SerializeStatus deserializeTo(U8 &val)
deserialize 8-bit unsigned int