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 #include "Fw/Log/LogTextPortAc.hpp"
22 #if !FW_DIRECT_PORT_CALLS
24 #endif
25 #if !FW_DIRECT_PORT_CALLS
27 #endif
28 #include "Fw/Time/TimePortAc.hpp"
29 #include "Fw/Tlm/TlmPortAc.hpp"
30 #include "Fw/Tlm/TlmString.hpp"
33 #include "Svc/Ping/PingPortAc.hpp"
34 
35 namespace Svc {
36 
41  {
42 
43  // ----------------------------------------------------------------------
44  // Friend classes
45  // ----------------------------------------------------------------------
46 
51 
52  protected:
53 
54  // ----------------------------------------------------------------------
55  // Constants
56  // ----------------------------------------------------------------------
57 
59  enum {
61  };
62 
64  enum {
68  };
69 
71  enum {
78  };
79 
81  enum {
85  };
86 
88  enum {
91  };
92 
94  enum {
102  };
103 
105  enum {
107  };
108 
109  public:
110 
111  // ----------------------------------------------------------------------
112  // Component initialization
113  // ----------------------------------------------------------------------
114 
116  void init(
117  FwSizeType queueDepth,
118  FwEnumStoreType instance = 0
119  );
120 
121 #if !FW_DIRECT_PORT_CALLS
122 
123  public:
124 
125  // ----------------------------------------------------------------------
126  // Getters for special input ports
127  // ----------------------------------------------------------------------
128 
133  FwIndexType portNum
134  );
135 
136 #endif
137 
138 #if !FW_DIRECT_PORT_CALLS
139 
140  public:
141 
142  // ----------------------------------------------------------------------
143  // Getters for typed input ports
144  // ----------------------------------------------------------------------
145 
150  FwIndexType portNum
151  );
152 
157  FwIndexType portNum
158  );
159 
164  FwIndexType portNum
165  );
166 
167 #endif
168 
169 #if !FW_DIRECT_PORT_CALLS
170 
171  public:
172 
173  // ----------------------------------------------------------------------
174  // Connect input ports to special output ports
175  // ----------------------------------------------------------------------
176 
179  FwIndexType portNum,
180  Fw::InputCmdRegPort* port
181  );
182 
185  FwIndexType portNum,
187  );
188 
191  FwIndexType portNum,
192  Fw::InputLogPort* port
193  );
194 
195 #if FW_ENABLE_TEXT_LOGGING == 1
196 
198  void set_eventOutText_OutputPort(
199  FwIndexType portNum,
200  Fw::InputLogTextPort* port
201  );
202 
203 #endif
204 
207  FwIndexType portNum,
208  Fw::InputTimePort* port
209  );
210 
213  FwIndexType portNum,
214  Fw::InputTlmPort* port
215  );
216 
217 #endif
218 
219 #if !FW_DIRECT_PORT_CALLS
220 
221  public:
222 
223  // ----------------------------------------------------------------------
224  // Connect typed input ports to typed output ports
225  // ----------------------------------------------------------------------
226 
229  FwIndexType portNum,
231  );
232 
235  FwIndexType portNum,
237  );
238 
241  FwIndexType portNum,
242  Svc::InputPingPort* port
243  );
244 
245 #endif
246 
247 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
248 
249  public:
250 
251  // ----------------------------------------------------------------------
252  // Connect serial input ports to special output ports
253  // ----------------------------------------------------------------------
254 
257  FwIndexType portNum,
258  Fw::InputSerializePort* port
259  );
260 
263  FwIndexType portNum,
264  Fw::InputSerializePort* port
265  );
266 
269  FwIndexType portNum,
270  Fw::InputSerializePort* port
271  );
272 
273 #if FW_ENABLE_TEXT_LOGGING == 1
274 
276  void set_eventOutText_OutputPort(
277  FwIndexType portNum,
278  Fw::InputSerializePort* port
279  );
280 
281 #endif
282 
285  FwIndexType portNum,
286  Fw::InputSerializePort* port
287  );
288 
291  FwIndexType portNum,
292  Fw::InputSerializePort* port
293  );
294 
295 #endif
296 
297 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
298 
299  public:
300 
301  // ----------------------------------------------------------------------
302  // Connect serial input ports to typed output ports
303  // ----------------------------------------------------------------------
304 
307  FwIndexType portNum,
308  Fw::InputSerializePort* port
309  );
310 
313  FwIndexType portNum,
314  Fw::InputSerializePort* port
315  );
316 
319  FwIndexType portNum,
320  Fw::InputSerializePort* port
321  );
322 
323 #endif
324 
325  public:
326 
327  // ----------------------------------------------------------------------
328  // Command registration
329  // ----------------------------------------------------------------------
330 
334  void regCommands();
335 
336  protected:
337 
338  // ----------------------------------------------------------------------
339  // Component construction and destruction
340  // ----------------------------------------------------------------------
341 
344  const char* compName = ""
345  );
346 
349 
350  protected:
351 
352  // ----------------------------------------------------------------------
353  // Getters for numbers of special input ports
354  // ----------------------------------------------------------------------
355 
360  return NUM_CMDIN_INPUT_PORTS;
361  }
362 
363  protected:
364 
365  // ----------------------------------------------------------------------
366  // Getters for numbers of typed input ports
367  // ----------------------------------------------------------------------
368 
374  }
375 
381  }
382 
387  return NUM_PINGIN_INPUT_PORTS;
388  }
389 
390  protected:
391 
392  // ----------------------------------------------------------------------
393  // Getters for numbers of special output ports
394  // ----------------------------------------------------------------------
395 
401  }
402 
408  }
409 
415  }
416 
417 #if FW_ENABLE_TEXT_LOGGING == 1
418 
422  static constexpr FwIndexType getNum_eventOutText_OutputPorts() {
424  }
425 
426 #endif
427 
433  }
434 
440  }
441 
442  protected:
443 
444  // ----------------------------------------------------------------------
445  // Getters for numbers of typed output ports
446  // ----------------------------------------------------------------------
447 
453  }
454 
460  }
461 
467  }
468 
469  protected:
470 
471  // ----------------------------------------------------------------------
472  // Connection status queries for special output ports
473  // ----------------------------------------------------------------------
474 
479  FwIndexType portNum
480  ) const;
481 
486  FwIndexType portNum
487  ) const;
488 
493  FwIndexType portNum
494  ) const;
495 
496 #if FW_ENABLE_TEXT_LOGGING == 1
497 
501  bool isConnected_eventOutText_OutputPort(
502  FwIndexType portNum
503  ) const;
504 
505 #endif
506 
511  FwIndexType portNum
512  ) const;
513 
518  FwIndexType portNum
519  ) const;
520 
521  protected:
522 
523  // ----------------------------------------------------------------------
524  // Connection status queries for typed output ports
525  // ----------------------------------------------------------------------
526 
531  FwIndexType portNum
532  ) const;
533 
538  FwIndexType portNum
539  ) const;
540 
545  FwIndexType portNum
546  ) const;
547 
548 #if FW_DIRECT_PORT_CALLS
549  public:
550 #else
551  protected:
552 #endif
553 
554  // ----------------------------------------------------------------------
555  // Port handler base-class functions for special input ports
556  //
557  // Call these functions directly to bypass the corresponding ports
558  // ----------------------------------------------------------------------
559 
561  void cmdIn_handlerBase(
562  FwIndexType portNum,
563  FwOpcodeType opCode,
564  U32 cmdSeq,
565  Fw::CmdArgBuffer& args
566  );
567 
568  protected:
569 
570  // ----------------------------------------------------------------------
571  // Handlers to implement for typed input ports
572  // ----------------------------------------------------------------------
573 
575  virtual void bufferSendInFill_handler(
576  FwIndexType portNum,
577  Fw::Buffer& fwBuffer
578  ) = 0;
579 
581  virtual void bufferSendInReturn_handler(
582  FwIndexType portNum,
583  Fw::Buffer& fwBuffer
584  ) = 0;
585 
587  virtual void pingIn_handler(
588  FwIndexType portNum,
589  U32 key
590  ) = 0;
591 
592 #if FW_DIRECT_PORT_CALLS
593  public:
594 #else
595  protected:
596 #endif
597 
598  // ----------------------------------------------------------------------
599  // Port handler base-class functions for typed input ports
600  //
601  // Call these functions directly to bypass the corresponding ports
602  // ----------------------------------------------------------------------
603 
606  FwIndexType portNum,
607  Fw::Buffer& fwBuffer
608  );
609 
612  FwIndexType portNum,
613  Fw::Buffer& fwBuffer
614  );
615 
617  void pingIn_handlerBase(
618  FwIndexType portNum,
619  U32 key
620  );
621 
622  protected:
623 
624  // ----------------------------------------------------------------------
625  // Pre-message hooks for typed async input ports
626  //
627  // Each of these functions is invoked just before processing a message
628  // on the corresponding port. By default, they do nothing. You can
629  // override them to provide specific pre-message behavior.
630  // ----------------------------------------------------------------------
631 
633  virtual void bufferSendInFill_preMsgHook(
634  FwIndexType portNum,
635  Fw::Buffer& fwBuffer
636  );
637 
639  virtual void bufferSendInReturn_preMsgHook(
640  FwIndexType portNum,
641  Fw::Buffer& fwBuffer
642  );
643 
645  virtual void pingIn_preMsgHook(
646  FwIndexType portNum,
647  U32 key
648  );
649 
650  protected:
651 
652  // ----------------------------------------------------------------------
653  // Invocation functions for typed output ports
654  // ----------------------------------------------------------------------
655 
658  FwIndexType portNum,
659  Fw::Buffer& fwBuffer
660  ) const;
661 
664  FwIndexType portNum,
665  Fw::Buffer& fwBuffer
666  ) const;
667 
669  void pingOut_out(
670  FwIndexType portNum,
671  U32 key
672  ) const;
673 
674  protected:
675 
676  // ----------------------------------------------------------------------
677  // Command response
678  // ----------------------------------------------------------------------
679 
681  void cmdResponse_out(
682  FwOpcodeType opCode,
683  U32 cmdSeq,
684  Fw::CmdResponse response
685  );
686 
687  protected:
688 
689  // ----------------------------------------------------------------------
690  // Command handlers to implement
691  // ----------------------------------------------------------------------
692 
696  virtual void BA_SetMode_cmdHandler(
697  FwOpcodeType opCode,
698  U32 cmdSeq,
700  ) = 0;
701 
705  virtual void BA_DrainBuffers_cmdHandler(
706  FwOpcodeType opCode,
707  U32 cmdSeq,
708  U32 numToDrain,
710  ) = 0;
711 
712  protected:
713 
714  // ----------------------------------------------------------------------
715  // Command handler base-class functions
716  //
717  // Call these functions directly to bypass the command input port
718  // ----------------------------------------------------------------------
719 
724  FwOpcodeType opCode,
725  U32 cmdSeq,
726  Fw::CmdArgBuffer& args
727  );
728 
733  FwOpcodeType opCode,
734  U32 cmdSeq,
735  Fw::CmdArgBuffer& args
736  );
737 
738  protected:
739 
740  // ----------------------------------------------------------------------
741  // Pre-message hooks for async commands
742  //
743  // Each of these functions is invoked just before processing the
744  // corresponding command. By default they do nothing. You can
745  // override them to provide specific pre-command behavior.
746  // ----------------------------------------------------------------------
747 
749  virtual void BA_SetMode_preMsgHook(
750  FwOpcodeType opCode,
751  U32 cmdSeq
752  );
753 
755  virtual void BA_DrainBuffers_preMsgHook(
756  FwOpcodeType opCode,
757  U32 cmdSeq
758  );
759 
760  protected:
761 
762  // ----------------------------------------------------------------------
763  // Event logging functions
764  // ----------------------------------------------------------------------
765 
770 
774  void log_WARNING_HI_BA_QueueFull() const;
775 
780  U32 numDrained,
781  U32 numToDrain
782  ) const;
783 
788 
793  U32 numDrained,
794  U32 numToDrain
795  ) const;
796 
800  void log_ACTIVITY_HI_BA_PartialDrainDone(U32 numDrained) const;
801 
806  U32 numWillDrain,
807  U32 numReqDrain
808  ) const;
809 
810  protected:
811 
812  // ----------------------------------------------------------------------
813  // Telemetry serialized write
814  // ----------------------------------------------------------------------
815 
820  void tlmWrite(
821  FwChanIdType id,
822  Fw::TlmBuffer& _tlmBuff,
823  Fw::Time _tlmTime = Fw::Time()
824  ) const;
825 
826  protected:
827 
828  // ----------------------------------------------------------------------
829  // Telemetry write functions
830  // ----------------------------------------------------------------------
831 
836  U32 arg,
837  Fw::Time _tlmTime = Fw::Time()
838  ) const;
839 
840  protected:
841 
842  // ----------------------------------------------------------------------
843  // Time
844  // ----------------------------------------------------------------------
845 
849  Fw::Time getTime() const;
850 
851  private:
852 
853  // ----------------------------------------------------------------------
854  // Message dispatch functions
855  // ----------------------------------------------------------------------
856 
858  virtual MsgDispatchStatus doDispatch();
859 
860  private:
861 
862  // ----------------------------------------------------------------------
863  // Calls for messages received on special input ports
864  // ----------------------------------------------------------------------
865 
867  static void m_p_cmdIn_in(
868  Fw::PassiveComponentBase* callComp,
869  FwIndexType portNum,
870  FwOpcodeType opCode,
871  U32 cmdSeq,
872  Fw::CmdArgBuffer& args
873  );
874 
875  private:
876 
877  // ----------------------------------------------------------------------
878  // Calls for messages received on typed input ports
879  // ----------------------------------------------------------------------
880 
882  static void m_p_bufferSendInFill_in(
883  Fw::PassiveComponentBase* callComp,
884  FwIndexType portNum,
885  Fw::Buffer& fwBuffer
886  );
887 
889  static void m_p_bufferSendInReturn_in(
890  Fw::PassiveComponentBase* callComp,
891  FwIndexType portNum,
892  Fw::Buffer& fwBuffer
893  );
894 
896  static void m_p_pingIn_in(
897  Fw::PassiveComponentBase* callComp,
898  FwIndexType portNum,
899  U32 key
900  );
901 
902  private:
903 
904  // ----------------------------------------------------------------------
905  // Invocation functions for special output ports
906  // ----------------------------------------------------------------------
907 
909  void cmdRegOut_out(
910  FwIndexType portNum,
911  FwOpcodeType opCode
912  ) const;
913 
915  void cmdResponseOut_out(
916  FwIndexType portNum,
917  FwOpcodeType opCode,
918  U32 cmdSeq,
919  const Fw::CmdResponse& response
920  ) const;
921 
923  void eventOut_out(
924  FwIndexType portNum,
925  FwEventIdType id,
926  Fw::Time& timeTag,
927  const Fw::LogSeverity& severity,
928  Fw::LogBuffer& args
929  ) const;
930 
931 #if FW_ENABLE_TEXT_LOGGING
932 
934  void eventOutText_out(
935  FwIndexType portNum,
936  FwEventIdType id,
937  Fw::Time& timeTag,
938  const Fw::LogSeverity& severity,
939  Fw::TextLogString& text
940  ) const;
941 
942 #endif
943 
945  void timeCaller_out(
946  FwIndexType portNum,
947  Fw::Time& time
948  ) const;
949 
951  void tlmOut_out(
952  FwIndexType portNum,
953  FwChanIdType id,
954  Fw::Time& timeTag,
955  Fw::TlmBuffer& val
956  ) const;
957 
958 #if !FW_DIRECT_PORT_CALLS
959 
960  private:
961 
962  // ----------------------------------------------------------------------
963  // Special input ports
964  // ----------------------------------------------------------------------
965 
967  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
968 
969 #endif
970 
971 #if !FW_DIRECT_PORT_CALLS
972 
973  private:
974 
975  // ----------------------------------------------------------------------
976  // Typed input ports
977  // ----------------------------------------------------------------------
978 
980  Fw::InputBufferSendPort m_bufferSendInFill_InputPort[NUM_BUFFERSENDINFILL_INPUT_PORTS];
981 
983  Fw::InputBufferSendPort m_bufferSendInReturn_InputPort[NUM_BUFFERSENDINRETURN_INPUT_PORTS];
984 
986  Svc::InputPingPort m_pingIn_InputPort[NUM_PINGIN_INPUT_PORTS];
987 
988 #endif
989 
990 #if !FW_DIRECT_PORT_CALLS
991 
992  private:
993 
994  // ----------------------------------------------------------------------
995  // Special output ports
996  // ----------------------------------------------------------------------
997 
999  Fw::OutputCmdRegPort m_cmdRegOut_OutputPort[NUM_CMDREGOUT_OUTPUT_PORTS];
1000 
1002  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
1003 
1005  Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
1006 
1007 #if FW_ENABLE_TEXT_LOGGING == 1
1008 
1010  Fw::OutputLogTextPort m_eventOutText_OutputPort[NUM_EVENTOUTTEXT_OUTPUT_PORTS];
1011 
1012 #endif
1013 
1015  Fw::OutputTimePort m_timeCaller_OutputPort[NUM_TIMECALLER_OUTPUT_PORTS];
1016 
1018  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1019 
1020 #endif
1021 
1022 #if !FW_DIRECT_PORT_CALLS
1023 
1024  private:
1025 
1026  // ----------------------------------------------------------------------
1027  // Typed output ports
1028  // ----------------------------------------------------------------------
1029 
1031  Fw::OutputBufferSendPort m_bufferSendOutDrain_OutputPort[NUM_BUFFERSENDOUTDRAIN_OUTPUT_PORTS];
1032 
1034  Fw::OutputBufferSendPort m_bufferSendOutReturn_OutputPort[NUM_BUFFERSENDOUTRETURN_OUTPUT_PORTS];
1035 
1037  Svc::OutputPingPort m_pingOut_OutputPort[NUM_PINGOUT_OUTPUT_PORTS];
1038 
1039 #endif
1040 
1041  };
1042 
1043 }
1044 
1045 #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()
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].
Not enough buffers to complete requested drain, and NOBLOCK was set; will only drain what we have...
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.
Ran out of buffers while executing DrainBuffers command.
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.
The Buffer Accumulator instance accepted and enqueued a buffer. To avoid uncontrolled sending of even...
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.
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.
bool isConnected_cmdRegOut_OutputPort(FwIndexType portNum) const
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.
Got DrainBuffers command while executing DrainBuffers command.
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.
The Buffer Accumulator instance received a buffer when its queue was full. To avoid uncontrolled send...
virtual void BA_SetMode_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command BA_SetMode.