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
FramerComponentAc.hpp
Go to the documentation of this file.
1// ======================================================================
2// \title FramerComponentAc.hpp
3// \author Generated by fpp-to-cpp
4// \brief hpp file for Framer component base class
5// ======================================================================
6
7#ifndef Svc_FramerComponentAc_HPP
8#define Svc_FramerComponentAc_HPP
9
11#include "FpConfig.hpp"
14#include "Fw/Com/ComPortAc.hpp"
19#include "Os/Mutex.hpp"
20
21namespace Svc {
22
29 {
30
31 // ----------------------------------------------------------------------
32 // Friend classes
33 // ----------------------------------------------------------------------
34
37
38 PROTECTED:
39
40 // ----------------------------------------------------------------------
41 // Constants
42 // ----------------------------------------------------------------------
43
45 enum {
49 };
50
52 enum {
57 };
58
59 public:
60
61 // ----------------------------------------------------------------------
62 // Component initialization
63 // ----------------------------------------------------------------------
64
66 void init(
67 NATIVE_INT_TYPE instance = 0
68 );
69
70 public:
71
72 // ----------------------------------------------------------------------
73 // Getters for typed input ports
74 // ----------------------------------------------------------------------
75
80 NATIVE_INT_TYPE portNum
81 );
82
87 NATIVE_INT_TYPE portNum
88 );
89
94 NATIVE_INT_TYPE portNum
95 );
96
97 public:
98
99 // ----------------------------------------------------------------------
100 // Connect typed input ports to typed output ports
101 // ----------------------------------------------------------------------
102
105 NATIVE_INT_TYPE portNum,
107 );
108
111 NATIVE_INT_TYPE portNum,
113 );
114
117 NATIVE_INT_TYPE portNum,
119 );
120
123 NATIVE_INT_TYPE portNum,
125 );
126
127#if FW_PORT_SERIALIZATION
128
129 public:
130
131 // ----------------------------------------------------------------------
132 // Connect serial input ports to typed output ports
133 // ----------------------------------------------------------------------
134
137 NATIVE_INT_TYPE portNum,
138 Fw::InputSerializePort* port
139 );
140
143 NATIVE_INT_TYPE portNum,
144 Fw::InputSerializePort* port
145 );
146
147#endif
148
149 PROTECTED:
150
151 // ----------------------------------------------------------------------
152 // Component construction and destruction
153 // ----------------------------------------------------------------------
154
157 const char* compName = ""
158 );
159
161 virtual ~FramerComponentBase();
162
163 PROTECTED:
164
165 // ----------------------------------------------------------------------
166 // Getters for numbers of typed input ports
167 // ----------------------------------------------------------------------
168
173
178
183
184 PROTECTED:
185
186 // ----------------------------------------------------------------------
187 // Getters for numbers of typed output ports
188 // ----------------------------------------------------------------------
189
194
199
204
209
210 PROTECTED:
211
212 // ----------------------------------------------------------------------
213 // Connection status queries for typed output ports
214 // ----------------------------------------------------------------------
215
220 NATIVE_INT_TYPE portNum
221 );
222
227 NATIVE_INT_TYPE portNum
228 );
229
234 NATIVE_INT_TYPE portNum
235 );
236
241 NATIVE_INT_TYPE portNum
242 );
243
244 PROTECTED:
245
246 // ----------------------------------------------------------------------
247 // Handlers to implement for typed input ports
248 // ----------------------------------------------------------------------
249
251 virtual void bufferIn_handler(
252 NATIVE_INT_TYPE portNum,
253 Fw::Buffer& fwBuffer
254 ) = 0;
255
257 virtual void comIn_handler(
258 NATIVE_INT_TYPE portNum,
259 Fw::ComBuffer& data,
260 U32 context
261 ) = 0;
262
265 NATIVE_INT_TYPE portNum,
266 Fw::Success& condition
267 ) = 0;
268
269 PROTECTED:
270
271 // ----------------------------------------------------------------------
272 // Port handler base-class functions for typed input ports
273 //
274 // Call these functions directly to bypass the corresponding ports
275 // ----------------------------------------------------------------------
276
279 NATIVE_INT_TYPE portNum,
280 Fw::Buffer& fwBuffer
281 );
282
285 NATIVE_INT_TYPE portNum,
286 Fw::ComBuffer& data,
287 U32 context
288 );
289
292 NATIVE_INT_TYPE portNum,
293 Fw::Success& condition
294 );
295
296 PROTECTED:
297
298 // ----------------------------------------------------------------------
299 // Invocation functions for typed output ports
300 // ----------------------------------------------------------------------
301
304 NATIVE_INT_TYPE portNum,
305 Fw::Buffer& fwBuffer
306 );
307
309 void comStatusOut_out(
310 NATIVE_INT_TYPE portNum,
311 Fw::Success& condition
312 );
313
316 NATIVE_INT_TYPE portNum,
317 U32 size
318 );
319
322 NATIVE_INT_TYPE portNum,
323 Fw::Buffer& sendBuffer
324 );
325
326 PROTECTED:
327
328 // ----------------------------------------------------------------------
329 // Mutex operations for guarded ports
330 //
331 // You can override these operations to provide more sophisticated
332 // synchronization
333 // ----------------------------------------------------------------------
334
336 virtual void lock();
337
339 virtual void unLock();
340
341 PRIVATE:
342
343 // ----------------------------------------------------------------------
344 // Calls for messages received on typed input ports
345 // ----------------------------------------------------------------------
346
348 static void m_p_bufferIn_in(
349 Fw::PassiveComponentBase* callComp,
350 NATIVE_INT_TYPE portNum,
351 Fw::Buffer& fwBuffer
352 );
353
355 static void m_p_comIn_in(
356 Fw::PassiveComponentBase* callComp,
357 NATIVE_INT_TYPE portNum,
358 Fw::ComBuffer& data,
359 U32 context
360 );
361
363 static void m_p_comStatusIn_in(
364 Fw::PassiveComponentBase* callComp,
365 NATIVE_INT_TYPE portNum,
366 Fw::Success& condition
367 );
368
369 PRIVATE:
370
371 // ----------------------------------------------------------------------
372 // Typed input ports
373 // ----------------------------------------------------------------------
374
377
379 Fw::InputComPort m_comIn_InputPort[NUM_COMIN_INPUT_PORTS];
380
383
384 PRIVATE:
385
386 // ----------------------------------------------------------------------
387 // Typed output ports
388 // ----------------------------------------------------------------------
389
391 Fw::OutputBufferSendPort m_bufferDeallocate_OutputPort[NUM_BUFFERDEALLOCATE_OUTPUT_PORTS];
392
395
397 Fw::OutputBufferGetPort m_framedAllocate_OutputPort[NUM_FRAMEDALLOCATE_OUTPUT_PORTS];
398
401
402 PRIVATE:
403
404 // ----------------------------------------------------------------------
405 // Mutexes
406 // ----------------------------------------------------------------------
407
409 Os::Mutex m_guardedPortMutex;
410
411 };
412
413}
414
415#endif
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
C++-compatible configuration header for fprime configuration.
Status returned by the send call.
Input BufferGet port.
Input BufferSend port.
void init()
Object initializer.
Definition ObjBase.cpp:27
Output BufferGet port.
Output BufferSend port.
Success/Failure.
Auto-generated base for Framer component.
NATIVE_INT_TYPE getNum_bufferDeallocate_OutputPorts() const
void comStatusIn_handlerBase(NATIVE_INT_TYPE portNum, Fw::Success &condition)
Handler base-class function for input port comStatusIn.
virtual void unLock()
Unlock the guarded mutex.
bool isConnected_bufferDeallocate_OutputPort(NATIVE_INT_TYPE portNum)
void comStatusOut_out(NATIVE_INT_TYPE portNum, Fw::Success &condition)
Invoke output port comStatusOut.
Fw::InputSuccessConditionPort * get_comStatusIn_InputPort(NATIVE_INT_TYPE portNum)
Fw::InputBufferSendPort * get_bufferIn_InputPort(NATIVE_INT_TYPE portNum)
bool isConnected_framedAllocate_OutputPort(NATIVE_INT_TYPE portNum)
virtual void comStatusIn_handler(NATIVE_INT_TYPE portNum, Fw::Success &condition)=0
Handler for input port comStatusIn.
virtual ~FramerComponentBase()
Destroy FramerComponentBase object.
NATIVE_INT_TYPE getNum_framedAllocate_OutputPorts() const
void comIn_handlerBase(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port comIn.
void set_framedOut_OutputPort(NATIVE_INT_TYPE portNum, Drv::InputByteStreamSendPort *port)
Connect port to framedOut[portNum].
Fw::Buffer framedAllocate_out(NATIVE_INT_TYPE portNum, U32 size)
Invoke output port framedAllocate.
NATIVE_INT_TYPE getNum_comIn_InputPorts() const
NATIVE_INT_TYPE getNum_comStatusIn_InputPorts() const
void set_comStatusOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputSuccessConditionPort *port)
Connect port to comStatusOut[portNum].
bool isConnected_framedOut_OutputPort(NATIVE_INT_TYPE portNum)
Fw::InputComPort * get_comIn_InputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_bufferIn_InputPorts() const
virtual void comIn_handler(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port comIn.
void set_framedAllocate_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferGetPort *port)
Connect port to framedAllocate[portNum].
NATIVE_INT_TYPE getNum_comStatusOut_OutputPorts() const
FramerComponentBase(const char *compName="")
Construct FramerComponentBase object.
virtual void bufferIn_handler(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferIn.
void set_bufferDeallocate_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to bufferDeallocate[portNum].
Drv::SendStatus framedOut_out(NATIVE_INT_TYPE portNum, Fw::Buffer &sendBuffer)
Invoke output port framedOut.
void bufferDeallocate_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port bufferDeallocate.
friend class FramerComponentBaseFriend
Friend class for white-box testing.
NATIVE_INT_TYPE getNum_framedOut_OutputPorts() const
void bufferIn_handlerBase(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferIn.
bool isConnected_comStatusOut_OutputPort(NATIVE_INT_TYPE portNum)
virtual void lock()
Lock the guarded mutex.