F´ Flight Software - C/C++ Documentation devel
A framework for building embedded system applications to NASA flight quality standards.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
UdpComponentAc.hpp
Go to the documentation of this file.
1// ======================================================================
2// \title UdpComponentAc.hpp
3// \author Generated by fpp-to-cpp
4// \brief hpp file for Udp component base class
5// ======================================================================
6
7#ifndef Drv_UdpComponentAc_HPP
8#define Drv_UdpComponentAc_HPP
9
13#include "FpConfig.hpp"
19#include "Os/Mutex.hpp"
20
21namespace Drv {
22
27 {
28
29 // ----------------------------------------------------------------------
30 // Friend classes
31 // ----------------------------------------------------------------------
32
35
36 PROTECTED:
37
38 // ----------------------------------------------------------------------
39 // Constants
40 // ----------------------------------------------------------------------
41
43 enum {
45 };
46
48 enum {
53 };
54
55 public:
56
57 // ----------------------------------------------------------------------
58 // Component initialization
59 // ----------------------------------------------------------------------
60
62 void init(
63 NATIVE_INT_TYPE instance = 0
64 );
65
66 public:
67
68 // ----------------------------------------------------------------------
69 // Getters for typed input ports
70 // ----------------------------------------------------------------------
71
76 NATIVE_INT_TYPE portNum
77 );
78
79 public:
80
81 // ----------------------------------------------------------------------
82 // Connect typed input ports to typed output ports
83 // ----------------------------------------------------------------------
84
87 NATIVE_INT_TYPE portNum,
89 );
90
93 NATIVE_INT_TYPE portNum,
95 );
96
99 NATIVE_INT_TYPE portNum,
101 );
102
105 NATIVE_INT_TYPE portNum,
107 );
108
109#if FW_PORT_SERIALIZATION
110
111 public:
112
113 // ----------------------------------------------------------------------
114 // Connect serial input ports to typed output ports
115 // ----------------------------------------------------------------------
116
119 NATIVE_INT_TYPE portNum,
120 Fw::InputSerializePort* port
121 );
122
125 NATIVE_INT_TYPE portNum,
126 Fw::InputSerializePort* port
127 );
128
131 NATIVE_INT_TYPE portNum,
132 Fw::InputSerializePort* port
133 );
134
135#endif
136
137 PROTECTED:
138
139 // ----------------------------------------------------------------------
140 // Component construction and destruction
141 // ----------------------------------------------------------------------
142
145 const char* compName = ""
146 );
147
149 virtual ~UdpComponentBase();
150
151 PROTECTED:
152
153 // ----------------------------------------------------------------------
154 // Getters for numbers of typed input ports
155 // ----------------------------------------------------------------------
156
161
162 PROTECTED:
163
164 // ----------------------------------------------------------------------
165 // Getters for numbers of typed output ports
166 // ----------------------------------------------------------------------
167
172
177
182
187
188 PROTECTED:
189
190 // ----------------------------------------------------------------------
191 // Connection status queries for typed output ports
192 // ----------------------------------------------------------------------
193
198 NATIVE_INT_TYPE portNum
199 );
200
205 NATIVE_INT_TYPE portNum
206 );
207
212 NATIVE_INT_TYPE portNum
213 );
214
219 NATIVE_INT_TYPE portNum
220 );
221
222 PROTECTED:
223
224 // ----------------------------------------------------------------------
225 // Handlers to implement for typed input ports
226 // ----------------------------------------------------------------------
227
230 NATIVE_INT_TYPE portNum,
231 Fw::Buffer& sendBuffer
232 ) = 0;
233
234 PROTECTED:
235
236 // ----------------------------------------------------------------------
237 // Port handler base-class functions for typed input ports
238 //
239 // Call these functions directly to bypass the corresponding ports
240 // ----------------------------------------------------------------------
241
244 NATIVE_INT_TYPE portNum,
245 Fw::Buffer& sendBuffer
246 );
247
248 PROTECTED:
249
250 // ----------------------------------------------------------------------
251 // Invocation functions for typed output ports
252 // ----------------------------------------------------------------------
253
256 NATIVE_INT_TYPE portNum,
257 U32 size
258 );
259
261 void deallocate_out(
262 NATIVE_INT_TYPE portNum,
263 Fw::Buffer& fwBuffer
264 );
265
267 void ready_out(
268 NATIVE_INT_TYPE portNum
269 );
270
272 void recv_out(
273 NATIVE_INT_TYPE portNum,
274 Fw::Buffer& recvBuffer,
275 const Drv::RecvStatus& recvStatus
276 );
277
278 PROTECTED:
279
280 // ----------------------------------------------------------------------
281 // Mutex operations for guarded ports
282 //
283 // You can override these operations to provide more sophisticated
284 // synchronization
285 // ----------------------------------------------------------------------
286
288 virtual void lock();
289
291 virtual void unLock();
292
293 PRIVATE:
294
295 // ----------------------------------------------------------------------
296 // Calls for messages received on typed input ports
297 // ----------------------------------------------------------------------
298
300 static Drv::SendStatus m_p_send_in(
301 Fw::PassiveComponentBase* callComp,
302 NATIVE_INT_TYPE portNum,
303 Fw::Buffer& sendBuffer
304 );
305
306 PRIVATE:
307
308 // ----------------------------------------------------------------------
309 // Typed input ports
310 // ----------------------------------------------------------------------
311
314
315 PRIVATE:
316
317 // ----------------------------------------------------------------------
318 // Typed output ports
319 // ----------------------------------------------------------------------
320
323
326
329
332
333 PRIVATE:
334
335 // ----------------------------------------------------------------------
336 // Mutexes
337 // ----------------------------------------------------------------------
338
340 Os::Mutex m_guardedPortMutex;
341
342 };
343
344}
345
346#endif
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
C++-compatible configuration header for fprime configuration.
Status associated with the received data.
Status returned by the send call.
Auto-generated base for Udp component.
bool isConnected_deallocate_OutputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_send_InputPorts() const
virtual void unLock()
Unlock the guarded mutex.
void recv_out(NATIVE_INT_TYPE portNum, Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)
Invoke output port recv.
Fw::Buffer allocate_out(NATIVE_INT_TYPE portNum, U32 size)
Invoke output port allocate.
Drv::InputByteStreamSendPort * get_send_InputPort(NATIVE_INT_TYPE portNum)
void set_recv_OutputPort(NATIVE_INT_TYPE portNum, Drv::InputByteStreamRecvPort *port)
Connect port to recv[portNum].
NATIVE_INT_TYPE getNum_deallocate_OutputPorts() const
Drv::SendStatus send_handlerBase(NATIVE_INT_TYPE portNum, Fw::Buffer &sendBuffer)
Handler base-class function for input port send.
bool isConnected_recv_OutputPort(NATIVE_INT_TYPE portNum)
virtual ~UdpComponentBase()
Destroy UdpComponentBase object.
NATIVE_INT_TYPE getNum_ready_OutputPorts() const
void ready_out(NATIVE_INT_TYPE portNum)
Invoke output port ready.
void set_deallocate_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to deallocate[portNum].
virtual void lock()
Lock the guarded mutex.
bool isConnected_ready_OutputPort(NATIVE_INT_TYPE portNum)
bool isConnected_allocate_OutputPort(NATIVE_INT_TYPE portNum)
friend class UdpComponentBaseFriend
Friend class for white-box testing.
virtual Drv::SendStatus send_handler(NATIVE_INT_TYPE portNum, Fw::Buffer &sendBuffer)=0
Handler for input port send.
void deallocate_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port deallocate.
NATIVE_INT_TYPE getNum_recv_OutputPorts() const
void set_allocate_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferGetPort *port)
Connect port to allocate[portNum].
UdpComponentBase(const char *compName="")
Construct UdpComponentBase object.
void set_ready_OutputPort(NATIVE_INT_TYPE portNum, Drv::InputByteStreamReadyPort *port)
Connect port to ready[portNum].
NATIVE_INT_TYPE getNum_allocate_OutputPorts() const
Input BufferGet port.
Input BufferSend port.
void init()
Object initializer.
Definition ObjBase.cpp:27
Output BufferGet port.
Output BufferSend port.