F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
LogPortAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title LogPortAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for Log 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 LogPortBuffer : 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 
48  InputLogPort() :
49  Fw::InputPortBase(),
50  m_func(nullptr)
51  {
52 
53  }
54 
56  init()
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 
76  invoke(
77  FwEventIdType id,
78  Fw::Time& timeTag,
79  const Fw::LogSeverity& severity,
80  Fw::LogBuffer& args
81  )
82  {
83 #if FW_PORT_TRACING == 1
84  this->trace();
85 #endif
86 
87  FW_ASSERT(this->m_comp != nullptr);
88  FW_ASSERT(this->m_func != nullptr);
89 
90  return this->m_func(this->m_comp, this->m_portNum, id, timeTag, severity, args);
91  }
92 
93 #if FW_PORT_SERIALIZATION == 1
94 
95  Fw::SerializeStatus InputLogPort ::
96  invokeSerial(Fw::SerializeBufferBase& _buffer)
97  {
98  Fw::SerializeStatus _status;
99 
100 #if FW_PORT_TRACING == 1
101  this->trace();
102 #endif
103 
104  FW_ASSERT(this->m_comp != nullptr);
105  FW_ASSERT(this->m_func != nullptr);
106 
107  FwEventIdType id;
108  _status = _buffer.deserialize(id);
109  if (_status != Fw::FW_SERIALIZE_OK) {
110  return _status;
111  }
112 
113  Fw::Time timeTag;
114  _status = _buffer.deserialize(timeTag);
115  if (_status != Fw::FW_SERIALIZE_OK) {
116  return _status;
117  }
118 
119  Fw::LogSeverity severity;
120  _status = _buffer.deserialize(severity);
121  if (_status != Fw::FW_SERIALIZE_OK) {
122  return _status;
123  }
124 
125  Fw::LogBuffer args;
126  _status = _buffer.deserialize(args);
127  if (_status != Fw::FW_SERIALIZE_OK) {
128  return _status;
129  }
130 
131  this->m_func(this->m_comp, this->m_portNum, id, timeTag, severity, args);
132 
133  return Fw::FW_SERIALIZE_OK;
134  }
135 
136 #endif
137 
138  // ----------------------------------------------------------------------
139  // Output Port Member functions
140  // ----------------------------------------------------------------------
141 
143  OutputLogPort() :
144  Fw::OutputPortBase(),
145  m_port(nullptr)
146  {
147 
148  }
149 
151  init()
152  {
154  }
155 
157  addCallPort(InputLogPort* callPort)
158  {
159  FW_ASSERT(callPort != nullptr);
160 
161  this->m_port = callPort;
162  this->m_connObj = callPort;
163 
164 #if FW_PORT_SERIALIZATION == 1
165  this->m_serPort = nullptr;
166 #endif
167  }
168 
170  invoke(
171  FwEventIdType id,
172  Fw::Time& timeTag,
173  const Fw::LogSeverity& severity,
174  Fw::LogBuffer& args
175  )
176  {
177 #if FW_PORT_TRACING == 1
178  this->trace();
179 #endif
180 
181 #if FW_PORT_SERIALIZATION
182  FW_ASSERT((this->m_port != nullptr) || (this->m_serPort != nullptr));
183 
184  if (this->m_port != nullptr) {
185  this->m_port->invoke(id, timeTag, severity, args);
186  }
187  else {
188  Fw::SerializeStatus _status;
189  LogPortBuffer _buffer;
190 
191  _status = _buffer.serialize(id);
192  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
193 
194  _status = _buffer.serialize(timeTag);
195  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
196 
197  _status = _buffer.serialize(severity);
198  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
199 
200  _status = _buffer.serialize(args);
201  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
202 
203  _status = this->m_serPort->invokeSerial(_buffer);
204  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
205  }
206 #else
207  FW_ASSERT(this->m_port != nullptr);
208  this->m_port->invoke(id, timeTag, severity, args);
209 #endif
210  }
211 
212 }
#define FW_ASSERT(...)
Definition: Assert.hpp:14
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:30
PlatformAssertArgType FwAssertArgType
Definition: FpConfig.h:39
U32 FwEventIdType
Definition: FpConfig.h:103
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Definition: LogPortAc.cpp:62
void init()
Initialization function.
Definition: LogPortAc.cpp:56
@ SERIALIZED_SIZE
The size of the serial representations of the port arguments.
Definition: LogPortAc.hpp:39
InputLogPort()
Constructor.
Definition: LogPortAc.cpp:48
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args)
Invoke a port interface.
Definition: LogPortAc.cpp:76
NATIVE_INT_TYPE m_portNum
virtual void init()
PassiveComponentBase * m_comp
Enum representing event severity.
OutputLogPort()
Constructor.
Definition: LogPortAc.cpp:143
void init()
Initialization function.
Definition: LogPortAc.cpp:151
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args)
Invoke a port interface.
Definition: LogPortAc.cpp:170
void addCallPort(InputLogPort *callPort)
Register an input port.
Definition: LogPortAc.cpp:157
virtual void init()
Fw::ObjBase * m_connObj
Definition: PortBase.hpp:33
NATIVE_UINT_TYPE SizeType
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
Definition: Time.hpp:9
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.