F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SchedPortAc.cpp
Go to the documentation of this file.
1// ======================================================================
2// \title SchedPortAc.cpp
3// \author Generated by fpp-to-cpp
4// \brief cpp file for Sched port
5// ======================================================================
6
8#include "Fw/Types/Assert.hpp"
10
11namespace Svc {
12
13 namespace {
14
15 // ----------------------------------------------------------------------
16 // Port buffer class
17 // ----------------------------------------------------------------------
18
19 class SchedPortBuffer : public Fw::SerializeBufferBase {
20
21 public:
22
23 NATIVE_UINT_TYPE 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
47 InputSchedPort ::
48 InputSchedPort() :
49 Fw::InputPortBase(),
50 m_func(nullptr)
51 {
52
53 }
54
55 void InputSchedPort ::
56 init()
57 {
59 }
60
61 void InputSchedPort ::
62 addCallComp(
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 InputSchedPort ::
76 invoke(NATIVE_UINT_TYPE context)
77 {
78#if FW_PORT_TRACING == 1
79 this->trace();
80#endif
81
82 FW_ASSERT(this->m_comp != nullptr);
83 FW_ASSERT(this->m_func != nullptr);
84
85 return this->m_func(this->m_comp, this->m_portNum, context);
86 }
87
88#if FW_PORT_SERIALIZATION == 1
89
90 Fw::SerializeStatus InputSchedPort ::
91 invokeSerial(Fw::SerializeBufferBase& _buffer)
92 {
93 Fw::SerializeStatus _status;
94
95#if FW_PORT_TRACING == 1
96 this->trace();
97#endif
98
99 FW_ASSERT(this->m_comp != nullptr);
100 FW_ASSERT(this->m_func != nullptr);
101
102 NATIVE_UINT_TYPE context;
103 _status = _buffer.deserialize(context);
104 if (_status != Fw::FW_SERIALIZE_OK) {
105 return _status;
106 }
107
108 this->m_func(this->m_comp, this->m_portNum, context);
109
110 return Fw::FW_SERIALIZE_OK;
111 }
112
113#endif
114
115 // ----------------------------------------------------------------------
116 // Output Port Member functions
117 // ----------------------------------------------------------------------
118
119 OutputSchedPort ::
120 OutputSchedPort() :
121 Fw::OutputPortBase(),
122 m_port(nullptr)
123 {
124
125 }
126
127 void OutputSchedPort ::
128 init()
129 {
131 }
132
133 void OutputSchedPort ::
134 addCallPort(InputSchedPort* callPort)
135 {
136 FW_ASSERT(callPort != nullptr);
137
138 this->m_port = callPort;
139 this->m_connObj = callPort;
140
141#if FW_PORT_SERIALIZATION == 1
142 this->m_serPort = nullptr;
143#endif
144 }
145
146 void OutputSchedPort ::
147 invoke(NATIVE_UINT_TYPE context)
148 {
149#if FW_PORT_TRACING == 1
150 this->trace();
151#endif
152
153#if FW_PORT_SERIALIZATION
154 FW_ASSERT((this->m_port != nullptr) || (this->m_serPort != nullptr));
155
156 if (this->m_port != nullptr) {
157 this->m_port->invoke(context);
158 }
159 else {
160 Fw::SerializeStatus _status;
161 SchedPortBuffer _buffer;
162
163 _status = _buffer.serialize(context);
164 FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
165
166 _status = this->m_serPort->invokeSerial(_buffer);
167 FW_ASSERT(_status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(_status));
168 }
169#else
170 FW_ASSERT(this->m_port != nullptr);
171 this->m_port->invoke(context);
172#endif
173 }
174
175}
#define FW_ASSERT(...)
Definition Assert.hpp:7
uint8_t U8
8-bit unsigned integer
Definition BasicTypes.h:26
PlatformUIntType NATIVE_UINT_TYPE
Definition BasicTypes.h:52
PlatformAssertArgType FwAssertArgType
Definition FpConfig.h:21
virtual void init()
virtual void init()
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
@ SERIALIZED_SIZE
The size of the serial representations of the port arguments.
SerializeStatus
forward declaration for string
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.