F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
ComQueueComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title ComQueueComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for ComQueue component base class
5 // ======================================================================
6 
7 #ifndef Svc_ComQueueComponentAc_HPP
8 #define Svc_ComQueueComponentAc_HPP
9 
10 #include <atomic>
11 
13 #include "Fw/Cmd/CmdPortAc.hpp"
14 #include "Fw/Cmd/CmdRegPortAc.hpp"
16 #include "Fw/Cmd/CmdString.hpp"
17 #include "Fw/Com/ComPortAc.hpp"
19 #include "Fw/FPrimeBasicTypes.hpp"
20 #include "Fw/Log/LogPortAc.hpp"
21 #include "Fw/Log/LogString.hpp"
22 #if FW_ENABLE_TEXT_LOGGING == 1
23 #include "Fw/Log/LogTextPortAc.hpp"
24 #endif
25 #if !FW_DIRECT_PORT_CALLS
27 #endif
28 #if !FW_DIRECT_PORT_CALLS
30 #endif
32 #include "Fw/Time/TimePortAc.hpp"
33 #include "Fw/Tlm/TlmPortAc.hpp"
34 #include "Fw/Tlm/TlmString.hpp"
41 
42 namespace Svc {
43 
50  {
51 
52  // ----------------------------------------------------------------------
53  // Friend classes
54  // ----------------------------------------------------------------------
55 
57  friend class ComQueueTesterBase;
59  friend class ComQueueTester;
60 
61  protected:
62 
63  // ----------------------------------------------------------------------
64  // Constants
65  // ----------------------------------------------------------------------
66 
68  enum {
70  };
71 
73  enum {
79  };
80 
82  enum {
89  };
90 
92  enum {
95  };
96 
98  enum {
104  };
105 
107  enum {
110  };
111 
113  enum {
116  };
117 
118  public:
119 
120  // ----------------------------------------------------------------------
121  // Component initialization
122  // ----------------------------------------------------------------------
123 
125  void init(
126  FwSizeType queueDepth,
127  FwEnumStoreType instance = 0
128  );
129 
130 #if !FW_DIRECT_PORT_CALLS
131 
132  public:
133 
134  // ----------------------------------------------------------------------
135  // Getters for special input ports
136  // ----------------------------------------------------------------------
137 
142  FwIndexType portNum
143  );
144 
145 #endif
146 
147 #if !FW_DIRECT_PORT_CALLS
148 
149  public:
150 
151  // ----------------------------------------------------------------------
152  // Getters for typed input ports
153  // ----------------------------------------------------------------------
154 
159  FwIndexType portNum
160  );
161 
166  FwIndexType portNum
167  );
168 
173  FwIndexType portNum
174  );
175 
180  FwIndexType portNum
181  );
182 
187  FwIndexType portNum
188  );
189 
190 #endif
191 
192 #if !FW_DIRECT_PORT_CALLS
193 
194  public:
195 
196  // ----------------------------------------------------------------------
197  // Connect input ports to special output ports
198  // ----------------------------------------------------------------------
199 
202  FwIndexType portNum,
203  Fw::InputCmdRegPort* port
204  );
205 
208  FwIndexType portNum,
210  );
211 
213  void set_Log_OutputPort(
214  FwIndexType portNum,
215  Fw::InputLogPort* port
216  );
217 
218 #if FW_ENABLE_TEXT_LOGGING == 1
219 
221  void set_LogText_OutputPort(
222  FwIndexType portNum,
223  Fw::InputLogTextPort* port
224  );
225 
226 #endif
227 
229  void set_Time_OutputPort(
230  FwIndexType portNum,
231  Fw::InputTimePort* port
232  );
233 
235  void set_Tlm_OutputPort(
236  FwIndexType portNum,
237  Fw::InputTlmPort* port
238  );
239 
240 #endif
241 
242 #if !FW_DIRECT_PORT_CALLS
243 
244  public:
245 
246  // ----------------------------------------------------------------------
247  // Connect typed input ports to typed output ports
248  // ----------------------------------------------------------------------
249 
252  FwIndexType portNum,
254  );
255 
258  FwIndexType portNum,
260  );
261 
262 #endif
263 
264 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
265 
266  public:
267 
268  // ----------------------------------------------------------------------
269  // Connect serial input ports to special output ports
270  // ----------------------------------------------------------------------
271 
274  FwIndexType portNum,
275  Fw::InputSerializePort* port
276  );
277 
280  FwIndexType portNum,
281  Fw::InputSerializePort* port
282  );
283 
285  void set_Log_OutputPort(
286  FwIndexType portNum,
287  Fw::InputSerializePort* port
288  );
289 
290 #if FW_ENABLE_TEXT_LOGGING == 1
291 
293  void set_LogText_OutputPort(
294  FwIndexType portNum,
295  Fw::InputSerializePort* port
296  );
297 
298 #endif
299 
301  void set_Time_OutputPort(
302  FwIndexType portNum,
303  Fw::InputSerializePort* port
304  );
305 
307  void set_Tlm_OutputPort(
308  FwIndexType portNum,
309  Fw::InputSerializePort* port
310  );
311 
312 #endif
313 
314 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
315 
316  public:
317 
318  // ----------------------------------------------------------------------
319  // Connect serial input ports to typed output ports
320  // ----------------------------------------------------------------------
321 
324  FwIndexType portNum,
325  Fw::InputSerializePort* port
326  );
327 
330  FwIndexType portNum,
331  Fw::InputSerializePort* port
332  );
333 
334 #endif
335 
336  public:
337 
338  // ----------------------------------------------------------------------
339  // Command registration
340  // ----------------------------------------------------------------------
341 
345  void regCommands();
346 
347  protected:
348 
349  // ----------------------------------------------------------------------
350  // Component construction and destruction
351  // ----------------------------------------------------------------------
352 
355  const char* compName = ""
356  );
357 
359  virtual ~ComQueueComponentBase();
360 
361  protected:
362 
363  // ----------------------------------------------------------------------
364  // Getters for numbers of special input ports
365  // ----------------------------------------------------------------------
366 
372  }
373 
374  protected:
375 
376  // ----------------------------------------------------------------------
377  // Getters for numbers of typed input ports
378  // ----------------------------------------------------------------------
379 
385  }
386 
392  }
393 
399  }
400 
406  }
407 
411  static constexpr FwIndexType getNum_run_InputPorts() {
412  return NUM_RUN_INPUT_PORTS;
413  }
414 
415  protected:
416 
417  // ----------------------------------------------------------------------
418  // Getters for numbers of special output ports
419  // ----------------------------------------------------------------------
420 
426  }
427 
433  }
434 
438  static constexpr FwIndexType getNum_Log_OutputPorts() {
439  return NUM_LOG_OUTPUT_PORTS;
440  }
441 
442 #if FW_ENABLE_TEXT_LOGGING == 1
443 
447  static constexpr FwIndexType getNum_LogText_OutputPorts() {
449  }
450 
451 #endif
452 
457  return NUM_TIME_OUTPUT_PORTS;
458  }
459 
463  static constexpr FwIndexType getNum_Tlm_OutputPorts() {
464  return NUM_TLM_OUTPUT_PORTS;
465  }
466 
467  protected:
468 
469  // ----------------------------------------------------------------------
470  // Getters for numbers of typed output ports
471  // ----------------------------------------------------------------------
472 
478  }
479 
485  }
486 
487  protected:
488 
489  // ----------------------------------------------------------------------
490  // Connection status queries for special output ports
491  // ----------------------------------------------------------------------
492 
497  FwIndexType portNum
498  ) const;
499 
504  FwIndexType portNum
505  ) const;
506 
511  FwIndexType portNum
512  ) const;
513 
514 #if FW_ENABLE_TEXT_LOGGING == 1
515 
519  bool isConnected_LogText_OutputPort(
520  FwIndexType portNum
521  ) const;
522 
523 #endif
524 
529  FwIndexType portNum
530  ) const;
531 
536  FwIndexType portNum
537  ) const;
538 
539  protected:
540 
541  // ----------------------------------------------------------------------
542  // Connection status queries for typed output ports
543  // ----------------------------------------------------------------------
544 
549  FwIndexType portNum
550  ) const;
551 
556  FwIndexType portNum
557  ) const;
558 
559 #if FW_DIRECT_PORT_CALLS
560  public:
561 #else
562  protected:
563 #endif
564 
565  // ----------------------------------------------------------------------
566  // Port handler base-class functions for special input ports
567  //
568  // Call these functions directly to bypass the corresponding ports
569  // ----------------------------------------------------------------------
570 
572  void CmdDisp_handlerBase(
573  FwIndexType portNum,
574  FwOpcodeType opCode,
575  U32 cmdSeq,
576  Fw::CmdArgBuffer& args
577  );
578 
579  protected:
580 
581  // ----------------------------------------------------------------------
582  // Handlers to implement for typed input ports
583  // ----------------------------------------------------------------------
584 
586  virtual void bufferQueueIn_handler(
587  FwIndexType portNum,
588  Fw::Buffer& fwBuffer
589  ) = 0;
590 
592  virtual void comPacketQueueIn_handler(
593  FwIndexType portNum,
594  Fw::ComBuffer& data,
595  U32 context
596  ) = 0;
597 
599  virtual void comStatusIn_handler(
600  FwIndexType portNum,
601  Fw::Success& condition
602  ) = 0;
603 
605  virtual void dataReturnIn_handler(
606  FwIndexType portNum,
607  Fw::Buffer& data,
608  const ComCfg::FrameContext& context
609  ) = 0;
610 
612  virtual void run_handler(
613  FwIndexType portNum,
614  U32 context
615  ) = 0;
616 
617 #if FW_DIRECT_PORT_CALLS
618  public:
619 #else
620  protected:
621 #endif
622 
623  // ----------------------------------------------------------------------
624  // Port handler base-class functions for typed input ports
625  //
626  // Call these functions directly to bypass the corresponding ports
627  // ----------------------------------------------------------------------
628 
631  FwIndexType portNum,
632  Fw::Buffer& fwBuffer
633  );
634 
637  FwIndexType portNum,
638  Fw::ComBuffer& data,
639  U32 context
640  );
641 
644  FwIndexType portNum,
645  Fw::Success& condition
646  );
647 
650  FwIndexType portNum,
651  Fw::Buffer& data,
652  const ComCfg::FrameContext& context
653  );
654 
656  void run_handlerBase(
657  FwIndexType portNum,
658  U32 context
659  );
660 
661  protected:
662 
663  // ----------------------------------------------------------------------
664  // Pre-message hooks for typed async input ports
665  //
666  // Each of these functions is invoked just before processing a message
667  // on the corresponding port. By default, they do nothing. You can
668  // override them to provide specific pre-message behavior.
669  // ----------------------------------------------------------------------
670 
672  virtual void bufferQueueIn_preMsgHook(
673  FwIndexType portNum,
674  Fw::Buffer& fwBuffer
675  );
676 
678  virtual void comPacketQueueIn_preMsgHook(
679  FwIndexType portNum,
680  Fw::ComBuffer& data,
681  U32 context
682  );
683 
685  virtual void comStatusIn_preMsgHook(
686  FwIndexType portNum,
687  Fw::Success& condition
688  );
689 
691  virtual void run_preMsgHook(
692  FwIndexType portNum,
693  U32 context
694  );
695 
696  protected:
697 
698  // ----------------------------------------------------------------------
699  // Hooks for typed async input ports
700  //
701  // Each of these functions is invoked when placing a message on the
702  // queue would cause the queue to overlow. You should override them to provide
703  // specific overflow behavior.
704  // ----------------------------------------------------------------------
705 
707  virtual void bufferQueueIn_overflowHook(
708  FwIndexType portNum,
709  Fw::Buffer& fwBuffer
710  ) = 0;
711 
712  protected:
713 
714  // ----------------------------------------------------------------------
715  // Invocation functions for typed output ports
716  // ----------------------------------------------------------------------
717 
719  void bufferReturnOut_out(
720  FwIndexType portNum,
721  Fw::Buffer& fwBuffer
722  ) const;
723 
725  void dataOut_out(
726  FwIndexType portNum,
727  Fw::Buffer& data,
728  const ComCfg::FrameContext& context
729  ) const;
730 
731  protected:
732 
733  // ----------------------------------------------------------------------
734  // Command response
735  // ----------------------------------------------------------------------
736 
738  void cmdResponse_out(
739  FwOpcodeType opCode,
740  U32 cmdSeq,
741  Fw::CmdResponse response
742  );
743 
744  protected:
745 
746  // ----------------------------------------------------------------------
747  // Command handlers to implement
748  // ----------------------------------------------------------------------
749 
754  virtual void FLUSH_QUEUE_cmdHandler(
755  FwOpcodeType opCode,
756  U32 cmdSeq,
757  Svc::QueueType queueType,
758  FwIndexType indexType
759  ) = 0;
760 
765  virtual void FLUSH_ALL_QUEUES_cmdHandler(
766  FwOpcodeType opCode,
767  U32 cmdSeq
768  ) = 0;
769 
773  virtual void SET_QUEUE_PRIORITY_cmdHandler(
774  FwOpcodeType opCode,
775  U32 cmdSeq,
776  Svc::QueueType queueType,
777  FwIndexType indexType,
778  FwIndexType newPriority
779  ) = 0;
780 
781  protected:
782 
783  // ----------------------------------------------------------------------
784  // Command handler base-class functions
785  //
786  // Call these functions directly to bypass the command input port
787  // ----------------------------------------------------------------------
788 
794  FwOpcodeType opCode,
795  U32 cmdSeq,
796  Fw::CmdArgBuffer& args
797  );
798 
804  FwOpcodeType opCode,
805  U32 cmdSeq,
806  Fw::CmdArgBuffer& args
807  );
808 
813  FwOpcodeType opCode,
814  U32 cmdSeq,
815  Fw::CmdArgBuffer& args
816  );
817 
818  protected:
819 
820  // ----------------------------------------------------------------------
821  // Pre-message hooks for async commands
822  //
823  // Each of these functions is invoked just before processing the
824  // corresponding command. By default they do nothing. You can
825  // override them to provide specific pre-command behavior.
826  // ----------------------------------------------------------------------
827 
829  virtual void FLUSH_QUEUE_preMsgHook(
830  FwOpcodeType opCode,
831  U32 cmdSeq
832  );
833 
835  virtual void FLUSH_ALL_QUEUES_preMsgHook(
836  FwOpcodeType opCode,
837  U32 cmdSeq
838  );
839 
841  virtual void SET_QUEUE_PRIORITY_preMsgHook(
842  FwOpcodeType opCode,
843  U32 cmdSeq
844  );
845 
846  protected:
847 
848  // ----------------------------------------------------------------------
849  // Event logging functions
850  // ----------------------------------------------------------------------
851 
856  Svc::QueueType queueType,
857  FwIndexType index
858  ) const;
859 
864  Svc::QueueType queueType,
865  FwIndexType indexType,
866  FwIndexType newPriority
867  ) const;
868 
869  protected:
870 
871  // ----------------------------------------------------------------------
872  // Telemetry serialized write
873  // ----------------------------------------------------------------------
874 
879  void tlmWrite(
880  FwChanIdType id,
881  Fw::TlmBuffer& _tlmBuff,
882  Fw::Time _tlmTime = Fw::Time()
883  ) const;
884 
885  protected:
886 
887  // ----------------------------------------------------------------------
888  // Telemetry write functions
889  // ----------------------------------------------------------------------
890 
895  const Svc::ComQueueDepth& arg,
896  Fw::Time _tlmTime = Fw::Time()
897  ) const;
898 
903  const Svc::BuffQueueDepth& arg,
904  Fw::Time _tlmTime = Fw::Time()
905  ) const;
906 
907  protected:
908 
909  // ----------------------------------------------------------------------
910  // Time
911  // ----------------------------------------------------------------------
912 
916  Fw::Time getTime() const;
917 
918  private:
919 
920  // ----------------------------------------------------------------------
921  // Message dispatch functions
922  // ----------------------------------------------------------------------
923 
925  virtual MsgDispatchStatus doDispatch();
926 
927  private:
928 
929  // ----------------------------------------------------------------------
930  // Calls for messages received on special input ports
931  // ----------------------------------------------------------------------
932 
934  static void m_p_CmdDisp_in(
935  Fw::PassiveComponentBase* callComp,
936  FwIndexType portNum,
937  FwOpcodeType opCode,
938  U32 cmdSeq,
939  Fw::CmdArgBuffer& args
940  );
941 
942  private:
943 
944  // ----------------------------------------------------------------------
945  // Calls for messages received on typed input ports
946  // ----------------------------------------------------------------------
947 
949  static void m_p_bufferQueueIn_in(
950  Fw::PassiveComponentBase* callComp,
951  FwIndexType portNum,
952  Fw::Buffer& fwBuffer
953  );
954 
956  static void m_p_comPacketQueueIn_in(
957  Fw::PassiveComponentBase* callComp,
958  FwIndexType portNum,
959  Fw::ComBuffer& data,
960  U32 context
961  );
962 
964  static void m_p_comStatusIn_in(
965  Fw::PassiveComponentBase* callComp,
966  FwIndexType portNum,
967  Fw::Success& condition
968  );
969 
971  static void m_p_dataReturnIn_in(
972  Fw::PassiveComponentBase* callComp,
973  FwIndexType portNum,
974  Fw::Buffer& data,
975  const ComCfg::FrameContext& context
976  );
977 
979  static void m_p_run_in(
980  Fw::PassiveComponentBase* callComp,
981  FwIndexType portNum,
982  U32 context
983  );
984 
985  private:
986 
987  // ----------------------------------------------------------------------
988  // Invocation functions for special output ports
989  // ----------------------------------------------------------------------
990 
992  void CmdReg_out(
993  FwIndexType portNum,
994  FwOpcodeType opCode
995  ) const;
996 
998  void CmdStatus_out(
999  FwIndexType portNum,
1000  FwOpcodeType opCode,
1001  U32 cmdSeq,
1002  const Fw::CmdResponse& response
1003  ) const;
1004 
1006  void Log_out(
1007  FwIndexType portNum,
1008  FwEventIdType id,
1009  Fw::Time& timeTag,
1010  const Fw::LogSeverity& severity,
1011  Fw::LogBuffer& args
1012  ) const;
1013 
1014 #if FW_ENABLE_TEXT_LOGGING
1015 
1017  void LogText_out(
1018  FwIndexType portNum,
1019  FwEventIdType id,
1020  Fw::Time& timeTag,
1021  const Fw::LogSeverity& severity,
1022  Fw::TextLogString& text
1023  ) const;
1024 
1025 #endif
1026 
1028  void Time_out(
1029  FwIndexType portNum,
1030  Fw::Time& time
1031  ) const;
1032 
1034  void Tlm_out(
1035  FwIndexType portNum,
1036  FwChanIdType id,
1037  Fw::Time& timeTag,
1038  Fw::TlmBuffer& val
1039  ) const;
1040 
1041 #if !FW_DIRECT_PORT_CALLS
1042 
1043  private:
1044 
1045  // ----------------------------------------------------------------------
1046  // Special input ports
1047  // ----------------------------------------------------------------------
1048 
1050  Fw::InputCmdPort m_CmdDisp_InputPort[NUM_CMDDISP_INPUT_PORTS];
1051 
1052 #endif
1053 
1054 #if !FW_DIRECT_PORT_CALLS
1055 
1056  private:
1057 
1058  // ----------------------------------------------------------------------
1059  // Typed input ports
1060  // ----------------------------------------------------------------------
1061 
1063  Fw::InputBufferSendPort m_bufferQueueIn_InputPort[NUM_BUFFERQUEUEIN_INPUT_PORTS];
1064 
1066  Fw::InputComPort m_comPacketQueueIn_InputPort[NUM_COMPACKETQUEUEIN_INPUT_PORTS];
1067 
1070 
1073 
1075  Svc::InputSchedPort m_run_InputPort[NUM_RUN_INPUT_PORTS];
1076 
1077 #endif
1078 
1079 #if !FW_DIRECT_PORT_CALLS
1080 
1081  private:
1082 
1083  // ----------------------------------------------------------------------
1084  // Special output ports
1085  // ----------------------------------------------------------------------
1086 
1088  Fw::OutputCmdRegPort m_CmdReg_OutputPort[NUM_CMDREG_OUTPUT_PORTS];
1089 
1091  Fw::OutputCmdResponsePort m_CmdStatus_OutputPort[NUM_CMDSTATUS_OUTPUT_PORTS];
1092 
1094  Fw::OutputLogPort m_Log_OutputPort[NUM_LOG_OUTPUT_PORTS];
1095 
1096 #if FW_ENABLE_TEXT_LOGGING == 1
1097 
1099  Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
1100 
1101 #endif
1102 
1104  Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
1105 
1107  Fw::OutputTlmPort m_Tlm_OutputPort[NUM_TLM_OUTPUT_PORTS];
1108 
1109 #endif
1110 
1111 #if !FW_DIRECT_PORT_CALLS
1112 
1113  private:
1114 
1115  // ----------------------------------------------------------------------
1116  // Typed output ports
1117  // ----------------------------------------------------------------------
1118 
1120  Fw::OutputBufferSendPort m_bufferReturnOut_OutputPort[NUM_BUFFERRETURNOUT_OUTPUT_PORTS];
1121 
1124 
1125 #endif
1126 
1127  };
1128 
1129 }
1130 
1131 #endif
virtual void comStatusIn_handler(FwIndexType portNum, Fw::Success &condition)=0
Handler for input port comStatusIn.
static constexpr FwIndexType getNum_Tlm_OutputPorts()
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
virtual ~ComQueueComponentBase()
Destroy ComQueueComponentBase object.
void dataOut_out(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context) const
Invoke output port dataOut.
void FLUSH_QUEUE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
FwIdType FwOpcodeType
The type of a command opcode.
static constexpr FwIndexType getNum_dataReturnIn_InputPorts()
static constexpr FwIndexType getNum_bufferReturnOut_OutputPorts()
PlatformSizeType FwSizeType
void tlmWrite_buffQueueDepth(const Svc::BuffQueueDepth &arg, Fw::Time _tlmTime=Fw::Time()) const
I32 FwEnumStoreType
void set_Log_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to Log[portNum].
bool isConnected_Log_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_CmdDisp_InputPorts()
virtual void FLUSH_ALL_QUEUES_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command FLUSH_ALL_QUEUES.
static constexpr FwIndexType getNum_CmdReg_OutputPorts()
virtual void FLUSH_QUEUE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::QueueType queueType, FwIndexType indexType)=0
virtual void dataReturnIn_handler(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)=0
Handler for input port dataReturnIn.
virtual void SET_QUEUE_PRIORITY_cmdHandler(FwOpcodeType opCode, U32 cmdSeq, Svc::QueueType queueType, FwIndexType indexType, FwIndexType newPriority)=0
void dataReturnIn_handlerBase(FwIndexType portNum, Fw::Buffer &data, const ComCfg::FrameContext &context)
Handler base-class function for input port dataReturnIn.
void set_CmdStatus_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to CmdStatus[portNum].
Svc::InputSchedPort * get_run_InputPort(FwIndexType portNum)
void log_ACTIVITY_HI_QueuePriorityChanged(Svc::QueueType queueType, FwIndexType indexType, FwIndexType newPriority) const
virtual void FLUSH_ALL_QUEUES_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
static constexpr FwIndexType getNum_comPacketQueueIn_InputPorts()
void set_bufferReturnOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to bufferReturnOut[portNum].
Enum representing a command response.
virtual void FLUSH_QUEUE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command FLUSH_QUEUE.
void set_dataOut_OutputPort(FwIndexType portNum, Svc::InputComDataWithContextPort *port)
Connect port to dataOut[portNum].
void FLUSH_ALL_QUEUES_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
bool isConnected_Time_OutputPort(FwIndexType portNum) const
Array of queue depths for Fw::Com types.
An enumeration of queue data types.
void init()
Object initializer.
Definition: ObjBase.cpp:24
void SET_QUEUE_PRIORITY_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
void comStatusIn_handlerBase(FwIndexType portNum, Fw::Success &condition)
Handler base-class function for input port comStatusIn.
void log_WARNING_HI_QueueOverflow(Svc::QueueType queueType, FwIndexType index) const
virtual void bufferQueueIn_preMsgHook(FwIndexType portNum, Fw::Buffer &fwBuffer)
Pre-message hook for async input port bufferQueueIn.
FwIdType FwEventIdType
The type of an event identifier.
void set_Tlm_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to Tlm[portNum].
bool isConnected_Tlm_OutputPort(FwIndexType portNum) const
static constexpr FwIndexType getNum_CmdStatus_OutputPorts()
virtual void run_handler(FwIndexType portNum, U32 context)=0
Handler for input port run.
void run_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port run.
static constexpr FwIndexType getNum_bufferQueueIn_InputPorts()
bool isConnected_dataOut_OutputPort(FwIndexType portNum) const
Array of queue depths for Fw::Buffer types.
void bufferReturnOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port bufferReturnOut.
virtual void run_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port run.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
void set_Time_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to Time[portNum].
Fw::InputComPort * get_comPacketQueueIn_InputPort(FwIndexType portNum)
virtual void bufferQueueIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferQueueIn.
Enum representing event severity.
virtual void comPacketQueueIn_handler(FwIndexType portNum, Fw::ComBuffer &data, U32 context)=0
Handler for input port comPacketQueueIn.
void comPacketQueueIn_handlerBase(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Handler base-class function for input port comPacketQueueIn.
Svc::InputComDataWithContextPort * get_dataReturnIn_InputPort(FwIndexType portNum)
virtual void SET_QUEUE_PRIORITY_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command SET_QUEUE_PRIORITY.
void CmdDisp_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port CmdDisp.
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
virtual void comPacketQueueIn_preMsgHook(FwIndexType portNum, Fw::ComBuffer &data, U32 context)
Pre-message hook for async input port comPacketQueueIn.
Fw::InputBufferSendPort * get_bufferQueueIn_InputPort(FwIndexType portNum)
Fw::InputCmdPort * get_CmdDisp_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_dataOut_OutputPorts()
static constexpr FwIndexType getNum_comStatusIn_InputPorts()
static constexpr FwIndexType getNum_Log_OutputPorts()
Fw::InputSuccessConditionPort * get_comStatusIn_InputPort(FwIndexType portNum)
ComQueueComponentBase(const char *compName="")
Construct ComQueueComponentBase object.
PlatformIndexType FwIndexType
Type used to pass context info between components during framing/deframing.
bool isConnected_bufferReturnOut_OutputPort(FwIndexType portNum) const
void tlmWrite_comQueueDepth(const Svc::ComQueueDepth &arg, Fw::Time _tlmTime=Fw::Time()) const
RateGroupDivider component implementation.
static constexpr FwIndexType getNum_Time_OutputPorts()
void regCommands()
Register commands with the Command Dispatcher.
virtual void comStatusIn_preMsgHook(FwIndexType portNum, Fw::Success &condition)
Pre-message hook for async input port comStatusIn.
Set the priority of a specific queue at runtime.
friend class ComQueueTesterBase
Friend class tester to support autocoded test harness.
void set_CmdReg_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to CmdReg[portNum].
bool isConnected_CmdStatus_OutputPort(FwIndexType portNum) const
bool isConnected_CmdReg_OutputPort(FwIndexType portNum) const
virtual void bufferQueueIn_overflowHook(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Overflow hook for async input port bufferQueueIn.
friend class ComQueueTester
Friend class tester implementation to support white-box testing.
Success/Failure.
static constexpr FwIndexType getNum_run_InputPorts()
void bufferQueueIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferQueueIn.
Auto-generated base for ComQueue component.