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
DeframerComponentAc.hpp
Go to the documentation of this file.
1// ======================================================================
2// \title DeframerComponentAc.hpp
3// \author Generated by fpp-to-cpp
4// \brief hpp file for Deframer component base class
5// ======================================================================
6
7#ifndef Svc_DeframerComponentAc_HPP
8#define Svc_DeframerComponentAc_HPP
9
12#include "FpConfig.hpp"
16#include "Fw/Com/ComPortAc.hpp"
20#include "Os/Mutex.hpp"
22
23namespace Svc {
24
32 {
33
34 // ----------------------------------------------------------------------
35 // Friend classes
36 // ----------------------------------------------------------------------
37
40
41 PROTECTED:
42
43 // ----------------------------------------------------------------------
44 // Constants
45 // ----------------------------------------------------------------------
46
48 enum {
52 };
53
55 enum {
62 };
63
64 public:
65
66 // ----------------------------------------------------------------------
67 // Component initialization
68 // ----------------------------------------------------------------------
69
71 void init(
72 NATIVE_INT_TYPE instance = 0
73 );
74
75 public:
76
77 // ----------------------------------------------------------------------
78 // Getters for typed input ports
79 // ----------------------------------------------------------------------
80
85 NATIVE_INT_TYPE portNum
86 );
87
92 NATIVE_INT_TYPE portNum
93 );
94
99 NATIVE_INT_TYPE portNum
100 );
101
102 public:
103
104 // ----------------------------------------------------------------------
105 // Connect typed input ports to typed output ports
106 // ----------------------------------------------------------------------
107
110 NATIVE_INT_TYPE portNum,
112 );
113
116 NATIVE_INT_TYPE portNum,
118 );
119
122 NATIVE_INT_TYPE portNum,
124 );
125
128 NATIVE_INT_TYPE portNum,
129 Fw::InputComPort* port
130 );
131
134 NATIVE_INT_TYPE portNum,
136 );
137
140 NATIVE_INT_TYPE portNum,
142 );
143
144#if FW_PORT_SERIALIZATION
145
146 public:
147
148 // ----------------------------------------------------------------------
149 // Connect serial input ports to typed output ports
150 // ----------------------------------------------------------------------
151
154 NATIVE_INT_TYPE portNum,
155 Fw::InputSerializePort* port
156 );
157
160 NATIVE_INT_TYPE portNum,
161 Fw::InputSerializePort* port
162 );
163
166 NATIVE_INT_TYPE portNum,
167 Fw::InputSerializePort* port
168 );
169
172 NATIVE_INT_TYPE portNum,
173 Fw::InputSerializePort* port
174 );
175
176#endif
177
178 PROTECTED:
179
180 // ----------------------------------------------------------------------
181 // Component construction and destruction
182 // ----------------------------------------------------------------------
183
186 const char* compName = ""
187 );
188
190 virtual ~DeframerComponentBase();
191
192 PROTECTED:
193
194 // ----------------------------------------------------------------------
195 // Getters for numbers of typed input ports
196 // ----------------------------------------------------------------------
197
202
207
212
213 PROTECTED:
214
215 // ----------------------------------------------------------------------
216 // Getters for numbers of typed output ports
217 // ----------------------------------------------------------------------
218
223
228
233
238
243
248
249 PROTECTED:
250
251 // ----------------------------------------------------------------------
252 // Connection status queries for typed output ports
253 // ----------------------------------------------------------------------
254
259 NATIVE_INT_TYPE portNum
260 );
261
266 NATIVE_INT_TYPE portNum
267 );
268
273 NATIVE_INT_TYPE portNum
274 );
275
280 NATIVE_INT_TYPE portNum
281 );
282
287 NATIVE_INT_TYPE portNum
288 );
289
294 NATIVE_INT_TYPE portNum
295 );
296
297 PROTECTED:
298
299 // ----------------------------------------------------------------------
300 // Handlers to implement for typed input ports
301 // ----------------------------------------------------------------------
302
305 NATIVE_INT_TYPE portNum,
306 FwOpcodeType opCode,
307 U32 cmdSeq,
308 const Fw::CmdResponse& response
309 ) = 0;
310
312 virtual void framedIn_handler(
313 NATIVE_INT_TYPE portNum,
314 Fw::Buffer& recvBuffer,
315 const Drv::RecvStatus& recvStatus
316 ) = 0;
317
319 virtual void schedIn_handler(
320 NATIVE_INT_TYPE portNum,
321 NATIVE_UINT_TYPE context
322 ) = 0;
323
324 PROTECTED:
325
326 // ----------------------------------------------------------------------
327 // Port handler base-class functions for typed input ports
328 //
329 // Call these functions directly to bypass the corresponding ports
330 // ----------------------------------------------------------------------
331
334 NATIVE_INT_TYPE portNum,
335 FwOpcodeType opCode,
336 U32 cmdSeq,
337 const Fw::CmdResponse& response
338 );
339
342 NATIVE_INT_TYPE portNum,
343 Fw::Buffer& recvBuffer,
344 const Drv::RecvStatus& recvStatus
345 );
346
349 NATIVE_INT_TYPE portNum,
350 NATIVE_UINT_TYPE context
351 );
352
353 PROTECTED:
354
355 // ----------------------------------------------------------------------
356 // Invocation functions for typed output ports
357 // ----------------------------------------------------------------------
358
361 NATIVE_INT_TYPE portNum,
362 U32 size
363 );
364
367 NATIVE_INT_TYPE portNum,
368 Fw::Buffer& fwBuffer
369 );
370
372 void bufferOut_out(
373 NATIVE_INT_TYPE portNum,
374 Fw::Buffer& fwBuffer
375 );
376
378 void comOut_out(
379 NATIVE_INT_TYPE portNum,
380 Fw::ComBuffer& data,
381 U32 context
382 );
383
386 NATIVE_INT_TYPE portNum,
387 Fw::Buffer& fwBuffer
388 );
389
392 NATIVE_INT_TYPE portNum,
393 Fw::Buffer& pollBuffer
394 );
395
396 PROTECTED:
397
398 // ----------------------------------------------------------------------
399 // Mutex operations for guarded ports
400 //
401 // You can override these operations to provide more sophisticated
402 // synchronization
403 // ----------------------------------------------------------------------
404
406 virtual void lock();
407
409 virtual void unLock();
410
411 PRIVATE:
412
413 // ----------------------------------------------------------------------
414 // Calls for messages received on typed input ports
415 // ----------------------------------------------------------------------
416
418 static void m_p_cmdResponseIn_in(
419 Fw::PassiveComponentBase* callComp,
420 NATIVE_INT_TYPE portNum,
421 FwOpcodeType opCode,
422 U32 cmdSeq,
423 const Fw::CmdResponse& response
424 );
425
427 static void m_p_framedIn_in(
428 Fw::PassiveComponentBase* callComp,
429 NATIVE_INT_TYPE portNum,
430 Fw::Buffer& recvBuffer,
431 const Drv::RecvStatus& recvStatus
432 );
433
435 static void m_p_schedIn_in(
436 Fw::PassiveComponentBase* callComp,
437 NATIVE_INT_TYPE portNum,
438 NATIVE_UINT_TYPE context
439 );
440
441 PRIVATE:
442
443 // ----------------------------------------------------------------------
444 // Typed input ports
445 // ----------------------------------------------------------------------
446
449
452
454 Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
455
456 PRIVATE:
457
458 // ----------------------------------------------------------------------
459 // Typed output ports
460 // ----------------------------------------------------------------------
461
463 Fw::OutputBufferGetPort m_bufferAllocate_OutputPort[NUM_BUFFERALLOCATE_OUTPUT_PORTS];
464
466 Fw::OutputBufferSendPort m_bufferDeallocate_OutputPort[NUM_BUFFERDEALLOCATE_OUTPUT_PORTS];
467
470
472 Fw::OutputComPort m_comOut_OutputPort[NUM_COMOUT_OUTPUT_PORTS];
473
475 Fw::OutputBufferSendPort m_framedDeallocate_OutputPort[NUM_FRAMEDDEALLOCATE_OUTPUT_PORTS];
476
479
480 PRIVATE:
481
482 // ----------------------------------------------------------------------
483 // Mutexes
484 // ----------------------------------------------------------------------
485
487 Os::Mutex m_guardedPortMutex;
488
489 };
490
491}
492
493#endif
PlatformIntType NATIVE_INT_TYPE
Definition BasicTypes.h:51
PlatformUIntType NATIVE_UINT_TYPE
Definition BasicTypes.h:52
U32 FwOpcodeType
Definition FpConfig.h:56
C++-compatible configuration header for fprime configuration.
Input ByteStreamPoll port.
Output ByteStreamPoll port.
Status associated with the received data.
Enum representing a command response.
void init()
Object initializer.
Definition ObjBase.cpp:27
Auto-generated base for Deframer component.
virtual void unLock()
Unlock the guarded mutex.
void bufferDeallocate_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port bufferDeallocate.
void framedDeallocate_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port framedDeallocate.
NATIVE_INT_TYPE getNum_bufferOut_OutputPorts() const
void set_framedPoll_OutputPort(NATIVE_INT_TYPE portNum, Drv::InputByteStreamPollPort *port)
Connect port to framedPoll[portNum].
virtual void lock()
Lock the guarded mutex.
void schedIn_handlerBase(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)
Handler base-class function for input port schedIn.
void set_bufferDeallocate_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to bufferDeallocate[portNum].
virtual ~DeframerComponentBase()
Destroy DeframerComponentBase object.
NATIVE_INT_TYPE getNum_schedIn_InputPorts() const
void set_bufferAllocate_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferGetPort *port)
Connect port to bufferAllocate[portNum].
DeframerComponentBase(const char *compName="")
Construct DeframerComponentBase object.
Fw::Buffer bufferAllocate_out(NATIVE_INT_TYPE portNum, U32 size)
Invoke output port bufferAllocate.
Drv::PollStatus framedPoll_out(NATIVE_INT_TYPE portNum, Fw::Buffer &pollBuffer)
Invoke output port framedPoll.
NATIVE_INT_TYPE getNum_framedDeallocate_OutputPorts() const
virtual void schedIn_handler(NATIVE_INT_TYPE portNum, NATIVE_UINT_TYPE context)=0
Handler for input port schedIn.
bool isConnected_framedPoll_OutputPort(NATIVE_INT_TYPE portNum)
void framedIn_handlerBase(NATIVE_INT_TYPE portNum, Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)
Handler base-class function for input port framedIn.
NATIVE_INT_TYPE getNum_comOut_OutputPorts() const
void cmdResponseIn_handlerBase(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)
Handler base-class function for input port cmdResponseIn.
void set_bufferOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to bufferOut[portNum].
void set_comOut_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputComPort *port)
Connect port to comOut[portNum].
void bufferOut_out(NATIVE_INT_TYPE portNum, Fw::Buffer &fwBuffer)
Invoke output port bufferOut.
NATIVE_INT_TYPE getNum_bufferDeallocate_OutputPorts() const
void comOut_out(NATIVE_INT_TYPE portNum, Fw::ComBuffer &data, U32 context)
Invoke output port comOut.
bool isConnected_bufferAllocate_OutputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_bufferAllocate_OutputPorts() const
bool isConnected_framedDeallocate_OutputPort(NATIVE_INT_TYPE portNum)
virtual void framedIn_handler(NATIVE_INT_TYPE portNum, Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)=0
Handler for input port framedIn.
bool isConnected_comOut_OutputPort(NATIVE_INT_TYPE portNum)
friend class DeframerComponentBaseFriend
Friend class for white-box testing.
bool isConnected_bufferDeallocate_OutputPort(NATIVE_INT_TYPE portNum)
Fw::InputCmdResponsePort * get_cmdResponseIn_InputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_framedPoll_OutputPorts() const
Svc::InputSchedPort * get_schedIn_InputPort(NATIVE_INT_TYPE portNum)
virtual void cmdResponseIn_handler(NATIVE_INT_TYPE portNum, FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response)=0
Handler for input port cmdResponseIn.
NATIVE_INT_TYPE getNum_cmdResponseIn_InputPorts() const
bool isConnected_bufferOut_OutputPort(NATIVE_INT_TYPE portNum)
void set_framedDeallocate_OutputPort(NATIVE_INT_TYPE portNum, Fw::InputBufferSendPort *port)
Connect port to framedDeallocate[portNum].
Drv::InputByteStreamRecvPort * get_framedIn_InputPort(NATIVE_INT_TYPE portNum)
NATIVE_INT_TYPE getNum_framedIn_InputPorts() const