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 #include "Fw/Log/LogTextPortAc.hpp"
27 #if !FW_DIRECT_PORT_CALLS
29 #endif
30 #if !FW_DIRECT_PORT_CALLS
32 #endif
33 #include "Fw/Time/TimePortAc.hpp"
34 #include "Fw/Tlm/TlmPortAc.hpp"
35 #include "Fw/Tlm/TlmString.hpp"
38 
39 namespace Svc {
40 
47  {
48 
49  // ----------------------------------------------------------------------
50  // Friend classes
51  // ----------------------------------------------------------------------
52 
54  friend class DpManagerTesterBase;
56  friend class DpManagerTester;
57 
58  protected:
59 
60  // ----------------------------------------------------------------------
61  // Constants
62  // ----------------------------------------------------------------------
63 
65  enum {
67  };
68 
70  enum {
75  };
76 
78  enum {
85  };
86 
88  enum {
92  };
93 
95  enum {
97  };
98 
100  enum {
102  };
103 
105  enum {
107  };
108 
110  enum {
115  };
116 
117  public:
118 
119  // ----------------------------------------------------------------------
120  // Component initialization
121  // ----------------------------------------------------------------------
122 
124  void init(
125  FwSizeType queueDepth,
126  FwEnumStoreType instance = 0
127  );
128 
129 #if !FW_DIRECT_PORT_CALLS
130 
131  public:
132 
133  // ----------------------------------------------------------------------
134  // Getters for special input ports
135  // ----------------------------------------------------------------------
136 
141  FwIndexType portNum
142  );
143 
144 #endif
145 
146 #if !FW_DIRECT_PORT_CALLS
147 
148  public:
149 
150  // ----------------------------------------------------------------------
151  // Getters for typed input ports
152  // ----------------------------------------------------------------------
153 
158  FwIndexType portNum
159  );
160 
165  FwIndexType portNum
166  );
167 
172  FwIndexType portNum
173  );
174 
179  FwIndexType portNum
180  );
181 
182 #endif
183 
184 #if !FW_DIRECT_PORT_CALLS
185 
186  public:
187 
188  // ----------------------------------------------------------------------
189  // Connect input ports to special output ports
190  // ----------------------------------------------------------------------
191 
194  FwIndexType portNum,
195  Fw::InputCmdRegPort* port
196  );
197 
200  FwIndexType portNum,
202  );
203 
206  FwIndexType portNum,
207  Fw::InputLogPort* port
208  );
209 
210 #if FW_ENABLE_TEXT_LOGGING == 1
211 
213  void set_textEventOut_OutputPort(
214  FwIndexType portNum,
215  Fw::InputLogTextPort* port
216  );
217 
218 #endif
219 
222  FwIndexType portNum,
223  Fw::InputTimePort* port
224  );
225 
228  FwIndexType portNum,
229  Fw::InputTlmPort* port
230  );
231 
232 #endif
233 
234 #if !FW_DIRECT_PORT_CALLS
235 
236  public:
237 
238  // ----------------------------------------------------------------------
239  // Connect typed input ports to typed output ports
240  // ----------------------------------------------------------------------
241 
244  FwIndexType portNum,
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 
284  FwIndexType portNum,
285  Fw::InputSerializePort* port
286  );
287 
288 #if FW_ENABLE_TEXT_LOGGING == 1
289 
291  void set_textEventOut_OutputPort(
292  FwIndexType portNum,
293  Fw::InputSerializePort* port
294  );
295 
296 #endif
297 
300  FwIndexType portNum,
301  Fw::InputSerializePort* port
302  );
303 
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 ~DpManagerComponentBase();
358 
359  protected:
360 
361  // ----------------------------------------------------------------------
362  // Getters for numbers of special input ports
363  // ----------------------------------------------------------------------
364 
369  return NUM_CMDIN_INPUT_PORTS;
370  }
371 
372  protected:
373 
374  // ----------------------------------------------------------------------
375  // Getters for numbers of typed input ports
376  // ----------------------------------------------------------------------
377 
383  }
384 
390  }
391 
397  }
398 
404  }
405 
406  protected:
407 
408  // ----------------------------------------------------------------------
409  // Getters for numbers of special output ports
410  // ----------------------------------------------------------------------
411 
417  }
418 
424  }
425 
431  }
432 
433 #if FW_ENABLE_TEXT_LOGGING == 1
434 
438  static constexpr FwIndexType getNum_textEventOut_OutputPorts() {
440  }
441 
442 #endif
443 
449  }
450 
456  }
457 
458  protected:
459 
460  // ----------------------------------------------------------------------
461  // Getters for numbers of typed output ports
462  // ----------------------------------------------------------------------
463 
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_textEventOut_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 
561  FwIndexType portNum
562  ) const;
563 
564 #if FW_DIRECT_PORT_CALLS
565  public:
566 #else
567  protected:
568 #endif
569 
570  // ----------------------------------------------------------------------
571  // Port handler base-class functions for special input ports
572  //
573  // Call these functions directly to bypass the corresponding ports
574  // ----------------------------------------------------------------------
575 
577  void cmdIn_handlerBase(
578  FwIndexType portNum,
579  FwOpcodeType opCode,
580  U32 cmdSeq,
581  Fw::CmdArgBuffer& args
582  );
583 
584  protected:
585 
586  // ----------------------------------------------------------------------
587  // Handlers to implement for typed input ports
588  // ----------------------------------------------------------------------
589 
592  FwIndexType portNum,
593  FwDpIdType id,
594  FwSizeType dataSize,
595  Fw::Buffer& buffer
596  ) = 0;
597 
599  virtual void productRequestIn_handler(
600  FwIndexType portNum,
601  FwDpIdType id,
602  FwSizeType dataSize
603  ) = 0;
604 
606  virtual void productSendIn_handler(
607  FwIndexType portNum,
608  FwDpIdType id,
609  const Fw::Buffer& buffer
610  ) = 0;
611 
613  virtual void schedIn_handler(
614  FwIndexType portNum,
615  U32 context
616  ) = 0;
617 
618 #if FW_DIRECT_PORT_CALLS
619  public:
620 #else
621  protected:
622 #endif
623 
624  // ----------------------------------------------------------------------
625  // Port handler base-class functions for typed input ports
626  //
627  // Call these functions directly to bypass the corresponding ports
628  // ----------------------------------------------------------------------
629 
632  FwIndexType portNum,
633  FwDpIdType id,
634  FwSizeType dataSize,
635  Fw::Buffer& buffer
636  );
637 
640  FwIndexType portNum,
641  FwDpIdType id,
642  FwSizeType dataSize
643  );
644 
647  FwIndexType portNum,
648  FwDpIdType id,
649  const Fw::Buffer& buffer
650  );
651 
653  void schedIn_handlerBase(
654  FwIndexType portNum,
655  U32 context
656  );
657 
658  protected:
659 
660  // ----------------------------------------------------------------------
661  // Pre-message hooks for typed async input ports
662  //
663  // Each of these functions is invoked just before processing a message
664  // on the corresponding port. By default, they do nothing. You can
665  // override them to provide specific pre-message behavior.
666  // ----------------------------------------------------------------------
667 
669  virtual void productRequestIn_preMsgHook(
670  FwIndexType portNum,
671  FwDpIdType id,
672  FwSizeType dataSize
673  );
674 
676  virtual void productSendIn_preMsgHook(
677  FwIndexType portNum,
678  FwDpIdType id,
679  const Fw::Buffer& buffer
680  );
681 
683  virtual void schedIn_preMsgHook(
684  FwIndexType portNum,
685  U32 context
686  );
687 
688  protected:
689 
690  // ----------------------------------------------------------------------
691  // Invocation functions for typed output ports
692  // ----------------------------------------------------------------------
693 
696  FwIndexType portNum,
697  FwSizeType size
698  ) const;
699 
702  FwIndexType portNum,
703  FwDpIdType id,
704  const Fw::Buffer& buffer,
705  const Fw::Success& status
706  ) const;
707 
709  void productSendOut_out(
710  FwIndexType portNum,
711  Fw::Buffer& fwBuffer
712  ) const;
713 
714  protected:
715 
716  // ----------------------------------------------------------------------
717  // Command response
718  // ----------------------------------------------------------------------
719 
721  void cmdResponse_out(
722  FwOpcodeType opCode,
723  U32 cmdSeq,
724  Fw::CmdResponse response
725  );
726 
727  protected:
728 
729  // ----------------------------------------------------------------------
730  // Command handlers to implement
731  // ----------------------------------------------------------------------
732 
736  virtual void CLEAR_EVENT_THROTTLE_cmdHandler(
737  FwOpcodeType opCode,
738  U32 cmdSeq
739  ) = 0;
740 
741  protected:
742 
743  // ----------------------------------------------------------------------
744  // Command handler base-class functions
745  //
746  // Call these functions directly to bypass the command input port
747  // ----------------------------------------------------------------------
748 
753  FwOpcodeType opCode,
754  U32 cmdSeq,
755  Fw::CmdArgBuffer& args
756  );
757 
758  protected:
759 
760  // ----------------------------------------------------------------------
761  // Pre-message hooks for async commands
762  //
763  // Each of these functions is invoked just before processing the
764  // corresponding command. By default they do nothing. You can
765  // override them to provide specific pre-command behavior.
766  // ----------------------------------------------------------------------
767 
769  virtual void CLEAR_EVENT_THROTTLE_preMsgHook(
770  FwOpcodeType opCode,
771  U32 cmdSeq
772  );
773 
774  protected:
775 
776  // ----------------------------------------------------------------------
777  // Event logging functions
778  // ----------------------------------------------------------------------
779 
784  FwDpIdType id
785  );
786 
787  protected:
788 
789  // ----------------------------------------------------------------------
790  // Event throttle reset functions
791  // ----------------------------------------------------------------------
792 
795 
796  protected:
797 
798  // ----------------------------------------------------------------------
799  // Telemetry serialized write
800  // ----------------------------------------------------------------------
801 
806  void tlmWrite(
807  FwChanIdType id,
808  Fw::TlmBuffer& _tlmBuff,
809  Fw::Time _tlmTime = Fw::Time()
810  ) const;
811 
812  protected:
813 
814  // ----------------------------------------------------------------------
815  // Telemetry write functions
816  // ----------------------------------------------------------------------
817 
822  U32 arg,
823  Fw::Time _tlmTime = Fw::Time()
824  );
825 
830  U32 arg,
831  Fw::Time _tlmTime = Fw::Time()
832  );
833 
838  U32 arg,
839  Fw::Time _tlmTime = Fw::Time()
840  );
841 
845  void tlmWrite_NumBytes(
846  U64 arg,
847  Fw::Time _tlmTime = Fw::Time()
848  );
849 
850  protected:
851 
852  // ----------------------------------------------------------------------
853  // Time
854  // ----------------------------------------------------------------------
855 
859  Fw::Time getTime() const;
860 
861  private:
862 
863  // ----------------------------------------------------------------------
864  // Message dispatch functions
865  // ----------------------------------------------------------------------
866 
868  virtual MsgDispatchStatus doDispatch();
869 
870  private:
871 
872  // ----------------------------------------------------------------------
873  // Calls for messages received on special input ports
874  // ----------------------------------------------------------------------
875 
877  static void m_p_cmdIn_in(
878  Fw::PassiveComponentBase* callComp,
879  FwIndexType portNum,
880  FwOpcodeType opCode,
881  U32 cmdSeq,
882  Fw::CmdArgBuffer& args
883  );
884 
885  private:
886 
887  // ----------------------------------------------------------------------
888  // Calls for messages received on typed input ports
889  // ----------------------------------------------------------------------
890 
892  static Fw::Success m_p_productGetIn_in(
893  Fw::PassiveComponentBase* callComp,
894  FwIndexType portNum,
895  FwDpIdType id,
896  FwSizeType dataSize,
897  Fw::Buffer& buffer
898  );
899 
901  static void m_p_productRequestIn_in(
902  Fw::PassiveComponentBase* callComp,
903  FwIndexType portNum,
904  FwDpIdType id,
905  FwSizeType dataSize
906  );
907 
909  static void m_p_productSendIn_in(
910  Fw::PassiveComponentBase* callComp,
911  FwIndexType portNum,
912  FwDpIdType id,
913  const Fw::Buffer& buffer
914  );
915 
917  static void m_p_schedIn_in(
918  Fw::PassiveComponentBase* callComp,
919  FwIndexType portNum,
920  U32 context
921  );
922 
923  private:
924 
925  // ----------------------------------------------------------------------
926  // Invocation functions for special output ports
927  // ----------------------------------------------------------------------
928 
930  void cmdRegIn_out(
931  FwIndexType portNum,
932  FwOpcodeType opCode
933  ) const;
934 
936  void cmdResponseOut_out(
937  FwIndexType portNum,
938  FwOpcodeType opCode,
939  U32 cmdSeq,
940  const Fw::CmdResponse& response
941  ) const;
942 
944  void eventOut_out(
945  FwIndexType portNum,
946  FwEventIdType id,
947  Fw::Time& timeTag,
948  const Fw::LogSeverity& severity,
949  Fw::LogBuffer& args
950  ) const;
951 
952 #if FW_ENABLE_TEXT_LOGGING
953 
955  void textEventOut_out(
956  FwIndexType portNum,
957  FwEventIdType id,
958  Fw::Time& timeTag,
959  const Fw::LogSeverity& severity,
960  Fw::TextLogString& text
961  ) const;
962 
963 #endif
964 
966  void timeGetOut_out(
967  FwIndexType portNum,
968  Fw::Time& time
969  ) const;
970 
972  void tlmOut_out(
973  FwIndexType portNum,
974  FwChanIdType id,
975  Fw::Time& timeTag,
976  Fw::TlmBuffer& val
977  ) const;
978 
979 #if !FW_DIRECT_PORT_CALLS
980 
981  private:
982 
983  // ----------------------------------------------------------------------
984  // Special input ports
985  // ----------------------------------------------------------------------
986 
988  Fw::InputCmdPort m_cmdIn_InputPort[NUM_CMDIN_INPUT_PORTS];
989 
990 #endif
991 
992 #if !FW_DIRECT_PORT_CALLS
993 
994  private:
995 
996  // ----------------------------------------------------------------------
997  // Typed input ports
998  // ----------------------------------------------------------------------
999 
1001  Fw::InputDpGetPort m_productGetIn_InputPort[NUM_PRODUCTGETIN_INPUT_PORTS];
1002 
1004  Fw::InputDpRequestPort m_productRequestIn_InputPort[NUM_PRODUCTREQUESTIN_INPUT_PORTS];
1005 
1007  Fw::InputDpSendPort m_productSendIn_InputPort[NUM_PRODUCTSENDIN_INPUT_PORTS];
1008 
1010  Svc::InputSchedPort m_schedIn_InputPort[NUM_SCHEDIN_INPUT_PORTS];
1011 
1012 #endif
1013 
1014 #if !FW_DIRECT_PORT_CALLS
1015 
1016  private:
1017 
1018  // ----------------------------------------------------------------------
1019  // Special output ports
1020  // ----------------------------------------------------------------------
1021 
1023  Fw::OutputCmdRegPort m_cmdRegIn_OutputPort[NUM_CMDREGIN_OUTPUT_PORTS];
1024 
1026  Fw::OutputCmdResponsePort m_cmdResponseOut_OutputPort[NUM_CMDRESPONSEOUT_OUTPUT_PORTS];
1027 
1029  Fw::OutputLogPort m_eventOut_OutputPort[NUM_EVENTOUT_OUTPUT_PORTS];
1030 
1031 #if FW_ENABLE_TEXT_LOGGING == 1
1032 
1034  Fw::OutputLogTextPort m_textEventOut_OutputPort[NUM_TEXTEVENTOUT_OUTPUT_PORTS];
1035 
1036 #endif
1037 
1039  Fw::OutputTimePort m_timeGetOut_OutputPort[NUM_TIMEGETOUT_OUTPUT_PORTS];
1040 
1042  Fw::OutputTlmPort m_tlmOut_OutputPort[NUM_TLMOUT_OUTPUT_PORTS];
1043 
1044 #endif
1045 
1046 #if !FW_DIRECT_PORT_CALLS
1047 
1048  private:
1049 
1050  // ----------------------------------------------------------------------
1051  // Typed output ports
1052  // ----------------------------------------------------------------------
1053 
1055  Fw::OutputBufferGetPort m_bufferGetOut_OutputPort[NUM_BUFFERGETOUT_OUTPUT_PORTS];
1056 
1058  Fw::OutputDpResponsePort m_productResponseOut_OutputPort[NUM_PRODUCTRESPONSEOUT_OUTPUT_PORTS];
1059 
1061  Fw::OutputBufferSendPort m_productSendOut_OutputPort[NUM_PRODUCTSENDOUT_OUTPUT_PORTS];
1062 
1063 #endif
1064 
1065  private:
1066 
1067  // ----------------------------------------------------------------------
1068  // Counter values for event throttling
1069  // ----------------------------------------------------------------------
1070 
1072  std::atomic<FwIndexType> m_BufferAllocationFailedThrottle;
1073 
1074  private:
1075 
1076  // ----------------------------------------------------------------------
1077  // First update flags for telemetry channels
1078  // ----------------------------------------------------------------------
1079 
1081  bool m_first_update_NumSuccessfulAllocations = true;
1082 
1084  bool m_first_update_NumFailedAllocations = true;
1085 
1087  bool m_first_update_NumDataProducts = true;
1088 
1090  bool m_first_update_NumBytes = true;
1091 
1092  private:
1093 
1094  // ----------------------------------------------------------------------
1095  // Last value storage for telemetry channels
1096  // ----------------------------------------------------------------------
1097 
1099  U32 m_last_NumSuccessfulAllocations = {};
1100 
1102  U32 m_last_NumFailedAllocations = {};
1103 
1105  U32 m_last_NumDataProducts = {};
1106 
1108  U64 m_last_NumBytes = {};
1109 
1110  };
1111 
1112 }
1113 
1114 #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