F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
ComStubComponentAc.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title ComStubComponentAc.cpp
3 // \author Generated by fpp-to-cpp
4 // \brief cpp file for ComStub component base class
5 // ======================================================================
6 
8 #include "Fw/Types/Assert.hpp"
10 #if FW_ENABLE_TEXT_LOGGING
11 #include "Fw/Types/String.hpp"
12 #endif
13 
14 namespace Svc {
15 
16  // ----------------------------------------------------------------------
17  // Component initialization
18  // ----------------------------------------------------------------------
19 
21  init(FwEnumStoreType instance)
22  {
23  // Initialize base class
25 
26  // Connect input port comDataIn
27  for (
28  FwIndexType port = 0;
29  port < static_cast<FwIndexType>(this->getNum_comDataIn_InputPorts());
30  port++
31  ) {
32  this->m_comDataIn_InputPort[port].init();
33  this->m_comDataIn_InputPort[port].addCallComp(
34  this,
35  m_p_comDataIn_in
36  );
37  this->m_comDataIn_InputPort[port].setPortNum(port);
38 
39 #if FW_OBJECT_NAMES == 1
40  Fw::ObjectName portName;
41  portName.format(
42  "%s_comDataIn_InputPort[%" PRI_PlatformIntType "]",
43  this->m_objName.toChar(),
44  port
45  );
46  this->m_comDataIn_InputPort[port].setObjName(portName.toChar());
47 #endif
48  }
49 
50  // Connect input port drvConnected
51  for (
52  FwIndexType port = 0;
53  port < static_cast<FwIndexType>(this->getNum_drvConnected_InputPorts());
54  port++
55  ) {
56  this->m_drvConnected_InputPort[port].init();
57  this->m_drvConnected_InputPort[port].addCallComp(
58  this,
59  m_p_drvConnected_in
60  );
61  this->m_drvConnected_InputPort[port].setPortNum(port);
62 
63 #if FW_OBJECT_NAMES == 1
64  Fw::ObjectName portName;
65  portName.format(
66  "%s_drvConnected_InputPort[%" PRI_PlatformIntType "]",
67  this->m_objName.toChar(),
68  port
69  );
70  this->m_drvConnected_InputPort[port].setObjName(portName.toChar());
71 #endif
72  }
73 
74  // Connect input port drvDataIn
75  for (
76  FwIndexType port = 0;
77  port < static_cast<FwIndexType>(this->getNum_drvDataIn_InputPorts());
78  port++
79  ) {
80  this->m_drvDataIn_InputPort[port].init();
81  this->m_drvDataIn_InputPort[port].addCallComp(
82  this,
83  m_p_drvDataIn_in
84  );
85  this->m_drvDataIn_InputPort[port].setPortNum(port);
86 
87 #if FW_OBJECT_NAMES == 1
88  Fw::ObjectName portName;
89  portName.format(
90  "%s_drvDataIn_InputPort[%" PRI_PlatformIntType "]",
91  this->m_objName.toChar(),
92  port
93  );
94  this->m_drvDataIn_InputPort[port].setObjName(portName.toChar());
95 #endif
96  }
97 
98  // Connect output port comDataOut
99  for (
100  FwIndexType port = 0;
101  port < static_cast<FwIndexType>(this->getNum_comDataOut_OutputPorts());
102  port++
103  ) {
104  this->m_comDataOut_OutputPort[port].init();
105 
106 #if FW_OBJECT_NAMES == 1
107  Fw::ObjectName portName;
108  portName.format(
109  "%s_comDataOut_OutputPort[%" PRI_PlatformIntType "]",
110  this->m_objName.toChar(),
111  port
112  );
113  this->m_comDataOut_OutputPort[port].setObjName(portName.toChar());
114 #endif
115  }
116 
117  // Connect output port comStatus
118  for (
119  FwIndexType port = 0;
120  port < static_cast<FwIndexType>(this->getNum_comStatus_OutputPorts());
121  port++
122  ) {
123  this->m_comStatus_OutputPort[port].init();
124 
125 #if FW_OBJECT_NAMES == 1
126  Fw::ObjectName portName;
127  portName.format(
128  "%s_comStatus_OutputPort[%" PRI_PlatformIntType "]",
129  this->m_objName.toChar(),
130  port
131  );
132  this->m_comStatus_OutputPort[port].setObjName(portName.toChar());
133 #endif
134  }
135 
136  // Connect output port drvDataOut
137  for (
138  FwIndexType port = 0;
139  port < static_cast<FwIndexType>(this->getNum_drvDataOut_OutputPorts());
140  port++
141  ) {
142  this->m_drvDataOut_OutputPort[port].init();
143 
144 #if FW_OBJECT_NAMES == 1
145  Fw::ObjectName portName;
146  portName.format(
147  "%s_drvDataOut_OutputPort[%" PRI_PlatformIntType "]",
148  this->m_objName.toChar(),
149  port
150  );
151  this->m_drvDataOut_OutputPort[port].setObjName(portName.toChar());
152 #endif
153  }
154  }
155 
156  // ----------------------------------------------------------------------
157  // Getters for typed input ports
158  // ----------------------------------------------------------------------
159 
162  {
163  FW_ASSERT(
164  portNum < this->getNum_comDataIn_InputPorts(),
165  static_cast<FwAssertArgType>(portNum)
166  );
167 
168  return &this->m_comDataIn_InputPort[portNum];
169  }
170 
173  {
174  FW_ASSERT(
175  portNum < this->getNum_drvConnected_InputPorts(),
176  static_cast<FwAssertArgType>(portNum)
177  );
178 
179  return &this->m_drvConnected_InputPort[portNum];
180  }
181 
184  {
185  FW_ASSERT(
186  portNum < this->getNum_drvDataIn_InputPorts(),
187  static_cast<FwAssertArgType>(portNum)
188  );
189 
190  return &this->m_drvDataIn_InputPort[portNum];
191  }
192 
193  // ----------------------------------------------------------------------
194  // Connect typed input ports to typed output ports
195  // ----------------------------------------------------------------------
196 
199  FwIndexType portNum,
201  )
202  {
203  FW_ASSERT(
204  portNum < this->getNum_comDataOut_OutputPorts(),
205  static_cast<FwAssertArgType>(portNum)
206  );
207 
208  this->m_comDataOut_OutputPort[portNum].addCallPort(port);
209  }
210 
213  FwIndexType portNum,
215  )
216  {
217  FW_ASSERT(
218  portNum < this->getNum_comStatus_OutputPorts(),
219  static_cast<FwAssertArgType>(portNum)
220  );
221 
222  this->m_comStatus_OutputPort[portNum].addCallPort(port);
223  }
224 
227  FwIndexType portNum,
229  )
230  {
231  FW_ASSERT(
232  portNum < this->getNum_drvDataOut_OutputPorts(),
233  static_cast<FwAssertArgType>(portNum)
234  );
235 
236  this->m_drvDataOut_OutputPort[portNum].addCallPort(port);
237  }
238 
239 #if FW_PORT_SERIALIZATION
240 
241  // ----------------------------------------------------------------------
242  // Connect serial input ports to typed output ports
243  // ----------------------------------------------------------------------
244 
247  FwIndexType portNum,
248  Fw::InputSerializePort* port
249  )
250  {
251  FW_ASSERT(
252  portNum < this->getNum_comDataOut_OutputPorts(),
253  static_cast<FwAssertArgType>(portNum)
254  );
255 
256  this->m_comDataOut_OutputPort[portNum].registerSerialPort(port);
257  }
258 
261  FwIndexType portNum,
262  Fw::InputSerializePort* port
263  )
264  {
265  FW_ASSERT(
266  portNum < this->getNum_comStatus_OutputPorts(),
267  static_cast<FwAssertArgType>(portNum)
268  );
269 
270  this->m_comStatus_OutputPort[portNum].registerSerialPort(port);
271  }
272 
273 #endif
274 
275  // ----------------------------------------------------------------------
276  // Component construction and destruction
277  // ----------------------------------------------------------------------
278 
280  ComStubComponentBase(const char* compName) :
281  Fw::PassiveComponentBase(compName)
282  {
283 
284  }
285 
288  {
289 
290  }
291 
292  // ----------------------------------------------------------------------
293  // Getters for numbers of typed input ports
294  // ----------------------------------------------------------------------
295 
298  {
299  return static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_comDataIn_InputPort));
300  }
301 
304  {
305  return static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_drvConnected_InputPort));
306  }
307 
310  {
311  return static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_drvDataIn_InputPort));
312  }
313 
314  // ----------------------------------------------------------------------
315  // Getters for numbers of typed output ports
316  // ----------------------------------------------------------------------
317 
320  {
321  return static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_comDataOut_OutputPort));
322  }
323 
326  {
327  return static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_comStatus_OutputPort));
328  }
329 
332  {
333  return static_cast<FwIndexType>(FW_NUM_ARRAY_ELEMENTS(this->m_drvDataOut_OutputPort));
334  }
335 
336  // ----------------------------------------------------------------------
337  // Connection status queries for typed output ports
338  // ----------------------------------------------------------------------
339 
342  {
343  FW_ASSERT(
344  portNum < this->getNum_comDataOut_OutputPorts(),
345  static_cast<FwAssertArgType>(portNum)
346  );
347 
348  return this->m_comDataOut_OutputPort[portNum].isConnected();
349  }
350 
353  {
354  FW_ASSERT(
355  portNum < this->getNum_comStatus_OutputPorts(),
356  static_cast<FwAssertArgType>(portNum)
357  );
358 
359  return this->m_comStatus_OutputPort[portNum].isConnected();
360  }
361 
364  {
365  FW_ASSERT(
366  portNum < this->getNum_drvDataOut_OutputPorts(),
367  static_cast<FwAssertArgType>(portNum)
368  );
369 
370  return this->m_drvDataOut_OutputPort[portNum].isConnected();
371  }
372 
373  // ----------------------------------------------------------------------
374  // Port handler base-class functions for typed input ports
375  //
376  // Call these functions directly to bypass the corresponding ports
377  // ----------------------------------------------------------------------
378 
381  FwIndexType portNum,
382  Fw::Buffer& sendBuffer
383  )
384  {
385  // Make sure port number is valid
386  FW_ASSERT(
387  portNum < this->getNum_comDataIn_InputPorts(),
388  static_cast<FwAssertArgType>(portNum)
389  );
390 
391  Drv::SendStatus retVal;
392 
393  // Call handler function
394  retVal = this->comDataIn_handler(
395  portNum,
396  sendBuffer
397  );
398 
399  return retVal;
400  }
401 
404  {
405  // Make sure port number is valid
406  FW_ASSERT(
407  portNum < this->getNum_drvConnected_InputPorts(),
408  static_cast<FwAssertArgType>(portNum)
409  );
410 
411  // Call handler function
412  this->drvConnected_handler(portNum);
413  }
414 
417  FwIndexType portNum,
418  Fw::Buffer& recvBuffer,
419  const Drv::RecvStatus& recvStatus
420  )
421  {
422  // Make sure port number is valid
423  FW_ASSERT(
424  portNum < this->getNum_drvDataIn_InputPorts(),
425  static_cast<FwAssertArgType>(portNum)
426  );
427 
428  // Call handler function
429  this->drvDataIn_handler(
430  portNum,
431  recvBuffer,
432  recvStatus
433  );
434  }
435 
436  // ----------------------------------------------------------------------
437  // Invocation functions for typed output ports
438  // ----------------------------------------------------------------------
439 
442  FwIndexType portNum,
443  Fw::Buffer& recvBuffer,
444  const Drv::RecvStatus& recvStatus
445  )
446  {
447  FW_ASSERT(
448  portNum < this->getNum_comDataOut_OutputPorts(),
449  static_cast<FwAssertArgType>(portNum)
450  );
451  this->m_comDataOut_OutputPort[portNum].invoke(
452  recvBuffer,
453  recvStatus
454  );
455  }
456 
459  FwIndexType portNum,
460  Fw::Success& condition
461  )
462  {
463  FW_ASSERT(
464  portNum < this->getNum_comStatus_OutputPorts(),
465  static_cast<FwAssertArgType>(portNum)
466  );
467  this->m_comStatus_OutputPort[portNum].invoke(
468  condition
469  );
470  }
471 
474  FwIndexType portNum,
475  Fw::Buffer& sendBuffer
476  )
477  {
478  FW_ASSERT(
479  portNum < this->getNum_drvDataOut_OutputPorts(),
480  static_cast<FwAssertArgType>(portNum)
481  );
482  return this->m_drvDataOut_OutputPort[portNum].invoke(
483  sendBuffer
484  );
485  }
486 
487  // ----------------------------------------------------------------------
488  // Calls for messages received on typed input ports
489  // ----------------------------------------------------------------------
490 
491  Drv::SendStatus ComStubComponentBase ::
492  m_p_comDataIn_in(
493  Fw::PassiveComponentBase* callComp,
494  FwIndexType portNum,
495  Fw::Buffer& sendBuffer
496  )
497  {
498  FW_ASSERT(callComp);
499  ComStubComponentBase* compPtr = static_cast<ComStubComponentBase*>(callComp);
500  return compPtr->comDataIn_handlerBase(
501  portNum,
502  sendBuffer
503  );
504  }
505 
506  void ComStubComponentBase ::
507  m_p_drvConnected_in(
508  Fw::PassiveComponentBase* callComp,
509  FwIndexType portNum
510  )
511  {
512  FW_ASSERT(callComp);
513  ComStubComponentBase* compPtr = static_cast<ComStubComponentBase*>(callComp);
514  compPtr->drvConnected_handlerBase(portNum);
515  }
516 
517  void ComStubComponentBase ::
518  m_p_drvDataIn_in(
519  Fw::PassiveComponentBase* callComp,
520  FwIndexType portNum,
521  Fw::Buffer& recvBuffer,
522  const Drv::RecvStatus& recvStatus
523  )
524  {
525  FW_ASSERT(callComp);
526  ComStubComponentBase* compPtr = static_cast<ComStubComponentBase*>(callComp);
527  compPtr->drvDataIn_handlerBase(
528  portNum,
529  recvBuffer,
530  recvStatus
531  );
532  }
533 
534 }
#define FW_ASSERT(...)
Definition: Assert.hpp:14
#define FW_NUM_ARRAY_ELEMENTS(a)
number of elements in an array
Definition: BasicTypes.h:70
#define PRI_PlatformIntType
I32 FwEnumStoreType
Definition: FpConfig.h:64
PlatformAssertArgType FwAssertArgType
Definition: FpConfig.h:39
PlatformIndexType FwIndexType
Definition: FpConfig.h:25
void init()
Initialization function.
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
void init()
Initialization function.
void init()
Initialization function.
void addCallComp(Fw::PassiveComponentBase *callComp, CompFuncPtr funcPtr)
Register a component.
void init()
Initialization function.
void addCallPort(InputByteStreamRecvPort *callPort)
Register an input port.
void invoke(Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)
Invoke a port interface.
void init()
Initialization function.
Drv::SendStatus invoke(Fw::Buffer &sendBuffer)
Invoke a port interface.
void addCallPort(InputByteStreamSendPort *callPort)
Register an input port.
Status associated with the received data.
Status returned by the send call.
void setPortNum(NATIVE_INT_TYPE portNum)
void init()
Object initializer.
Definition: ObjBase.cpp:27
const char * toChar() const
Definition: ObjectName.hpp:50
void invoke(Fw::Success &condition)
Invoke a port interface.
void init()
Initialization function.
void addCallPort(InputSuccessConditionPort *callPort)
Register an input port.
bool isConnected()
Definition: PortBase.cpp:41
void format(const CHAR *formatString,...)
write formatted string to buffer
Definition: StringBase.cpp:56
Success/Failure.
Auto-generated base for ComStub component.
bool isConnected_comStatus_OutputPort(FwIndexType portNum)
bool isConnected_comDataOut_OutputPort(FwIndexType portNum)
FwIndexType getNum_comStatus_OutputPorts() const
FwIndexType getNum_drvConnected_InputPorts() const
virtual void drvDataIn_handler(FwIndexType portNum, Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)=0
Handler for input port drvDataIn.
FwIndexType getNum_comDataOut_OutputPorts() const
void comStatus_out(FwIndexType portNum, Fw::Success &condition)
Invoke output port comStatus.
FwIndexType getNum_drvDataOut_OutputPorts() const
virtual void drvConnected_handler(FwIndexType portNum)=0
Handler for input port drvConnected.
FwIndexType getNum_drvDataIn_InputPorts() const
void comDataOut_out(FwIndexType portNum, Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)
Invoke output port comDataOut.
bool isConnected_drvDataOut_OutputPort(FwIndexType portNum)
virtual Drv::SendStatus comDataIn_handler(FwIndexType portNum, Fw::Buffer &sendBuffer)=0
Handler for input port comDataIn.
void drvDataIn_handlerBase(FwIndexType portNum, Fw::Buffer &recvBuffer, const Drv::RecvStatus &recvStatus)
Handler base-class function for input port drvDataIn.
Drv::SendStatus drvDataOut_out(FwIndexType portNum, Fw::Buffer &sendBuffer)
Invoke output port drvDataOut.
virtual ~ComStubComponentBase()
Destroy ComStubComponentBase object.
void set_comStatus_OutputPort(FwIndexType portNum, Fw::InputSuccessConditionPort *port)
Connect port to comStatus[portNum].
ComStubComponentBase(const char *compName="")
Construct ComStubComponentBase object.
Drv::SendStatus comDataIn_handlerBase(FwIndexType portNum, Fw::Buffer &sendBuffer)
Handler base-class function for input port comDataIn.
Drv::InputByteStreamSendPort * get_comDataIn_InputPort(FwIndexType portNum)
FwIndexType getNum_comDataIn_InputPorts() const
void set_comDataOut_OutputPort(FwIndexType portNum, Drv::InputByteStreamRecvPort *port)
Connect port to comDataOut[portNum].
Drv::InputByteStreamReadyPort * get_drvConnected_InputPort(FwIndexType portNum)
Drv::InputByteStreamRecvPort * get_drvDataIn_InputPort(FwIndexType portNum)
void drvConnected_handlerBase(FwIndexType portNum)
Handler base-class function for input port drvConnected.
void set_drvDataOut_OutputPort(FwIndexType portNum, Drv::InputByteStreamSendPort *port)
Connect port to drvDataOut[portNum].