9 #if FW_ENABLE_TEXT_LOGGING 19 PRODUCTREQUESTIN_DPREQUEST,
22 CMD_CLEAR_EVENT_THROTTLE,
36 class ComponentIpcSerializableBuffer :
46 MAX_DATA_SIZE =
sizeof(BuffUnion),
48 SERIALIZATION_SIZE = DATA_OFFSET + MAX_DATA_SIZE
52 return sizeof(m_buff);
59 const U8* getBuffAddr()
const {
65 U8 m_buff[SERIALIZATION_SIZE];
83 #if !FW_DIRECT_PORT_CALLS 90 this->m_cmdIn_InputPort[port].
init();
95 this->m_cmdIn_InputPort[port].
setPortNum(port);
97 #if FW_OBJECT_NAMES == 1 101 this->m_objName.toChar(),
104 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
109 #if !FW_DIRECT_PORT_CALLS 116 this->m_productGetIn_InputPort[port].
init();
121 this->m_productGetIn_InputPort[port].
setPortNum(port);
123 #if FW_OBJECT_NAMES == 1 127 this->m_objName.toChar(),
130 this->m_productGetIn_InputPort[port].setObjName(portName.
toChar());
135 #if !FW_DIRECT_PORT_CALLS 142 this->m_productRequestIn_InputPort[port].
init();
143 this->m_productRequestIn_InputPort[port].
addCallComp(
145 m_p_productRequestIn_in
147 this->m_productRequestIn_InputPort[port].
setPortNum(port);
149 #if FW_OBJECT_NAMES == 1 153 this->m_objName.toChar(),
156 this->m_productRequestIn_InputPort[port].setObjName(portName.
toChar());
161 #if !FW_DIRECT_PORT_CALLS 168 this->m_productSendIn_InputPort[port].
init();
173 this->m_productSendIn_InputPort[port].
setPortNum(port);
175 #if FW_OBJECT_NAMES == 1 179 this->m_objName.toChar(),
182 this->m_productSendIn_InputPort[port].setObjName(portName.
toChar());
187 #if !FW_DIRECT_PORT_CALLS 194 this->m_schedIn_InputPort[port].
init();
199 this->m_schedIn_InputPort[port].
setPortNum(port);
201 #if FW_OBJECT_NAMES == 1 205 this->m_objName.toChar(),
208 this->m_schedIn_InputPort[port].setObjName(portName.
toChar());
213 #if !FW_DIRECT_PORT_CALLS 220 this->m_cmdRegIn_OutputPort[port].
init();
222 #if FW_OBJECT_NAMES == 1 226 this->m_objName.toChar(),
229 this->m_cmdRegIn_OutputPort[port].setObjName(portName.
toChar());
234 #if !FW_DIRECT_PORT_CALLS 241 this->m_cmdResponseOut_OutputPort[port].
init();
243 #if FW_OBJECT_NAMES == 1 247 this->m_objName.toChar(),
250 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
255 #if !FW_DIRECT_PORT_CALLS 262 this->m_eventOut_OutputPort[port].
init();
264 #if FW_OBJECT_NAMES == 1 268 this->m_objName.toChar(),
271 this->m_eventOut_OutputPort[port].setObjName(portName.
toChar());
276 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 280 port < static_cast<FwIndexType>(this->getNum_textEventOut_OutputPorts());
283 this->m_textEventOut_OutputPort[port].
init();
285 #if FW_OBJECT_NAMES == 1 289 this->m_objName.toChar(),
292 this->m_textEventOut_OutputPort[port].setObjName(portName.
toChar());
297 #if !FW_DIRECT_PORT_CALLS 304 this->m_timeGetOut_OutputPort[port].
init();
306 #if FW_OBJECT_NAMES == 1 310 this->m_objName.toChar(),
313 this->m_timeGetOut_OutputPort[port].setObjName(portName.
toChar());
318 #if !FW_DIRECT_PORT_CALLS 325 this->m_tlmOut_OutputPort[port].
init();
327 #if FW_OBJECT_NAMES == 1 331 this->m_objName.toChar(),
334 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
339 #if !FW_DIRECT_PORT_CALLS 346 this->m_bufferGetOut_OutputPort[port].
init();
348 #if FW_OBJECT_NAMES == 1 352 this->m_objName.toChar(),
355 this->m_bufferGetOut_OutputPort[port].setObjName(portName.
toChar());
360 #if !FW_DIRECT_PORT_CALLS 367 this->m_productResponseOut_OutputPort[port].
init();
369 #if FW_OBJECT_NAMES == 1 373 this->m_objName.toChar(),
376 this->m_productResponseOut_OutputPort[port].setObjName(portName.
toChar());
381 #if !FW_DIRECT_PORT_CALLS 388 this->m_productSendOut_OutputPort[port].
init();
390 #if FW_OBJECT_NAMES == 1 394 this->m_objName.toChar(),
397 this->m_productSendOut_OutputPort[port].setObjName(portName.
toChar());
405 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
409 static_cast<FwAssertArgType>(qStat)
413 #if !FW_DIRECT_PORT_CALLS 424 static_cast<FwAssertArgType>(portNum)
427 return &this->m_cmdIn_InputPort[portNum];
432 #if !FW_DIRECT_PORT_CALLS 443 static_cast<FwAssertArgType>(portNum)
446 return &this->m_productGetIn_InputPort[portNum];
454 static_cast<FwAssertArgType>(portNum)
457 return &this->m_productRequestIn_InputPort[portNum];
465 static_cast<FwAssertArgType>(portNum)
468 return &this->m_productSendIn_InputPort[portNum];
476 static_cast<FwAssertArgType>(portNum)
479 return &this->m_schedIn_InputPort[portNum];
484 #if !FW_DIRECT_PORT_CALLS 498 static_cast<FwAssertArgType>(portNum)
501 this->m_cmdRegIn_OutputPort[portNum].
addCallPort(port);
512 static_cast<FwAssertArgType>(portNum)
515 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
526 static_cast<FwAssertArgType>(portNum)
529 this->m_eventOut_OutputPort[portNum].
addCallPort(port);
532 #if FW_ENABLE_TEXT_LOGGING == 1 534 void DpManagerComponentBase ::
535 set_textEventOut_OutputPort(
541 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
542 static_cast<FwAssertArgType>(portNum)
545 this->m_textEventOut_OutputPort[portNum].addCallPort(port);
558 static_cast<FwAssertArgType>(portNum)
561 this->m_timeGetOut_OutputPort[portNum].
addCallPort(port);
572 static_cast<FwAssertArgType>(portNum)
575 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
580 #if !FW_DIRECT_PORT_CALLS 594 static_cast<FwAssertArgType>(portNum)
597 this->m_bufferGetOut_OutputPort[portNum].
addCallPort(port);
608 static_cast<FwAssertArgType>(portNum)
611 this->m_productResponseOut_OutputPort[portNum].
addCallPort(port);
622 static_cast<FwAssertArgType>(portNum)
625 this->m_productSendOut_OutputPort[portNum].
addCallPort(port);
630 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 639 Fw::InputSerializePort* port
644 static_cast<FwAssertArgType>(portNum)
647 this->m_cmdRegIn_OutputPort[portNum].registerSerialPort(port);
653 Fw::InputSerializePort* port
658 static_cast<FwAssertArgType>(portNum)
661 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
667 Fw::InputSerializePort* port
672 static_cast<FwAssertArgType>(portNum)
675 this->m_eventOut_OutputPort[portNum].registerSerialPort(port);
678 #if FW_ENABLE_TEXT_LOGGING == 1 680 void DpManagerComponentBase ::
681 set_textEventOut_OutputPort(
683 Fw::InputSerializePort* port
687 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
688 static_cast<FwAssertArgType>(portNum)
691 this->m_textEventOut_OutputPort[portNum].registerSerialPort(port);
699 Fw::InputSerializePort* port
704 static_cast<FwAssertArgType>(portNum)
707 this->m_timeGetOut_OutputPort[portNum].registerSerialPort(port);
713 Fw::InputSerializePort* port
718 static_cast<FwAssertArgType>(portNum)
721 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
726 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 735 Fw::InputSerializePort* port
740 static_cast<FwAssertArgType>(portNum)
743 this->m_productResponseOut_OutputPort[portNum].registerSerialPort(port);
749 Fw::InputSerializePort* port
754 static_cast<FwAssertArgType>(portNum)
757 this->m_productSendOut_OutputPort[portNum].registerSerialPort(port);
783 Fw::ActiveComponentBase(compName)
785 this->m_BufferAllocationFailedThrottle = 0;
794 #if !FW_DIRECT_PORT_CALLS 805 static_cast<FwAssertArgType>(portNum)
808 return this->m_cmdRegIn_OutputPort[portNum].
isConnected();
816 static_cast<FwAssertArgType>(portNum)
819 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
827 static_cast<FwAssertArgType>(portNum)
830 return this->m_eventOut_OutputPort[portNum].
isConnected();
833 #if FW_ENABLE_TEXT_LOGGING == 1 835 bool DpManagerComponentBase ::
836 isConnected_textEventOut_OutputPort(
FwIndexType portNum)
const 839 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
840 static_cast<FwAssertArgType>(portNum)
843 return this->m_textEventOut_OutputPort[portNum].isConnected();
853 static_cast<FwAssertArgType>(portNum)
856 return this->m_timeGetOut_OutputPort[portNum].
isConnected();
864 static_cast<FwAssertArgType>(portNum)
867 return this->m_tlmOut_OutputPort[portNum].
isConnected();
872 #if !FW_DIRECT_PORT_CALLS 883 static_cast<FwAssertArgType>(portNum)
886 return this->m_bufferGetOut_OutputPort[portNum].
isConnected();
894 static_cast<FwAssertArgType>(portNum)
897 return this->m_productResponseOut_OutputPort[portNum].
isConnected();
905 static_cast<FwAssertArgType>(portNum)
908 return this->m_productSendOut_OutputPort[portNum].
isConnected();
929 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
932 switch (opCode - idBase) {
964 static_cast<FwAssertArgType>(portNum)
990 static_cast<FwAssertArgType>(portNum)
999 ComponentIpcSerializableBuffer msg;
1003 _status = msg.serializeFrom(
1004 static_cast<FwEnumStoreType>(PRODUCTREQUESTIN_DPREQUEST)
1008 static_cast<FwAssertArgType>(_status)
1012 _status = msg.serializeFrom(portNum);
1015 static_cast<FwAssertArgType>(_status)
1019 _status = msg.serializeFrom(
id);
1022 static_cast<FwAssertArgType>(_status)
1026 _status = msg.serializeFrom(dataSize);
1029 static_cast<FwAssertArgType>(_status)
1038 static_cast<FwAssertArgType>(qStatus)
1052 static_cast<FwAssertArgType>(portNum)
1061 ComponentIpcSerializableBuffer msg;
1065 _status = msg.serializeFrom(
1066 static_cast<FwEnumStoreType>(PRODUCTSENDIN_DPSEND)
1070 static_cast<FwAssertArgType>(_status)
1074 _status = msg.serializeFrom(portNum);
1077 static_cast<FwAssertArgType>(_status)
1081 _status = msg.serializeFrom(
id);
1084 static_cast<FwAssertArgType>(_status)
1088 _status = msg.serializeFrom(buffer);
1091 static_cast<FwAssertArgType>(_status)
1100 static_cast<FwAssertArgType>(qStatus)
1113 static_cast<FwAssertArgType>(portNum)
1121 ComponentIpcSerializableBuffer msg;
1125 _status = msg.serializeFrom(
1126 static_cast<FwEnumStoreType>(SCHEDIN_SCHED)
1130 static_cast<FwAssertArgType>(_status)
1134 _status = msg.serializeFrom(portNum);
1137 static_cast<FwAssertArgType>(_status)
1141 _status = msg.serializeFrom(context);
1144 static_cast<FwAssertArgType>(_status)
1153 static_cast<FwAssertArgType>(qStatus)
1194 #if !FW_DIRECT_PORT_CALLS 1208 static_cast<FwAssertArgType>(portNum)
1212 this->m_bufferGetOut_OutputPort[portNum].isConnected(),
1213 static_cast<FwAssertArgType>(portNum)
1215 return this->m_bufferGetOut_OutputPort[portNum].
invoke(
1230 static_cast<FwAssertArgType>(portNum)
1234 this->m_productResponseOut_OutputPort[portNum].isConnected(),
1235 static_cast<FwAssertArgType>(portNum)
1237 this->m_productResponseOut_OutputPort[portNum].
invoke(
1252 static_cast<FwAssertArgType>(portNum)
1256 this->m_productSendOut_OutputPort[portNum].isConnected(),
1257 static_cast<FwAssertArgType>(portNum)
1259 this->m_productSendOut_OutputPort[portNum].
invoke(
1278 this->cmdResponseOut_out(0, opCode, cmdSeq, response);
1299 ComponentIpcSerializableBuffer msg;
1303 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CLEAR_EVENT_THROTTLE));
1306 static_cast<FwAssertArgType>(_status)
1312 _status = msg.serializeFrom(port);
1315 static_cast<FwAssertArgType>(_status)
1318 _status = msg.serializeFrom(opCode);
1321 static_cast<FwAssertArgType>(_status)
1324 _status = msg.serializeFrom(cmdSeq);
1327 static_cast<FwAssertArgType>(_status)
1330 _status = msg.serializeFrom(args);
1333 static_cast<FwAssertArgType>(_status)
1342 static_cast<FwAssertArgType>(qStatus)
1377 this->m_BufferAllocationFailedThrottle++;
1383 this->timeGetOut_out(0, _logTime);
1393 #if FW_AMPCS_COMPATIBLE 1398 static_cast<FwAssertArgType>(_status)
1402 #if FW_AMPCS_COMPATIBLE 1409 static_cast<FwAssertArgType>(_status)
1415 static_cast<FwAssertArgType>(_status)
1428 #if FW_ENABLE_TEXT_LOGGING 1429 if (this->isConnected_textEventOut_OutputPort(0)) {
1430 #if FW_OBJECT_NAMES == 1 1431 const char* _formatString =
1432 "(%s) %s: Buffer allocation failed for container id %" PRIu32
"";
1434 const char* _formatString =
1435 "%s: Buffer allocation failed for container id %" PRIu32
"";
1442 this->m_objName.toChar(),
1444 "BufferAllocationFailed ",
1448 this->textEventOut_out(
1467 this->m_BufferAllocationFailedThrottle = 0;
1486 this->timeGetOut_out(0, _tlmTime);
1512 if (not this->m_first_update_NumSuccessfulAllocations) {
1514 if (arg == this->m_last_NumSuccessfulAllocations) {
1518 this->m_last_NumSuccessfulAllocations = arg;
1522 this->m_first_update_NumSuccessfulAllocations =
false;
1523 this->m_last_NumSuccessfulAllocations = arg;
1531 static_cast<FwAssertArgType>(_stat)
1549 if (not this->m_first_update_NumFailedAllocations) {
1551 if (arg == this->m_last_NumFailedAllocations) {
1555 this->m_last_NumFailedAllocations = arg;
1559 this->m_first_update_NumFailedAllocations =
false;
1560 this->m_last_NumFailedAllocations = arg;
1568 static_cast<FwAssertArgType>(_stat)
1586 if (not this->m_first_update_NumDataProducts) {
1588 if (arg == this->m_last_NumDataProducts) {
1592 this->m_last_NumDataProducts = arg;
1596 this->m_first_update_NumDataProducts =
false;
1597 this->m_last_NumDataProducts = arg;
1605 static_cast<FwAssertArgType>(_stat)
1623 if (not this->m_first_update_NumBytes) {
1625 if (arg == this->m_last_NumBytes) {
1629 this->m_last_NumBytes = arg;
1633 this->m_first_update_NumBytes =
false;
1634 this->m_last_NumBytes = arg;
1642 static_cast<FwAssertArgType>(_stat)
1662 this->timeGetOut_out(0, _time);
1677 ComponentIpcSerializableBuffer _msg;
1687 static_cast<FwAssertArgType>(_msgStatus)
1697 static_cast<FwAssertArgType>(_deserStatus)
1700 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
1702 if (_msgType == DPMANAGER_COMPONENT_EXIT) {
1707 _deserStatus = _msg.deserializeTo(portNum);
1710 static_cast<FwAssertArgType>(_deserStatus)
1715 case PRODUCTREQUESTIN_DPREQUEST: {
1718 _deserStatus = _msg.deserializeTo(
id);
1721 static_cast<FwAssertArgType>(_deserStatus)
1726 _deserStatus = _msg.deserializeTo(dataSize);
1729 static_cast<FwAssertArgType>(_deserStatus)
1742 case PRODUCTSENDIN_DPSEND: {
1745 _deserStatus = _msg.deserializeTo(
id);
1748 static_cast<FwAssertArgType>(_deserStatus)
1753 _deserStatus = _msg.deserializeTo(buffer);
1756 static_cast<FwAssertArgType>(_deserStatus)
1769 case SCHEDIN_SCHED: {
1772 _deserStatus = _msg.deserializeTo(context);
1775 static_cast<FwAssertArgType>(_deserStatus)
1787 case CMD_CLEAR_EVENT_THROTTLE: {
1790 _deserStatus = _msg.deserializeTo(_opCode);
1793 static_cast<FwAssertArgType>(_deserStatus)
1798 _deserStatus = _msg.deserializeTo(_cmdSeq);
1801 static_cast<FwAssertArgType>(_deserStatus)
1806 _deserStatus = _msg.deserializeTo(args);
1809 static_cast<FwAssertArgType>(_deserStatus)
1817 #if FW_CMD_CHECK_RESIDUAL 1844 void DpManagerComponentBase ::
1855 compPtr->cmdIn_handlerBase(
1868 m_p_productGetIn_in(
1878 return compPtr->productGetIn_handlerBase(
1886 void DpManagerComponentBase ::
1887 m_p_productRequestIn_in(
1896 compPtr->productRequestIn_handlerBase(
1903 void DpManagerComponentBase ::
1904 m_p_productSendIn_in(
1913 compPtr->productSendIn_handlerBase(
1920 void DpManagerComponentBase ::
1929 compPtr->schedIn_handlerBase(
1935 #if !FW_DIRECT_PORT_CALLS 1941 void DpManagerComponentBase ::
1949 static_cast<FwAssertArgType>(portNum)
1953 this->m_cmdRegIn_OutputPort[portNum].isConnected(),
1954 static_cast<FwAssertArgType>(portNum)
1956 this->m_cmdRegIn_OutputPort[portNum].
invoke(
1961 void DpManagerComponentBase ::
1971 static_cast<FwAssertArgType>(portNum)
1975 this->m_cmdResponseOut_OutputPort[portNum].isConnected(),
1976 static_cast<FwAssertArgType>(portNum)
1978 this->m_cmdResponseOut_OutputPort[portNum].
invoke(
1985 void DpManagerComponentBase ::
1996 static_cast<FwAssertArgType>(portNum)
2000 this->m_eventOut_OutputPort[portNum].isConnected(),
2001 static_cast<FwAssertArgType>(portNum)
2003 this->m_eventOut_OutputPort[portNum].
invoke(
2011 #if FW_ENABLE_TEXT_LOGGING 2013 void DpManagerComponentBase ::
2023 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
2024 static_cast<FwAssertArgType>(portNum)
2028 this->m_textEventOut_OutputPort[portNum].isConnected(),
2029 static_cast<FwAssertArgType>(portNum)
2031 this->m_textEventOut_OutputPort[portNum].invoke(
2041 void DpManagerComponentBase ::
2049 static_cast<FwAssertArgType>(portNum)
2053 this->m_timeGetOut_OutputPort[portNum].isConnected(),
2054 static_cast<FwAssertArgType>(portNum)
2056 this->m_timeGetOut_OutputPort[portNum].
invoke(
2061 void DpManagerComponentBase ::
2071 static_cast<FwAssertArgType>(portNum)
2075 this->m_tlmOut_OutputPort[portNum].isConnected(),
2076 static_cast<FwAssertArgType>(portNum)
2078 this->m_tlmOut_OutputPort[portNum].
invoke(
Serialization/Deserialization operation was successful.
Svc::InputSchedPort * get_schedIn_InputPort(FwIndexType portNum)
void addCallPort(InputTimePort *callPort)
Register an input port.
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 FwSizeType CAPACITY
static constexpr FwIndexType getNum_productRequestIn_InputPorts()
FwIdType FwOpcodeType
The type of a command opcode.
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
static constexpr FwIndexType getNum_eventOut_OutputPorts()
static constexpr FwIndexType getNum_bufferGetOut_OutputPorts()
void log_WARNING_HI_BufferAllocationFailed_ThrottleClear()
Reset throttle value for BufferAllocationFailed.
FwIdType getIdBase() const
PlatformSizeType FwSizeType
void set_cmdResponseOut_OutputPort(FwIndexType portNum, Fw::InputCmdResponsePort *port)
Connect port to cmdResponseOut[portNum].
Status receive(U8 *destination, FwSizeType capacity, BlockingType blockType, FwSizeType &actualSize, FwQueuePriorityType &priority) override
receive a message from the queue through delegate
Status
status returned from the queue send function
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
Buffer allocation failed.
virtual ~DpManagerComponentBase()
Destroy DpManagerComponentBase object.
void addCallPort(InputDpResponsePort *callPort)
Register an input port.
void init()
Initialization function.
void productRequestIn_handlerBase(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize)
Handler base-class function for input port productRequestIn.
static constexpr FwSizeType CAPACITY
Enum representing a command response.
void tlmWrite_NumSuccessfulAllocations(U32 arg, Fw::Time _tlmTime=Fw::Time())
No time base has been established (Required)
void addCallPort(InputCmdRegPort *callPort)
Register an input port.
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
void tlmWrite_NumFailedAllocations(U32 arg, Fw::Time _tlmTime=Fw::Time())
bool isConnected_cmdRegIn_OutputPort(FwIndexType portNum) const
Os::Queue m_queue
queue object for active component
void productSendIn_handlerBase(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer)
Handler base-class function for input port productSendIn.
void invoke(FwDpIdType id, const Fw::Buffer &buffer, const Fw::Success &status) const
Invoke a port connection.
void addCallPort(InputTlmPort *callPort)
Register an input port.
void init()
Object initializer.
Fw::InputDpGetPort * get_productGetIn_InputPort(FwIndexType portNum)
static constexpr FwIndexType getNum_productResponseOut_OutputPorts()
SerializeStatus
forward declaration for string
virtual void productSendIn_handler(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer)=0
Handler for input port productSendIn.
void addCallPort(InputBufferGetPort *callPort)
Register an input port.
Message will block until space is available.
virtual Fw::Success productGetIn_handler(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize, Fw::Buffer &buffer)=0
Handler for input port productGetIn.
void init()
Initialization function.
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.
void invoke(FwOpcodeType opCode) const
Invoke a port connection.
Channel ID for NumFailedAllocations.
#define FW_OBJECT_NAMES
Indicates whether or not object names are stored (more memory, can be used for tracking objects) ...
Fw::InputDpSendPort * get_productSendIn_InputPort(FwIndexType portNum)
void init()
Initialization function.
Os::Queue::Status createQueue(FwSizeType depth, FwSizeType msgSize)
void invoke(Fw::Buffer &fwBuffer) const
Invoke a port connection.
void addCallPort(InputBufferSendPort *callPort)
Register an input port.
void productResponseOut_out(FwIndexType portNum, FwDpIdType id, const Fw::Buffer &buffer, const Fw::Success &status) const
Invoke output port productResponseOut.
void invoke(Fw::Time &time) const
Invoke a port connection.
void tlmWrite_NumDataProducts(U32 arg, Fw::Time _tlmTime=Fw::Time())
Serializable::SizeType getDeserializeSizeLeft() const override
Get remaining deserialization buffer size.
const char * toChar() const
Convert to a C-style char*.
void invoke(FwOpcodeType opCode, U32 cmdSeq, const Fw::CmdResponse &response) const
Invoke a port connection.
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.
Status send(const U8 *buffer, FwSizeType size, FwQueuePriorityType priority, BlockingType blockType) override
send a message into the queue through delegate
static constexpr FwIndexType getNum_cmdRegIn_OutputPorts()
virtual void CLEAR_EVENT_THROTTLE_cmdHandler(FwOpcodeType opCode, U32 cmdSeq)=0
void resetDeser() override
Reset deserialization pointer to beginning of buffer.
void CLEAR_EVENT_THROTTLE_cmdHandlerBase(FwOpcodeType opCode, U32 cmdSeq, Fw::CmdArgBuffer &args)
Throttle reset count for BufferAllocationFailed.
A serious but recoverable event.
static constexpr FwIndexType getNum_schedIn_InputPorts()
Errors dispatching messages.
void invoke(FwChanIdType id, Fw::Time &timeTag, Fw::TlmBuffer &val) const
Invoke a port connection.
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
FormatStatus format(const CHAR *formatString,...)
write formatted string to buffer
void init()
Initialization function.
Fw::InputCmdPort * get_cmdIn_InputPort(FwIndexType portNum)
bool isConnected_eventOut_OutputPort(FwIndexType portNum) const
uint8_t U8
8-bit unsigned integer
void schedIn_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port schedIn.
Fw::Buffer invoke(FwSizeType size) const
static constexpr FwIndexType getNum_productSendIn_InputPorts()
virtual void productRequestIn_handler(FwIndexType portNum, FwDpIdType id, FwSizeType dataSize)=0
Handler for input port productRequestIn.
Command failed to deserialize.
Fw::Buffer bufferGetOut_out(FwIndexType portNum, FwSizeType size) const
Invoke output port bufferGetOut.
PlatformQueuePriorityType FwQueuePriorityType
The type of queue priorities used.
void log_WARNING_HI_BufferAllocationFailed(FwDpIdType id)
void init()
Initialization function.
FwIdType FwDpIdType
The type of a data product identifier.
void invoke(FwEventIdType id, Fw::Time &timeTag, const Fw::LogSeverity &severity, Fw::LogBuffer &args) const
Invoke a port connection.
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].
Channel ID for NumDataProducts.
A message was sent requesting an exit of the loop.
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)
void addCallPort(InputLogPort *callPort)
Register an input port.
bool isConnected_productSendOut_OutputPort(FwIndexType portNum) const
void init()
Initialization function.
void regCommands()
Register commands with the Command Dispatcher.
void init()
Initialization function.
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
message sent/received okay
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.
Message will return with status when space is unavailable.
Implementation of malloc based allocator.
static constexpr FwSizeType CAPACITY
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
void init()
Initialization function.
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
static constexpr FwSizeType CAPACITY
Channel ID for NumSuccessfulAllocations.
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
message to exit active component task