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 #include "Fw/Log/LogTextPortAc.hpp"
23 #if !FW_DIRECT_PORT_CALLS
25 #endif
26 #if !FW_DIRECT_PORT_CALLS
28 #endif
30 #include "Fw/Time/TimePortAc.hpp"
31 #include "Fw/Tlm/TlmPortAc.hpp"
32 #include "Fw/Tlm/TlmString.hpp"
39 
40 namespace Svc {
41 
48  {
49 
50  // ----------------------------------------------------------------------
51  // Friend classes
52  // ----------------------------------------------------------------------
53 
55  friend class ComQueueTesterBase;
57  friend class ComQueueTester;
58 
59  protected:
60 
61  // ----------------------------------------------------------------------
62  // Constants
63  // ----------------------------------------------------------------------
64 
66  enum {
68  };
69 
71  enum {
77  };
78 
80  enum {
87  };
88 
90  enum {
93  };
94 
96  enum {
102  };
103 
105  enum {
108  };
109 
111  enum {
114  };
115 
116  public:
117 
118  // ----------------------------------------------------------------------
119  // Component initialization
120  // ----------------------------------------------------------------------
121 
123  void init(
124  FwSizeType queueDepth,
125  FwEnumStoreType instance = 0
126  );
127 
128 #if !FW_DIRECT_PORT_CALLS
129 
130  public:
131 
132  // ----------------------------------------------------------------------
133  // Getters for special input ports
134  // ----------------------------------------------------------------------
135 
140  FwIndexType portNum
141  );
142 
143 #endif
144 
145 #if !FW_DIRECT_PORT_CALLS
146 
147  public:
148 
149  // ----------------------------------------------------------------------
150  // Getters for typed input ports
151  // ----------------------------------------------------------------------
152 
157  FwIndexType portNum
158  );
159 
164  FwIndexType portNum
165  );
166 
171  FwIndexType portNum
172  );
173 
178  FwIndexType portNum
179  );
180 
185  FwIndexType portNum
186  );
187 
188 #endif
189 
190 #if !FW_DIRECT_PORT_CALLS
191 
192  public:
193 
194  // ----------------------------------------------------------------------
195  // Connect input ports to special output ports
196  // ----------------------------------------------------------------------
197 
200  FwIndexType portNum,
201  Fw::InputCmdRegPort* port
202  );
203 
206  FwIndexType portNum,
208  );
209 
211  void set_Log_OutputPort(
212  FwIndexType portNum,
213  Fw::InputLogPort* port
214  );
215 
216 #if FW_ENABLE_TEXT_LOGGING == 1
217 
219  void set_LogText_OutputPort(
220  FwIndexType portNum,
221  Fw::InputLogTextPort* port
222  );
223 
224 #endif
225 
227  void set_Time_OutputPort(
228  FwIndexType portNum,
229  Fw::InputTimePort* port
230  );
231 
233  void set_Tlm_OutputPort(
234  FwIndexType portNum,
235  Fw::InputTlmPort* port
236  );
237 
238 #endif
239 
240 #if !FW_DIRECT_PORT_CALLS
241 
242  public:
243 
244  // ----------------------------------------------------------------------
245  // Connect typed input ports to typed output ports
246  // ----------------------------------------------------------------------
247 
250  FwIndexType portNum,
252  );
253 
256  FwIndexType portNum,
258  );
259 
260 #endif
261 
262 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
263 
264  public:
265 
266  // ----------------------------------------------------------------------
267  // Connect serial input ports to special output ports
268  // ----------------------------------------------------------------------
269 
272  FwIndexType portNum,
273  Fw::InputSerializePort* port
274  );
275 
278  FwIndexType portNum,
279  Fw::InputSerializePort* port
280  );
281 
283  void set_Log_OutputPort(
284  FwIndexType portNum,
285  Fw::InputSerializePort* port
286  );
287 
288 #if FW_ENABLE_TEXT_LOGGING == 1
289 
291  void set_LogText_OutputPort(
292  FwIndexType portNum,
293  Fw::InputSerializePort* port
294  );
295 
296 #endif
297 
299  void set_Time_OutputPort(
300  FwIndexType portNum,
301  Fw::InputSerializePort* port
302  );
303 
305  void set_Tlm_OutputPort(
306  FwIndexType portNum,
307  Fw::InputSerializePort* port
308  );
309 
310 #endif
311 
312 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION
313 
314  public:
315 
316  // ----------------------------------------------------------------------
317  // Connect serial input ports to typed output ports
318  // ----------------------------------------------------------------------
319 
322  FwIndexType portNum,
323  Fw::InputSerializePort* port
324  );
325 
328  FwIndexType portNum,
329  Fw::InputSerializePort* port
330  );
331 
332 #endif
333 
334  public:
335 
336  // ----------------------------------------------------------------------
337  // Command registration
338  // ----------------------------------------------------------------------
339 
343  void regCommands();
344 
345  protected:
346 
347  // ----------------------------------------------------------------------
348  // Component construction and destruction
349  // ----------------------------------------------------------------------
350 
353  const char* compName = ""
354  );
355 
357  virtual ~ComQueueComponentBase();
358 
359  protected:
360 
361  // ----------------------------------------------------------------------
362  // Getters for numbers of special input ports
363  // ----------------------------------------------------------------------
364 
370  }
371 
372  protected:
373 
374  // ----------------------------------------------------------------------
375  // Getters for numbers of typed input ports
376  // ----------------------------------------------------------------------
377 
383  }
384 
390  }
391 
397  }
398 
404  }
405 
409  static constexpr FwIndexType getNum_run_InputPorts() {
410  return NUM_RUN_INPUT_PORTS;
411  }
412 
413  protected:
414 
415  // ----------------------------------------------------------------------
416  // Getters for numbers of special output ports
417  // ----------------------------------------------------------------------
418 
424  }
425 
431  }
432 
436  static constexpr FwIndexType getNum_Log_OutputPorts() {
437  return NUM_LOG_OUTPUT_PORTS;
438  }
439 
440 #if FW_ENABLE_TEXT_LOGGING == 1
441 
445  static constexpr FwIndexType getNum_LogText_OutputPorts() {
447  }
448 
449 #endif
450 
455  return NUM_TIME_OUTPUT_PORTS;
456  }
457 
461  static constexpr FwIndexType getNum_Tlm_OutputPorts() {
462  return NUM_TLM_OUTPUT_PORTS;
463  }
464 
465  protected:
466 
467  // ----------------------------------------------------------------------
468  // Getters for numbers of typed output ports
469  // ----------------------------------------------------------------------
470 
476  }
477 
483  }
484 
485  protected:
486 
487  // ----------------------------------------------------------------------
488  // Connection status queries for special output ports
489  // ----------------------------------------------------------------------
490 
495  FwIndexType portNum
496  ) const;
497 
502  FwIndexType portNum
503  ) const;
504 
509  FwIndexType portNum
510  ) const;
511 
512 #if FW_ENABLE_TEXT_LOGGING == 1
513 
517  bool isConnected_LogText_OutputPort(
518  FwIndexType portNum
519  ) const;
520 
521 #endif
522 
527  FwIndexType portNum
528  ) const;
529 
534  FwIndexType portNum
535  ) const;
536 
537  protected:
538 
539  // ----------------------------------------------------------------------
540  // Connection status queries for typed output ports
541  // ----------------------------------------------------------------------
542 
547  FwIndexType portNum
548  ) const;
549 
554  FwIndexType portNum
555  ) const;
556 
557 #if FW_DIRECT_PORT_CALLS
558  public:
559 #else
560  protected:
561 #endif
562 
563  // ----------------------------------------------------------------------
564  // Port handler base-class functions for special input ports
565  //
566  // Call these functions directly to bypass the corresponding ports
567  // ----------------------------------------------------------------------
568 
570  void CmdDisp_handlerBase(
571  FwIndexType portNum,
572  FwOpcodeType opCode,
573  U32 cmdSeq,
574  Fw::CmdArgBuffer& args
575  );
576 
577  protected:
578 
579  // ----------------------------------------------------------------------
580  // Handlers to implement for typed input ports
581  // ----------------------------------------------------------------------
582 
584  virtual void bufferQueueIn_handler(
585  FwIndexType portNum,
586  Fw::Buffer& fwBuffer
587  ) = 0;
588 
590  virtual void comPacketQueueIn_handler(
591  FwIndexType portNum,
592  Fw::ComBuffer& data,
593  U32 context
594  ) = 0;
595 
597  virtual void comStatusIn_handler(
598  FwIndexType portNum,
599  Fw::Success& condition
600  ) = 0;
601 
603  virtual void dataReturnIn_handler(
604  FwIndexType portNum,
605  Fw::Buffer& data,
606  const ComCfg::FrameContext& context
607  ) = 0;
608 
610  virtual void run_handler(
611  FwIndexType portNum,
612  U32 context
613  ) = 0;
614 
615 #if FW_DIRECT_PORT_CALLS
616  public:
617 #else
618  protected:
619 #endif
620 
621  // ----------------------------------------------------------------------
622  // Port handler base-class functions for typed input ports
623  //
624  // Call these functions directly to bypass the corresponding ports
625  // ----------------------------------------------------------------------
626 
629  FwIndexType portNum,
630  Fw::Buffer& fwBuffer
631  );
632 
635  FwIndexType portNum,
636  Fw::ComBuffer& data,
637  U32 context
638  );
639 
642  FwIndexType portNum,
643  Fw::Success& condition
644  );
645 
648  FwIndexType portNum,
649  Fw::Buffer& data,
650  const ComCfg::FrameContext& context
651  );
652 
654  void run_handlerBase(
655  FwIndexType portNum,
656  U32 context
657  );
658 
659  protected:
660 
661  // ----------------------------------------------------------------------
662  // Pre-message hooks for typed async input ports
663  //
664  // Each of these functions is invoked just before processing a message
665  // on the corresponding port. By default, they do nothing. You can
666  // override them to provide specific pre-message behavior.
667  // ----------------------------------------------------------------------
668 
670  virtual void bufferQueueIn_preMsgHook(
671  FwIndexType portNum,
672  Fw::Buffer& fwBuffer
673  );
674 
676  virtual void comPacketQueueIn_preMsgHook(
677  FwIndexType portNum,
678  Fw::ComBuffer& data,
679  U32 context
680  );
681 
683  virtual void comStatusIn_preMsgHook(
684  FwIndexType portNum,
685  Fw::Success& condition
686  );
687 
689  virtual void run_preMsgHook(
690  FwIndexType portNum,
691  U32 context
692  );
693 
694  protected:
695 
696  // ----------------------------------------------------------------------
697  // Hooks for typed async input ports
698  //
699  // Each of these functions is invoked when placing a message on the
700  // queue would cause the queue to overlow. You should override them to provide
701  // specific overflow behavior.
702  // ----------------------------------------------------------------------
703 
705  virtual void bufferQueueIn_overflowHook(
706  FwIndexType portNum,
707  Fw::Buffer& fwBuffer
708  ) = 0;
709 
710  protected:
711 
712  // ----------------------------------------------------------------------
713  // Invocation functions for typed output ports
714  // ----------------------------------------------------------------------
715 
717  void bufferReturnOut_out(
718  FwIndexType portNum,
719  Fw::Buffer& fwBuffer
720  ) const;
721 
723  void dataOut_out(
724  FwIndexType portNum,
725  Fw::Buffer& data,
726  const ComCfg::FrameContext& context
727  ) const;
728 
729  protected:
730 
731  // ----------------------------------------------------------------------
732  // Command response
733  // ----------------------------------------------------------------------
734 
736  void cmdResponse_out(
737  FwOpcodeType opCode,
738  U32 cmdSeq,
739  Fw::CmdResponse response
740  );
741 
742  protected:
743 
744  // ----------------------------------------------------------------------
745  // Command handlers to implement
746  // ----------------------------------------------------------------------
747 
752  virtual void FLUSH_QUEUE_cmdHandler(
753  FwOpcodeType opCode,
754  U32 cmdSeq,
755  Svc::QueueType queueType,
756  FwIndexType indexType
757  ) = 0;
758 
763  virtual void FLUSH_ALL_QUEUES_cmdHandler(
764  FwOpcodeType opCode,
765  U32 cmdSeq
766  ) = 0;
767 
771  virtual void SET_QUEUE_PRIORITY_cmdHandler(
772  FwOpcodeType opCode,
773  U32 cmdSeq,
774  Svc::QueueType queueType,
775  FwIndexType indexType,
776  FwIndexType newPriority
777  ) = 0;
778 
779  protected:
780 
781  // ----------------------------------------------------------------------
782  // Command handler base-class functions
783  //
784  // Call these functions directly to bypass the command input port
785  // ----------------------------------------------------------------------
786 
792  FwOpcodeType opCode,
793  U32 cmdSeq,
794  Fw::CmdArgBuffer& args
795  );
796 
802  FwOpcodeType opCode,
803  U32 cmdSeq,
804  Fw::CmdArgBuffer& args
805  );
806 
811  FwOpcodeType opCode,
812  U32 cmdSeq,
813  Fw::CmdArgBuffer& args
814  );
815 
816  protected:
817 
818  // ----------------------------------------------------------------------
819  // Pre-message hooks for async commands
820  //
821  // Each of these functions is invoked just before processing the
822  // corresponding command. By default they do nothing. You can
823  // override them to provide specific pre-command behavior.
824  // ----------------------------------------------------------------------
825 
827  virtual void FLUSH_QUEUE_preMsgHook(
828  FwOpcodeType opCode,
829  U32 cmdSeq
830  );
831 
833  virtual void FLUSH_ALL_QUEUES_preMsgHook(
834  FwOpcodeType opCode,
835  U32 cmdSeq
836  );
837 
839  virtual void SET_QUEUE_PRIORITY_preMsgHook(
840  FwOpcodeType opCode,
841  U32 cmdSeq
842  );
843 
844  protected:
845 
846  // ----------------------------------------------------------------------
847  // Event logging functions
848  // ----------------------------------------------------------------------
849 
854  Svc::QueueType queueType,
855  FwIndexType index
856  ) const;
857 
862  Svc::QueueType queueType,
863  FwIndexType indexType,
864  FwIndexType newPriority
865  ) const;
866 
867  protected:
868 
869  // ----------------------------------------------------------------------
870  // Telemetry serialized write
871  // ----------------------------------------------------------------------
872 
877  void tlmWrite(
878  FwChanIdType id,
879  Fw::TlmBuffer& _tlmBuff,
880  Fw::Time _tlmTime = Fw::Time()
881  ) const;
882 
883  protected:
884 
885  // ----------------------------------------------------------------------
886  // Telemetry write functions
887  // ----------------------------------------------------------------------
888 
893  const Svc::ComQueueDepth& arg,
894  Fw::Time _tlmTime = Fw::Time()
895  ) const;
896 
901  const Svc::BuffQueueDepth& arg,
902  Fw::Time _tlmTime = Fw::Time()
903  ) const;
904 
905  protected:
906 
907  // ----------------------------------------------------------------------
908  // Time
909  // ----------------------------------------------------------------------
910 
914  Fw::Time getTime() const;
915 
916  private:
917 
918  // ----------------------------------------------------------------------
919  // Message dispatch functions
920  // ----------------------------------------------------------------------
921 
923  virtual MsgDispatchStatus doDispatch();
924 
925  private:
926 
927  // ----------------------------------------------------------------------
928  // Calls for messages received on special input ports
929  // ----------------------------------------------------------------------
930 
932  static void m_p_CmdDisp_in(
933  Fw::PassiveComponentBase* callComp,
934  FwIndexType portNum,
935  FwOpcodeType opCode,
936  U32 cmdSeq,
937  Fw::CmdArgBuffer& args
938  );
939 
940  private:
941 
942  // ----------------------------------------------------------------------
943  // Calls for messages received on typed input ports
944  // ----------------------------------------------------------------------
945 
947  static void m_p_bufferQueueIn_in(
948  Fw::PassiveComponentBase* callComp,
949  FwIndexType portNum,
950  Fw::Buffer& fwBuffer
951  );
952 
954  static void m_p_comPacketQueueIn_in(
955  Fw::PassiveComponentBase* callComp,
956  FwIndexType portNum,
957  Fw::ComBuffer& data,
958  U32 context
959  );
960 
962  static void m_p_comStatusIn_in(
963  Fw::PassiveComponentBase* callComp,
964  FwIndexType portNum,
965  Fw::Success& condition
966  );
967 
969  static void m_p_dataReturnIn_in(
970  Fw::PassiveComponentBase* callComp,
971  FwIndexType portNum,
972  Fw::Buffer& data,
973  const ComCfg::FrameContext& context
974  );
975 
977  static void m_p_run_in(
978  Fw::PassiveComponentBase* callComp,
979  FwIndexType portNum,
980  U32 context
981  );
982 
983  private:
984 
985  // ----------------------------------------------------------------------
986  // Invocation functions for special output ports
987  // ----------------------------------------------------------------------
988 
990  void CmdReg_out(
991  FwIndexType portNum,
992  FwOpcodeType opCode
993  ) const;
994 
996  void CmdStatus_out(
997  FwIndexType portNum,
998  FwOpcodeType opCode,
999  U32 cmdSeq,
1000  const Fw::CmdResponse& response
1001  ) const;
1002 
1004  void Log_out(
1005  FwIndexType portNum,
1006  FwEventIdType id,
1007  Fw::Time& timeTag,
1008  const Fw::LogSeverity& severity,
1009  Fw::LogBuffer& args
1010  ) const;
1011 
1012 #if FW_ENABLE_TEXT_LOGGING
1013 
1015  void LogText_out(
1016  FwIndexType portNum,
1017  FwEventIdType id,
1018  Fw::Time& timeTag,
1019  const Fw::LogSeverity& severity,
1020  Fw::TextLogString& text
1021  ) const;
1022 
1023 #endif
1024 
1026  void Time_out(
1027  FwIndexType portNum,
1028  Fw::Time& time
1029  ) const;
1030 
1032  void Tlm_out(
1033  FwIndexType portNum,
1034  FwChanIdType id,
1035  Fw::Time& timeTag,
1036  Fw::TlmBuffer& val
1037  ) const;
1038 
1039 #if !FW_DIRECT_PORT_CALLS
1040 
1041  private:
1042 
1043  // ----------------------------------------------------------------------
1044  // Special input ports
1045  // ----------------------------------------------------------------------
1046 
1048  Fw::InputCmdPort m_CmdDisp_InputPort[NUM_CMDDISP_INPUT_PORTS];
1049 
1050 #endif
1051 
1052 #if !FW_DIRECT_PORT_CALLS
1053 
1054  private:
1055 
1056  // ----------------------------------------------------------------------
1057  // Typed input ports
1058  // ----------------------------------------------------------------------
1059 
1061  Fw::InputBufferSendPort m_bufferQueueIn_InputPort[NUM_BUFFERQUEUEIN_INPUT_PORTS];
1062 
1064  Fw::InputComPort m_comPacketQueueIn_InputPort[NUM_COMPACKETQUEUEIN_INPUT_PORTS];
1065 
1068 
1071 
1073  Svc::InputSchedPort m_run_InputPort[NUM_RUN_INPUT_PORTS];
1074 
1075 #endif
1076 
1077 #if !FW_DIRECT_PORT_CALLS
1078 
1079  private:
1080 
1081  // ----------------------------------------------------------------------
1082  // Special output ports
1083  // ----------------------------------------------------------------------
1084 
1086  Fw::OutputCmdRegPort m_CmdReg_OutputPort[NUM_CMDREG_OUTPUT_PORTS];
1087 
1089  Fw::OutputCmdResponsePort m_CmdStatus_OutputPort[NUM_CMDSTATUS_OUTPUT_PORTS];
1090 
1092  Fw::OutputLogPort m_Log_OutputPort[NUM_LOG_OUTPUT_PORTS];
1093 
1094 #if FW_ENABLE_TEXT_LOGGING == 1
1095 
1097  Fw::OutputLogTextPort m_LogText_OutputPort[NUM_LOGTEXT_OUTPUT_PORTS];
1098 
1099 #endif
1100 
1102  Fw::OutputTimePort m_Time_OutputPort[NUM_TIME_OUTPUT_PORTS];
1103 
1105  Fw::OutputTlmPort m_Tlm_OutputPort[NUM_TLM_OUTPUT_PORTS];
1106 
1107 #endif
1108 
1109 #if !FW_DIRECT_PORT_CALLS
1110 
1111  private:
1112 
1113  // ----------------------------------------------------------------------
1114  // Typed output ports
1115  // ----------------------------------------------------------------------
1116 
1118  Fw::OutputBufferSendPort m_bufferReturnOut_OutputPort[NUM_BUFFERRETURNOUT_OUTPUT_PORTS];
1119 
1122 
1123 #endif
1124 
1125  };
1126 
1127 }
1128 
1129 #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.
Set the priority of a specific queue at runtime.
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.
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.