F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
DpManagerComponentAc.hpp
Go to the documentation of this file.
1 // ======================================================================
2 // \title DpManagerComponentAc.hpp
3 // \author Generated by fpp-to-cpp
4 // \brief hpp file for DpManager component base class
5 // ======================================================================
6 
7 #ifndef Svc_DpManagerComponentAc_HPP
8 #define Svc_DpManagerComponentAc_HPP
9 
10 #include <atomic>
11 
14 #include "Fw/Cmd/CmdPortAc.hpp"
15 #include "Fw/Cmd/CmdRegPortAc.hpp"
17 #include "Fw/Cmd/CmdString.hpp"
19 #include "Fw/Dp/DpGetPortAc.hpp"
22 #include "Fw/Dp/DpSendPortAc.hpp"
23 #include "Fw/FPrimeBasicTypes.hpp"
24 #include "Fw/Log/LogPortAc.hpp"
25 #include "Fw/Log/LogString.hpp"
26 #if FW_ENABLE_TEXT_LOGGING == 1
27 #include "Fw/Log/LogTextPortAc.hpp"
28 #endif
29 #if !FW_DIRECT_PORT_CALLS
31 #endif
32 #if !FW_DIRECT_PORT_CALLS
34 #endif
35 #include "Fw/Time/TimePortAc.hpp"
36 #include "Fw/Tlm/TlmPortAc.hpp"
37 #include "Fw/Tlm/TlmString.hpp"
40 
41 namespace Svc {
42 
49  {
50 
51  // ----------------------------------------------------------------------
52  // Friend classes
53  // ----------------------------------------------------------------------
54 
56  friend class DpManagerTesterBase;
58  friend class DpManagerTester;
59 
60  protected:
61 
62  // ----------------------------------------------------------------------
63  // Constants
64  // ----------------------------------------------------------------------
65 
67  enum {
69  };
70 
72  enum {
77  };
78 
80  enum {
87  };
88 
90  enum {
94  };
95 
97  enum {
99  };
100 
102  enum {
104  };
105 
107  enum {
109  };
110 
112  enum {
117  };
118 
119  public:
120 
121  // ----------------------------------------------------------------------
122  // Component initialization
123  // ----------------------------------------------------------------------
124 
126  void init(
127  FwSizeType queueDepth,
128  FwEnumStoreType instance = 0
129  );
130 
131 #if !FW_DIRECT_PORT_CALLS
132 
133  public:
134 
135  // ----------------------------------------------------------------------
136  // Getters for special input ports
137  // ----------------------------------------------------------------------
138 
143  FwIndexType portNum
144  );
145 
146 #endif
147 
148 #if !FW_DIRECT_PORT_CALLS
149 
150  public:
151 
152  // ----------------------------------------------------------------------
153  // Getters for typed input ports
154  // ----------------------------------------------------------------------
155 
160  FwIndexType portNum
161  );
162 
167  FwIndexType portNum
168  );
169 
174  FwIndexType portNum
175  );
176 
181  FwIndexType portNum
182  );
183 
184 #endif
185 
186 #if !FW_DIRECT_PORT_CALLS
187 
188  public:
189 
190  // ----------------------------------------------------------------------
191  // Connect input ports to special output ports
192  // ----------------------------------------------------------------------
193 
196  FwIndexType portNum,
197  Fw::InputCmdRegPort* port
198  );
199 
202  FwIndexType portNum,
204  );
205 
208  FwIndexType portNum,
209  Fw::InputLogPort* port
210  );
211 
212 #if FW_ENABLE_TEXT_LOGGING == 1
213 
215  void set_textEventOut_OutputPort(
216  FwIndexType portNum,
217  Fw::InputLogTextPort* port
218  );
219 
220 #endif
221 
224  FwIndexType portNum,
225  Fw::InputTimePort* port
226  );
227 
230  FwIndexType portNum,
231  Fw::InputTlmPort* port
232  );
233 
234 #endif
235 
236 #if !FW_DIRECT_PORT_CALLS
237 
238  public:
239 
240  // ----------------------------------------------------------------------
241  // Connect typed input ports to typed output ports
242  // ----------------------------------------------------------------------
243 
246  FwIndexType portNum,
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 
286  FwIndexType portNum,
287  Fw::InputSerializePort* port
288  );
289 
290 #if FW_ENABLE_TEXT_LOGGING == 1
291 
293  void set_textEventOut_OutputPort(
294  FwIndexType portNum,
295  Fw::InputSerializePort* port
296  );
297 
298 #endif
299 
302  FwIndexType portNum,
303  Fw::InputSerializePort* port
304  );
305 
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 ~DpManagerComponentBase();
360 
361  protected:
362 
363  // ----------------------------------------------------------------------
364  // Getters for numbers of special input ports
365  // ----------------------------------------------------------------------
366 
371  return NUM_CMDIN_INPUT_PORTS;
372  }
373 
374  protected:
375 
376  // ----------------------------------------------------------------------
377  // Getters for numbers of typed input ports
378  // ----------------------------------------------------------------------
379 
385  }
386 
392  }
393 
399  }
400 
406  }
407 
408  protected:
409 
410  // ----------------------------------------------------------------------
411  // Getters for numbers of special output ports
412  // ----------------------------------------------------------------------
413 
419  }
420 
426  }
427 
433  }
434 
435 #if FW_ENABLE_TEXT_LOGGING == 1
436 
440  static constexpr FwIndexType getNum_textEventOut_OutputPorts() {
442  }
443 
444 #endif
445 
451  }
452 
458  }
459 
460  protected:
461 
462  // ----------------------------------------------------------------------
463  // Getters for numbers of typed output ports
464  // ----------------------------------------------------------------------
465 
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_textEventOut_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 
563  FwIndexType portNum
564  ) const;
565 
566 #if FW_DIRECT_PORT_CALLS
567  public:
568 #else
569  protected:
570 #endif
571 
572  // ----------------------------------------------------------------------
573  // Port handler base-class functions for special input ports
574  //
575  // Call these functions directly to bypass the corresponding ports
576  // ----------------------------------------------------------------------
577 
579  void cmdIn_handlerBase(
580  FwIndexType portNum,
581  FwOpcodeType opCode,
582  U32 cmdSeq,
583  Fw::CmdArgBuffer& args
584  );
585 
586  protected:
587 
588  // ----------------------------------------------------------------------
589  // Handlers to implement for typed input ports
590  // ----------------------------------------------------------------------
591 
594  FwIndexType portNum,
595  FwDpIdType id,
596  FwSizeType dataSize,
597  Fw::Buffer& buffer
598  ) = 0;
599 
601  virtual void productRequestIn_handler(
602  FwIndexType portNum,
603  FwDpIdType id,
604  FwSizeType dataSize
605  ) = 0;
606 
608  virtual void productSendIn_handler(
609  FwIndexType portNum,
610  FwDpIdType id,
611  const Fw::Buffer& buffer
612  ) = 0;
613 
615  virtual void schedIn_handler(
616  FwIndexType portNum,
617  U32 context
618  ) = 0;
619 
620 #if FW_DIRECT_PORT_CALLS
621  public:
622 #else
623  protected:
624 #endif
625 
626  // ----------------------------------------------------------------------
627  // Port handler base-class functions for typed input ports
628  //
629  // Call these functions directly to bypass the corresponding ports
630  // ----------------------------------------------------------------------
631 
634  FwIndexType portNum,
635  FwDpIdType id,
636  FwSizeType dataSize,
637  Fw::Buffer& buffer
638  );
639 
642  FwIndexType portNum,
643  FwDpIdType id,
644  FwSizeType dataSize
645  );
646 
649  FwIndexType portNum,
650  FwDpIdType id,
651  const Fw::Buffer& buffer
652  );
653 
655  void schedIn_handlerBase(
656  FwIndexType portNum,
657  U32 context
658  );
659 
660  protected:
661 
662  // ----------------------------------------------------------------------
663  // Pre-message hooks for typed async input ports
664  //
665  // Each of these functions is invoked just before processing a message
666  // on the corresponding port. By default, they do nothing. You can
667  // override them to provide specific pre-message behavior.
668  // ----------------------------------------------------------------------
669 
671  virtual void productRequestIn_preMsgHook(
672  FwIndexType portNum,
673  FwDpIdType id,
674  FwSizeType dataSize
675  );
676 
678  virtual void productSendIn_preMsgHook(
679  FwIndexType portNum,
680  FwDpIdType id,
681  const Fw::Buffer& buffer
682  );
683 
685  virtual void schedIn_preMsgHook(
686  FwIndexType portNum,
687  U32 context
688  );
689 
690  protected:
691 
692  // ----------------------------------------------------------------------
693  // Invocation functions for typed output ports
694  // ----------------------------------------------------------------------
695 
698  FwIndexType portNum,
699  FwSizeType size
700  ) const;
701 
704  FwIndexType portNum,
705  FwDpIdType id,
706  const Fw::Buffer& buffer,
707  const Fw::Success& status
708  ) const;
709 
711  void productSendOut_out(
712  FwIndexType portNum,
713  Fw::Buffer& fwBuffer
714  ) const;
715 
716  protected:
717 
718  // ----------------------------------------------------------------------
719  // Command response
720  // ----------------------------------------------------------------------
721 
723  void cmdResponse_out(
724  FwOpcodeType opCode,
725  U32 cmdSeq,
726  Fw::CmdResponse response
727  );
728 
729  protected:
730 
731  // ----------------------------------------------------------------------
732  // Command handlers to implement
733  // ----------------------------------------------------------------------
734 
738  virtual void CLEAR_EVENT_THROTTLE_cmdHandler(
739  FwOpcodeType opCode,
740  U32 cmdSeq
741  ) = 0;
742 
743  protected:
744 
745  // ----------------------------------------------------------------------
746  // Command handler base-class functions
747  //
748  // Call these functions directly to bypass the command input port
749  // ----------------------------------------------------------------------
750 
755  FwOpcodeType opCode,
756  U32 cmdSeq,
757  Fw::CmdArgBuffer& args
758  );
759 
760  protected:
761 
762  // ----------------------------------------------------------------------
763  // Pre-message hooks for async commands
764  //
765  // Each of these functions is invoked just before processing the
766  // corresponding command. By default they do nothing. You can
767  // override them to provide specific pre-command behavior.
768  // ----------------------------------------------------------------------
769 
771  virtual void CLEAR_EVENT_THROTTLE_preMsgHook(
772  FwOpcodeType opCode,
773  U32 cmdSeq
774  );
775 
776  protected:
777 
778  // ----------------------------------------------------------------------
779  // Event logging functions
780  // ----------------------------------------------------------------------
781 
786  FwDpIdType id
787  );
788 
789  protected:
790 
791  // ----------------------------------------------------------------------
792  // Event throttle reset functions
793  // ----------------------------------------------------------------------
794 
797 
798  protected:
799 
800  // ----------------------------------------------------------------------
801  // Telemetry serialized write
802  // ----------------------------------------------------------------------
803 
808  void tlmWrite(
809  FwChanIdType id,
810  Fw::TlmBuffer& _tlmBuff,
811  Fw::Time _tlmTime = Fw::Time()
812  ) const;
813 
814  protected:
815 
816  // ----------------------------------------------------------------------
817  // Telemetry write functions
818  // ----------------------------------------------------------------------
819 
824  U32 arg,
825  Fw::Time _tlmTime = Fw::Time()
826  );
827 
832  U32 arg,
833  Fw::Time _tlmTime = Fw::Time()
834  );
835 
840  U32 arg,
841  Fw::Time _tlmTime = Fw::Time()
842  );
843 
847  void tlmWrite_NumBytes(
848  U64 arg,
849  Fw::Time _tlmTime = Fw::Time()
850  );
851 
852  protected:
853 
854  // ----------------------------------------------------------------------
855  // Time
856  // ----------------------------------------------------------------------
857 
861  Fw::Time getTime() const;
862 
863  private:
864 
865  // ----------------------------------------------------------------------
866  // Message dispatch functions
867  // ----------------------------------------------------------------------
868 
870  virtual MsgDispatchStatus doDispatch();
871 
872  private:
873 
874  // ----------------------------------------------------------------------
875  // Calls for messages received on special input ports
876  // ----------------------------------------------------------------------
877 
879  static void m_p_cmdIn_in(
880  Fw::PassiveComponentBase* callComp,
881  FwIndexType portNum,
882  FwOpcodeType opCode,
883  U32 cmdSeq,
884  Fw::CmdArgBuffer& args
885  );
886 
887  private:
888 
889  // ----------------------------------------------------------------------
890  // Calls for messages received on typed input ports
891  // ----------------------------------------------------------------------
892 
894  static Fw::Success m_p_productGetIn_in(
895  Fw::PassiveComponentBase* callComp,
896  FwIndexType portNum,
897  FwDpIdType id,
898  FwSizeType dataSize,
899  Fw::Buffer& buffer
900  );
901 
903  static void m_p_productRequestIn_in(
904  Fw::PassiveComponentBase* callComp,
905  FwIndexType portNum,
906  FwDpIdType id,
907  FwSizeType dataSize
908  );
909 
911  static void m_p_productSendIn_in(
912  Fw::PassiveComponentBase* callComp,
913  FwIndexType portNum,
914  FwDpIdType id,
915  const Fw::Buffer& buffer
916  );
917 
919  static void m_p_schedIn_in(
920  Fw::PassiveComponentBase* callComp,
921  FwIndexType portNum,
922  U32 context
923  );
924 
925  private:
926 
927  // ----------------------------------------------------------------------
928  // Invocation functions for special output ports
929  // ----------------------------------------------------------------------
930 
932  void cmdRegIn_out(
933  FwIndexType portNum,
934  FwOpcodeType opCode
935  ) const;
936 
938  void cmdResponseOut_out(
939  FwIndexType portNum,
940  FwOpcodeType opCode,
941  U32 cmdSeq,
942  const Fw::CmdResponse& response
943  ) const;
944 
946  void eventOut_out(
947  FwIndexType portNum,
948  FwEventIdType id,
949  Fw::Time& timeTag,
950  const Fw::LogSeverity& severity,
951  Fw::LogBuffer& args
952  ) const;
953 
954 #if FW_ENABLE_TEXT_LOGGING
955 
957  void textEventOut_out(
958  FwIndexType portNum,
959  FwEventIdType id,
960  Fw::Time& timeTag,
961  const Fw::LogSeverity& severity,
962  Fw::TextLogString& text
963  ) const;
964 
965 #endif
966 
968  void timeGetOut_out(
969  FwIndexType portNum,
970  Fw::Time& time
971  ) const;
972 
974  void tlmOut_out(
975  FwIndexType portNum,
976  FwChanIdType id,
977  Fw::Time& timeTag,
978  Fw::TlmBuffer& val
979  ) const;
980 
981 #if !FW_DIRECT_PORT_CALLS
982 
983  private:
984 
985  // ----------------------------------------------------------------------
986  // Special input ports
987  // ----------------------------------------------------------------------
988 
990  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
991 
992 #endif
993 
994 #if !FW_DIRECT_PORT_CALLS
995 
996  private:
997 
998  // ----------------------------------------------------------------------
999  // Typed input ports
1000  // ----------------------------------------------------------------------
1001 
1003  Fw::InputDpGetPort m_productGetIn_InputPort[NUM_PRODUCTGETIN_INPUT_PORTS];
1004 
1006  Fw::InputDpRequestPort m_productRequestIn_InputPort[NUM_PRODUCTREQUESTIN_INPUT_PORTS];
1007 
1009  Fw::InputDpSendPort m_productSendIn_InputPort[NUM_PRODUCTSENDIN_INPUT_PORTS];
1010 
1012  Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
1013 
1014 #endif
1015 
1016 #if !FW_DIRECT_PORT_CALLS
1017 
1018  private:
1019 
1020  // ----------------------------------------------------------------------
1021  // Special output ports
1022  // ----------------------------------------------------------------------
1023 
1025  Fw::OutputCmdRegPort m_cmdRegIn_OutputPort[NUM_CMDREGIN_OUTPUT_PORTS];
1026 
1028  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
1029 
1031  Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
1032 
1033 #if FW_ENABLE_TEXT_LOGGING == 1
1034 
1036  Fw::OutputLogTextPort m_textEventOut_OutputPort[NUM_TEXTEVENTOUT_OUTPUT_PORTS];
1037 
1038 #endif
1039 
1041  Fw::OutputTimePort m_timeGetOut_OutputPort[NUM_TIMEGETOUT_OUTPUT_PORTS];
1042 
1044  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1045 
1046 #endif
1047 
1048 #if !FW_DIRECT_PORT_CALLS
1049 
1050  private:
1051 
1052  // ----------------------------------------------------------------------
1053  // Typed output ports
1054  // ----------------------------------------------------------------------
1055 
1057  Fw::OutputBufferGetPort m_bufferGetOut_OutputPort[NUM_BUFFERGETOUT_OUTPUT_PORTS];
1058 
1060  Fw::OutputDpResponsePort m_productResponseOut_OutputPort[NUM_PRODUCTRESPONSEOUT_OUTPUT_PORTS];
1061 
1063  Fw::OutputBufferSendPort m_productSendOut_OutputPort[NUM_PRODUCTSENDOUT_OUTPUT_PORTS];
1064 
1065 #endif
1066 
1067  private:
1068 
1069  // ----------------------------------------------------------------------
1070  // Counter values for event throttling
1071  // ----------------------------------------------------------------------
1072 
1074  std::atomic<FwIndexType> m_BufferAllocationFailedThrottle;
1075 
1076  private:
1077 
1078  // ----------------------------------------------------------------------
1079  // First update flags for telemetry channels
1080  // ----------------------------------------------------------------------
1081 
1083  bool m_first_update_NumSuccessfulAllocations = true;
1084 
1086  bool m_first_update_NumFailedAllocations = true;
1087 
1089  bool m_first_update_NumDataProducts = true;
1090 
1092  bool m_first_update_NumBytes = true;
1093 
1094  private:
1095 
1096  // ----------------------------------------------------------------------
1097  // Last value storage for telemetry channels
1098  // ----------------------------------------------------------------------
1099 
1101  U32 m_last_NumSuccessfulAllocations = {};
1102 
1104  U32 m_last_NumFailedAllocations = {};
1105 
1107  U32 m_last_NumDataProducts = {};
1108 
1110  U64 m_last_NumBytes = {};
1111 
1112  };
1113 
1114 }
1115 
1116 #endif
Svc::InputSchedPort * get_schedIn_InputPort(FwIndexType portNum)
void cmdResponse_out(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdResponse response)
Emit command response.
static constexpr FwIndexType getNum_cmdIn_InputPorts()
void set_productSendOut_OutputPort(FwIndexType portNum, Fw::InputBufferSendPort *port)
Connect port to productSendOut[portNum].
static constexpr FwIndexType getNum_productGetIn_InputPorts()
static constexpr FwIndexType getNum_productRequestIn_InputPorts()
FwIdType FwOpcodeType
The type of a command opcode.
static constexpr FwIndexType getNum_eventOut_OutputPorts()
static constexpr FwIndexType getNum_bufferGetOut_OutputPorts()
void log_WARNING_HI_BufferAllocationFailed_ThrottleClear()
Reset throttle value for BufferAllocationFailed.
PlatformSizeType FwSizeType
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
I32 FwEnumStoreType
void set_timeGetOut_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeGetOut[portNum].
virtual void schedIn_handler(FwIndexType portNum, U32 context)=0
Handler for input port schedIn.
bool isConnected_productResponseOut_OutputPort(FwIndexType portNum) const
void cmdIn_handlerBase(FwIndexType portNum, FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Handler base-class function for input port cmdIn.
static constexpr FwIndexType getNum_productSendOut_OutputPorts()
bool isConnected_bufferGetOut_OutputPort(FwIndexType portNum) const
virtual ~DpManagerComponentBase()
Destroy DpManagerComponentBase object.
void productRequestIn_handlerBase(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize)
Handler base-class function for input port productRequestIn.
Enum representing a command response.
void tlmWrite_NumSuccessfulAllocations(U32 arg, Fw::Time _tlmTime=Fw::Time())
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
void tlmWrite_NumFailedAllocations(U32 arg, Fw::Time _tlmTime=Fw::Time())
bool isConnected_cmdRegIn_OutputPort(FwIndexType portNum) const
void productSendIn_handlerBase(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer)
Handler base-class function for input port productSendIn.
void init()
Object initializer.
Definition: ObjBase.cpp:24
Fw::InputDpGetPort * get_productGetIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_productResponseOut_OutputPorts()
virtual void productSendIn_handler(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer)=0
Handler for input port productSendIn.
virtual Fw::Success productGetIn_handler(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize, Fw::Buffer &buffer)=0
Handler for input port productGetIn.
FwIdType FwEventIdType
The type of an event identifier.
virtual void productSendIn_preMsgHook(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer)
Pre-message hook for async input port productSendIn.
friend class DpManagerTesterBase
Friend class tester to support autocoded test harness.
Fw::InputDpSendPort * get_productSendIn_InputPort(FwIndexType portNum)
void productResponseOut_out(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer, const Fw::Success &status) const
Invoke output port productResponseOut.
void tlmWrite_NumDataProducts(U32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void schedIn_preMsgHook(FwIndexType portNum, U32 context)
Pre-message hook for async input port schedIn.
FwIdType FwChanIdType
The type of a telemetry channel identifier.
static constexpr FwIndexType getNum_cmdRegIn_OutputPorts()
virtual void CLEAR_EVENT_THROTTLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void CLEAR_EVENT_THROTTLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
static constexpr FwIndexType getNum_schedIn_InputPorts()
Enum representing event severity.
static constexpr FwIndexType getNum_timeGetOut_OutputPorts()
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
bool isConnected_cmdResponseOut_OutputPort(FwIndexType portNum) const
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
bool isConnected_eventOut_OutputPort(FwIndexType portNum) const
Auto-generated base for DpManager component.
void schedIn_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port schedIn.
static constexpr FwIndexType getNum_productSendIn_InputPorts()
virtual void productRequestIn_handler(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize)=0
Handler for input port productRequestIn.
Fw::Buffer bufferGetOut_out(FwIndexType portNum, FwSizeType size) const
Invoke output port bufferGetOut.
void log_WARNING_HI_BufferAllocationFailed(FwDpIdType id)
FwIdType FwDpIdType
The type of a data product identifier.
void productSendOut_out(FwIndexType portNum, Fw::Buffer &fwBuffer) const
Invoke output port productSendOut.
void set_productResponseOut_OutputPort(FwIndexType portNum, Fw::InputDpResponsePort *port)
Connect port to productResponseOut[portNum].
static constexpr FwIndexType getNum_cmdResponseOut_OutputPorts()
PlatformIndexType FwIndexType
virtual void productRequestIn_preMsgHook(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize)
Pre-message hook for async input port productRequestIn.
DpManagerComponentBase(const char *compName="")
Construct DpManagerComponentBase object.
Fw::InputDpRequestPort * get_productRequestIn_InputPort(FwIndexType portNum)
bool isConnected_productSendOut_OutputPort(FwIndexType portNum) const
void regCommands()
Register commands with the Command Dispatcher.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
RateGroupDivider component implementation.
void set_bufferGetOut_OutputPort(FwIndexType portNum, Fw::InputBufferGetPort *port)
Connect port to bufferGetOut[portNum].
bool isConnected_timeGetOut_OutputPort(FwIndexType portNum) const
friend class DpManagerTester
Friend class tester implementation to support white-box testing.
Fw::Success productGetIn_handlerBase(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize, Fw::Buffer &buffer)
Handler base-class function for input port productGetIn.
virtual void CLEAR_EVENT_THROTTLE_preMsgHook(FwOpcodeType opCode, U32 cmdSeq)
Pre-message hook for command CLEAR_EVENT_THROTTLE.
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
void set_cmdRegIn_OutputPort(FwIndexType portNum, Fw::InputCmdRegPort *port)
Connect port to cmdRegIn[portNum].
void tlmWrite_NumBytes(U64 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
Success/Failure.
#define U64(C)
Definition: sha.h:181