F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
BufferAccumulatorComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title BufferAccumulatorComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for BufferAccumulator component base class
5 // ======================================================================
6 
7 #ifndef Svc_BufferAccumulatorComponentAc_HPP
8 #define Svc_BufferAccumulatorComponentAc_HPP
9 
10 #include <atomic>
11 
13 #include "Fw/Cmd/CmdPortAc.hpp"
14 #include "Fw/Cmd/CmdRegPortAc.hpp"
16 #include "Fw/Cmd/CmdString.hpp"
18 #include "Fw/FPrimeBasicTypes.hpp"
19 #include "Fw/Log/LogPortAc.hpp"
20 #include "Fw/Log/LogString.hpp"
21 #if FW_ENABLE_TEXT_LOGGING == 1
22 #include "Fw/Log/LogTextPortAc.hpp"
23 #endif
24 #if !FW_DIRECT_PORT_CALLS
26 #endif
27 #if !FW_DIRECT_PORT_CALLS
29 #endif
30 #include "Fw/Time/TimePortAc.hpp"
31 #include "Fw/Tlm/TlmPortAc.hpp"
32 #include "Fw/Tlm/TlmString.hpp"
35 #include "Svc/Ping/PingPortAc.hpp"
36 
37 namespace Svc {
38 
43  {
44 
45  // ----------------------------------------------------------------------
46  // Friend classes
47  // ----------------------------------------------------------------------
48 
53 
54  protected:
55 
56  // ----------------------------------------------------------------------
57  // Constants
58  // ----------------------------------------------------------------------
59 
61  enum {
63  };
64 
66  enum {
70  };
71 
73  enum {
80  };
81 
83  enum {
87  };
88 
90  enum {
93  };
94 
96  enum {
104  };
105 
107  enum {
109  };
110 
111  public:
112 
113  // ----------------------------------------------------------------------
114  // Component initialization
115  // ----------------------------------------------------------------------
116 
118  void init(
119  FwSizeType queueDepth,
120  FwEnumStoreType instance = 0
121  );
122 
123 #if !FW_DIRECT_PORT_CALLS
124 
125  public:
126 
127  // ----------------------------------------------------------------------
128  // Getters for special input ports
129  // ----------------------------------------------------------------------
130 
135  FwIndexType portNum
136  );
137 
138 #endif
139 
140 #if !FW_DIRECT_PORT_CALLS
141 
142  public:
143 
144  // ----------------------------------------------------------------------
145  // Getters for typed input ports
146  // ----------------------------------------------------------------------
147 
152  FwIndexType portNum
153  );
154 
159  FwIndexType portNum
160  );
161 
166  FwIndexType portNum
167  );
168 
169 #endif
170 
171 #if !FW_DIRECT_PORT_CALLS
172 
173  public:
174 
175  // ----------------------------------------------------------------------
176  // Connect input ports to special output ports
177  // ----------------------------------------------------------------------
178 
181  FwIndexType portNum,
182  Fw::InputCmdRegPort* port
183  );
184 
187  FwIndexType portNum,
189  );
190 
193  FwIndexType portNum,
194  Fw::InputLogPort* port
195  );
196 
197 #if FW_ENABLE_TEXT_LOGGING == 1
198 
200  void set_eventOutText_OutputPort(
201  FwIndexType portNum,
202  Fw::InputLogTextPort* port
203  );
204 
205 #endif
206 
209  FwIndexType portNum,
210  Fw::InputTimePort* port
211  );
212 
215  FwIndexType portNum,
216  Fw::InputTlmPort* port
217  );
218 
219 #endif
220 
221 #if !FW_DIRECT_PORT_CALLS
222 
223  public:
224 
225  // ----------------------------------------------------------------------
226  // Connect typed input ports to typed output ports
227  // ----------------------------------------------------------------------
228 
231  FwIndexType portNum,
233  );
234 
237  FwIndexType portNum,
239  );
240 
243  FwIndexType portNum,
244  Svc::InputPingPort* port
245  );
246 
247 #endif
248 
249 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
250 
251  public:
252 
253  // ----------------------------------------------------------------------
254  // Connect serial input ports to special output ports
255  // ----------------------------------------------------------------------
256 
259  FwIndexType portNum,
260  Fw::InputSerializePort* port
261  );
262 
265  FwIndexType portNum,
266  Fw::InputSerializePort* port
267  );
268 
271  FwIndexType portNum,
272  Fw::InputSerializePort* port
273  );
274 
275 #if FW_ENABLE_TEXT_LOGGING == 1
276 
278  void set_eventOutText_OutputPort(
279  FwIndexType portNum,
280  Fw::InputSerializePort* port
281  );
282 
283 #endif
284 
287  FwIndexType portNum,
288  Fw::InputSerializePort* port
289  );
290 
293  FwIndexType portNum,
294  Fw::InputSerializePort* port
295  );
296 
297 #endif
298 
299 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
300 
301  public:
302 
303  // ----------------------------------------------------------------------
304  // Connect serial input ports to typed output ports
305  // ----------------------------------------------------------------------
306 
309  FwIndexType portNum,
310  Fw::InputSerializePort* port
311  );
312 
315  FwIndexType portNum,
316  Fw::InputSerializePort* port
317  );
318 
321  FwIndexType portNum,
322  Fw::InputSerializePort* port
323  );
324 
325 #endif
326 
327  public:
328 
329  // ----------------------------------------------------------------------
330  // Command registration
331  // ----------------------------------------------------------------------
332 
336  void regCommands();
337 
338  protected:
339 
340  // ----------------------------------------------------------------------
341  // Component construction and destruction
342  // ----------------------------------------------------------------------
343 
346  const char* compName = ""
347  );
348 
351 
352  protected:
353 
354  // ----------------------------------------------------------------------
355  // Getters for numbers of special input ports
356  // ----------------------------------------------------------------------
357 
362  return NUM_CMDIN_INPUT_PORTS;
363  }
364 
365  protected:
366 
367  // ----------------------------------------------------------------------
368  // Getters for numbers of typed input ports
369  // ----------------------------------------------------------------------
370 
376  }
377 
383  }
384 
389  return NUM_PINGIN_INPUT_PORTS;
390  }
391 
392  protected:
393 
394  // ----------------------------------------------------------------------
395  // Getters for numbers of special output ports
396  // ----------------------------------------------------------------------
397 
403  }
404 
410  }
411 
417  }
418 
419 #if FW_ENABLE_TEXT_LOGGING == 1
420 
424  static constexpr FwIndexType getNum_eventOutText_OutputPorts() {
426  }
427 
428 #endif
429 
435  }
436 
442  }
443 
444  protected:
445 
446  // ----------------------------------------------------------------------
447  // Getters for numbers of typed output ports
448  // ----------------------------------------------------------------------
449 
455  }
456 
462  }
463 
469  }
470 
471  protected:
472 
473  // ----------------------------------------------------------------------
474  // Connection status queries for special output ports
475  // ----------------------------------------------------------------------
476 
481  FwIndexType portNum
482  ) const;
483 
488  FwIndexType portNum
489  ) const;
490 
495  FwIndexType portNum
496  ) const;
497 
498 #if FW_ENABLE_TEXT_LOGGING == 1
499 
503  bool isConnected_eventOutText_OutputPort(
504  FwIndexType portNum
505  ) const;
506 
507 #endif
508 
513  FwIndexType portNum
514  ) const;
515 
520  FwIndexType portNum
521  ) const;
522 
523  protected:
524 
525  // ----------------------------------------------------------------------
526  // Connection status queries for typed output ports
527  // ----------------------------------------------------------------------
528 
533  FwIndexType portNum
534  ) const;
535 
540  FwIndexType portNum
541  ) const;
542 
547  FwIndexType portNum
548  ) const;
549 
550 #if FW_DIRECT_PORT_CALLS
551  public:
552 #else
553  protected:
554 #endif
555 
556  // ----------------------------------------------------------------------
557  // Port handler base-class functions for special input ports
558  //
559  // Call these functions directly to bypass the corresponding ports
560  // ----------------------------------------------------------------------
561 
563  void cmdIn_handlerBase(
564  FwIndexType portNum,
565  FwOpcodeType opCode,
566  U32 cmdSeq,
567  Fw::CmdArgBuffer& args
568  );
569 
570  protected:
571 
572  // ----------------------------------------------------------------------
573  // Handlers to implement for typed input ports
574  // ----------------------------------------------------------------------
575 
577  virtual void bufferSendInFill_handler(
578  FwIndexType portNum,
579  Fw::Buffer& fwBuffer
580  ) = 0;
581 
583  virtual void bufferSendInReturn_handler(
584  FwIndexType portNum,
585  Fw::Buffer& fwBuffer
586  ) = 0;
587 
589  virtual void pingIn_handler(
590  FwIndexType portNum,
591  U32 key
592  ) = 0;
593 
594 #if FW_DIRECT_PORT_CALLS
595  public:
596 #else
597  protected:
598 #endif
599 
600  // ----------------------------------------------------------------------
601  // Port handler base-class functions for typed input ports
602  //
603  // Call these functions directly to bypass the corresponding ports
604  // ----------------------------------------------------------------------
605 
608  FwIndexType portNum,
609  Fw::Buffer& fwBuffer
610  );
611 
614  FwIndexType portNum,
615  Fw::Buffer& fwBuffer
616  );
617 
619  void pingIn_handlerBase(
620  FwIndexType portNum,
621  U32 key
622  );
623 
624  protected:
625 
626  // ----------------------------------------------------------------------
627  // Pre-message hooks for typed async input ports
628  //
629  // Each of these functions is invoked just before processing a message
630  // on the corresponding port. By default, they do nothing. You can
631  // override them to provide specific pre-message behavior.
632  // ----------------------------------------------------------------------
633 
635  virtual void bufferSendInFill_preMsgHook(
636  FwIndexType portNum,
637  Fw::Buffer& fwBuffer
638  );
639 
641  virtual void bufferSendInReturn_preMsgHook(
642  FwIndexType portNum,
643  Fw::Buffer& fwBuffer
644  );
645 
647  virtual void pingIn_preMsgHook(
648  FwIndexType portNum,
649  U32 key
650  );
651 
652  protected:
653 
654  // ----------------------------------------------------------------------
655  // Invocation functions for typed output ports
656  // ----------------------------------------------------------------------
657 
660  FwIndexType portNum,
661  Fw::Buffer& fwBuffer
662  ) const;
663 
666  FwIndexType portNum,
667  Fw::Buffer& fwBuffer
668  ) const;
669 
671  void pingOut_out(
672  FwIndexType portNum,
673  U32 key
674  ) const;
675 
676  protected:
677 
678  // ----------------------------------------------------------------------
679  // Command response
680  // ----------------------------------------------------------------------
681 
683  void cmdResponse_out(
684  FwOpcodeType opCode,
685  U32 cmdSeq,
686  Fw::CmdResponse response
687  );
688 
689  protected:
690 
691  // ----------------------------------------------------------------------
692  // Command handlers to implement
693  // ----------------------------------------------------------------------
694 
698  virtual void BA_SetMode_cmdHandler(
699  FwOpcodeType opCode,
700  U32 cmdSeq,
702  ) = 0;
703 
707  virtual void BA_DrainBuffers_cmdHandler(
708  FwOpcodeType opCode,
709  U32 cmdSeq,
710  U32 numToDrain,
712  ) = 0;
713 
714  protected:
715 
716  // ----------------------------------------------------------------------
717  // Command handler base-class functions
718  //
719  // Call these functions directly to bypass the command input port
720  // ----------------------------------------------------------------------
721 
726  FwOpcodeType opCode,
727  U32 cmdSeq,
728  Fw::CmdArgBuffer& args
729  );
730 
735  FwOpcodeType opCode,
736  U32 cmdSeq,
737  Fw::CmdArgBuffer& args
738  );
739 
740  protected:
741 
742  // ----------------------------------------------------------------------
743  // Pre-message hooks for async commands
744  //
745  // Each of these functions is invoked just before processing the
746  // corresponding command. By default they do nothing. You can
747  // override them to provide specific pre-command behavior.
748  // ----------------------------------------------------------------------
749 
751  virtual void BA_SetMode_preMsgHook(
752  FwOpcodeType opCode,
753  U32 cmdSeq
754  );
755 
757  virtual void BA_DrainBuffers_preMsgHook(
758  FwOpcodeType opCode,
759  U32 cmdSeq
760  );
761 
762  protected:
763 
764  // ----------------------------------------------------------------------
765  // Event logging functions
766  // ----------------------------------------------------------------------
767 
772 
776  void log_WARNING_HI_BA_QueueFull() const;
777 
782  U32 numDrained,
783  U32 numToDrain
784  ) const;
785 
790 
795  U32 numDrained,
796  U32 numToDrain
797  ) const;
798 
802  void log_ACTIVITY_HI_BA_PartialDrainDone(U32 numDrained) const;
803 
808  U32 numWillDrain,
809  U32 numReqDrain
810  ) const;
811 
812  protected:
813 
814  // ----------------------------------------------------------------------
815  // Telemetry serialized write
816  // ----------------------------------------------------------------------
817 
822  void tlmWrite(
823  FwChanIdType id,
824  Fw::TlmBuffer& _tlmBuff,
825  Fw::Time _tlmTime = Fw::Time()
826  ) const;
827 
828  protected:
829 
830  // ----------------------------------------------------------------------
831  // Telemetry write functions
832  // ----------------------------------------------------------------------
833 
838  U32 arg,
839  Fw::Time _tlmTime = Fw::Time()
840  ) const;
841 
842  protected:
843 
844  // ----------------------------------------------------------------------
845  // Time
846  // ----------------------------------------------------------------------
847 
851  Fw::Time getTime() const;
852 
853  private:
854 
855  // ----------------------------------------------------------------------
856  // Message dispatch functions
857  // ----------------------------------------------------------------------
858 
860  virtual MsgDispatchStatus doDispatch();
861 
862  private:
863 
864  // ----------------------------------------------------------------------
865  // Calls for messages received on special input ports
866  // ----------------------------------------------------------------------
867 
869  static void m_p_cmdIn_in(
870  Fw::PassiveComponentBase* callComp,
871  FwIndexType portNum,
872  FwOpcodeType opCode,
873  U32 cmdSeq,
874  Fw::CmdArgBuffer& args
875  );
876 
877  private:
878 
879  // ----------------------------------------------------------------------
880  // Calls for messages received on typed input ports
881  // ----------------------------------------------------------------------
882 
884  static void m_p_bufferSendInFill_in(
885  Fw::PassiveComponentBase* callComp,
886  FwIndexType portNum,
887  Fw::Buffer& fwBuffer
888  );
889 
891  static void m_p_bufferSendInReturn_in(
892  Fw::PassiveComponentBase* callComp,
893  FwIndexType portNum,
894  Fw::Buffer& fwBuffer
895  );
896 
898  static void m_p_pingIn_in(
899  Fw::PassiveComponentBase* callComp,
900  FwIndexType portNum,
901  U32 key
902  );
903 
904  private:
905 
906  // ----------------------------------------------------------------------
907  // Invocation functions for special output ports
908  // ----------------------------------------------------------------------
909 
911  void cmdRegOut_out(
912  FwIndexType portNum,
913  FwOpcodeType opCode
914  ) const;
915 
917  void cmdResponseOut_out(
918  FwIndexType portNum,
919  FwOpcodeType opCode,
920  U32 cmdSeq,
921  const Fw::CmdResponse& response
922  ) const;
923 
925  void eventOut_out(
926  FwIndexType portNum,
927  FwEventIdType id,
928  Fw::Time& timeTag,
929  const Fw::LogSeverity& severity,
930  Fw::LogBuffer& args
931  ) const;
932 
933 #if FW_ENABLE_TEXT_LOGGING
934 
936  void eventOutText_out(
937  FwIndexType portNum,
938  FwEventIdType id,
939  Fw::Time& timeTag,
940  const Fw::LogSeverity& severity,
941  Fw::TextLogString& text
942  ) const;
943 
944 #endif
945 
947  void timeCaller_out(
948  FwIndexType portNum,
949  Fw::Time& time
950  ) const;
951 
953  void tlmOut_out(
954  FwIndexType portNum,
955  FwChanIdType id,
956  Fw::Time& timeTag,
957  Fw::TlmBuffer& val
958  ) const;
959 
960 #if !FW_DIRECT_PORT_CALLS
961 
962  private:
963 
964  // ----------------------------------------------------------------------
965  // Special input ports
966  // ----------------------------------------------------------------------
967 
969  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
970 
971 #endif
972 
973 #if !FW_DIRECT_PORT_CALLS
974 
975  private:
976 
977  // ----------------------------------------------------------------------
978  // Typed input ports
979  // ----------------------------------------------------------------------
980 
982  Fw::InputBufferSendPort m_bufferSendInFill_InputPort[NUM_BUFFERSENDINFILL_INPUT_PORTS];
983 
985  Fw::InputBufferSendPort m_bufferSendInReturn_InputPort[NUM_BUFFERSENDINRETURN_INPUT_PORTS];
986 
988  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
989 
990 #endif
991 
992 #if !FW_DIRECT_PORT_CALLS
993 
994  private:
995 
996  // ----------------------------------------------------------------------
997  // Special output ports
998  // ----------------------------------------------------------------------
999 
1001  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
1002 
1004  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
1005 
1007  Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
1008 
1009 #if FW_ENABLE_TEXT_LOGGING == 1
1010 
1012  Fw::OutputLogTextPort m_eventOutText_OutputPort[NUM_EVENTOUTTEXT_OUTPUT_PORTS];
1013 
1014 #endif
1015 
1017  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
1018 
1020  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1021 
1022 #endif
1023 
1024 #if !FW_DIRECT_PORT_CALLS
1025 
1026  private:
1027 
1028  // ----------------------------------------------------------------------
1029  // Typed output ports
1030  // ----------------------------------------------------------------------
1031 
1033  Fw::OutputBufferSendPort m_bufferSendOutDrain_OutputPort[NUM_BUFFERSENDOUTDRAIN_OUTPUT_PORTS];
1034 
1036  Fw::OutputBufferSendPort m_bufferSendOutReturn_OutputPort[NUM_BUFFERSENDOUTRETURN_OUTPUT_PORTS];
1037 
1039  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1040 
1041 #endif
1042 
1043  };
1044 
1045 }
1046 
1047 #endif
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
virtual void BA_SetMode_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::BufferAccumulator_OpState mode)=0
static constexpr FwIndexType getNum_pingIn_InputPorts()
FwIdType FwOpcodeType
The type of a command opcode.
virtual void bufferSendInReturn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferSendInReturn.
static constexpr FwIndexType getNum_eventOut_OutputPorts()
Ran out of buffers while executing DrainBuffers command.
PlatformSizeType FwSizeType
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
I32 FwEnumStoreType
void bufferSendOutReturn_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port bufferSendOutReturn.
void pingIn_handlerBase(FwIndexType portNum, U32 key)
Handler base-class function for input port pingIn.
virtual ~BufferAccumulatorComponentBase()
Destroy BufferAccumulatorComponentBase object.
friend class BufferAccumulatorTester
Friend class tester implementation to support white-box testing.
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
static constexpr FwIndexType getNum_bufferSendInReturn_InputPorts()
virtual void pingIn_preMsgHook(FwIndexType portNum, U32 key)
Pre-message hook for async input port pingIn.
Svc::InputPingPort * get_pingIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_pingOut_OutputPorts()
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
static constexpr FwIndexType getNum_bufferSendInFill_InputPorts()
void log_ACTIVITY_HI_BA_PartialDrainDone(U32 numDrained) const
Enum representing a command response.
BufferAccumulatorComponentBase(const char *compName="")
Construct BufferAccumulatorComponentBase object.
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
friend class BufferAccumulatorTesterBase
Friend class tester to support autocoded test harness.
void init()
Object initializer.
Definition: ObjBase.cpp:24
void log_WARNING_LO_BA_NonBlockDrain(U32 numWillDrain, U32 numReqDrain) const
static constexpr FwIndexType getNum_bufferSendOutDrain_OutputPorts()
FwIdType FwEventIdType
The type of an event identifier.
void set_bufferSendOutReturn_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferSendOutReturn[portNum].
virtual void pingIn_handler(FwIndexType portNum, U32 key)=0
Handler for input port pingIn.
void set_pingOut_OutputPort(FwIndexType portNum, Svc::InputPingPort *port)
Connect port to pingOut[portNum].
void log_WARNING_HI_BA_StillDraining(U32 numDrained, U32 numToDrain) const
void tlmWrite_BA_NumQueuedBuffers(U32 arg, Fw::Time _tlmTime=Fw::Time()) const
virtual void bufferSendInFill_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferSendInFill.
void pingOut_out(FwIndexType portNum, U32 key) const
Invoke output port pingOut.
void BA_DrainBuffers_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
FwIdType FwChanIdType
The type of a telemetry channel identifier.
void regCommands()
Register commands with the Command Dispatcher.
Got DrainBuffers command while executing DrainBuffers command.
static constexpr FwIndexType getNum_cmdRegOut_OutputPorts()
void BA_SetMode_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
static constexpr FwIndexType getNum_cmdIn_InputPorts()
Enum representing event severity.
Not enough buffers to complete requested drain, and NOBLOCK was set; will only drain what we have...
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
virtual void BA_DrainBuffers_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command BA_DrainBuffers.
void set_bufferSendOutDrain_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferSendOutDrain[portNum].
bool isConnected_eventOut_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
Fw::InputBufferSendPort * get_bufferSendInReturn_InputPort(FwIndexType portNum)
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
virtual void bufferSendInFill_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferSendInFill.
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
PlatformIndexType FwIndexType
void bufferSendOutDrain_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port bufferSendOutDrain.
static constexpr FwIndexType getNum_bufferSendOutReturn_OutputPorts()
bool isConnected_bufferSendOutReturn_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
Fw::InputBufferSendPort * get_bufferSendInFill_InputPort(FwIndexType portNum)
void log_WARNING_HI_BA_DrainStalled(U32 numDrained, U32 numToDrain) const
RateGroupDivider component implementation.
virtual void bufferSendInReturn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferSendInReturn.
void bufferSendInFill_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferSendInFill.
The Buffer Accumulator instance received a buffer when its queue was full. To avoid uncontrolled send...
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum) const
The Buffer Accumulator instance accepted and enqueued a buffer. To avoid uncontrolled sending of even...
bool isConnected_bufferSendOutDrain_OutputPort(FwIndexType portNum) const
void set_cmdRegOut_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegOut[portNum].
Auto-generated base for BufferAccumulator component.
void bufferSendInReturn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferSendInReturn.
virtual void BA_DrainBuffers_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, U32 numToDrain, Svc::BufferAccumulator_BlockMode blockMode)=0
bool isConnected_pingOut_OutputPort(FwIndexType portNum) const
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
virtual void BA_SetMode_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command BA_SetMode.