F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 
7 #include "Fw/Log/LogPortAc.hpp"
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 
49  Fw::InputPortBase(),
50  m_func(nullptr)
51  {
52 
53  }
54 
55  void InputLogPort ::
57  {
59  }
60 
61  void InputLogPort ::
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 
75  void InputLogPort ::
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.deserializeTo(id);
109  if (_status != Fw::FW_SERIALIZE_OK) {
110  return _status;
111  }
112 
113  Fw::Time timeTag;
114  _status = _buffer.deserializeTo(timeTag);
115  if (_status != Fw::FW_SERIALIZE_OK) {
116  return _status;
117  }
118 
119  Fw::LogSeverity severity;
120  _status = _buffer.deserializeTo(severity);
121  if (_status != Fw::FW_SERIALIZE_OK) {
122  return _status;
123  }
124 
125  Fw::LogBuffer args;
126  _status = _buffer.deserializeTo(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 
144  Fw::OutputPortBase(),
145  m_port(nullptr)
146  {
147 
148  }
149 
150  void OutputLogPort ::
152  {
154  }
155 
156  void OutputLogPort ::
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 
169  void OutputLogPort ::
171  FwEventIdType id,
172  Fw::Time& timeTag,
173  const Fw::LogSeverity& severity,
174  Fw::LogBuffer& args
175  ) const
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.serializeFrom(id);
192  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
193 
194  _status = _buffer.serializeFrom(timeTag);
195  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
196 
197  _status = _buffer.serializeFrom(severity);
198  FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
199 
200  _status = _buffer.serializeFrom(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 }
Serialization/Deserialization operation was successful.
FwIndexType m_portNum
SerializeStatus deserializeTo(U8 &val, Endianness mode=Endianness::BIG)
deserialize 8-bit unsigned int
The size of the serial representations of the port arguments.
Definition: LogPortAc.hpp:40
SerializeStatus
forward declaration for string
FwIdType FwEventIdType
The type of an event identifier.
void init()
Initialization function.
Definition: LogPortAc.cpp:56
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args)
Invoke a port interface.
Definition: LogPortAc.cpp:76
void init() override
FwSizeType SizeType
Enum representing event severity.
void init()
Initialization function.
Definition: LogPortAc.cpp:151
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
Definition: LogPortAc.cpp:62
uint8_t U8
8-bit unsigned integer
Definition: BasicTypes.h:53
InputLogPort()
Constructor.
Definition: LogPortAc.cpp:48
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port interface.
Definition: LogPortAc.cpp:170
OutputLogPort()
Constructor.
Definition: LogPortAc.cpp:143
PassiveComponentBase * m_comp
void addCallPort(InputLogPort *callPort)
Register an input port.
Definition: LogPortAc.cpp:157
void init() override
Implementation of malloc based allocator.
Fw::ObjBase * m_connObj
Definition: PortBase.hpp:34
#define FW_ASSERT(...)
Definition: Assert.hpp:14