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
51 ComponentIpcSerializableBuffer() :
Fw::LinearBufferBase(m_buff, sizeof(m_buff)) {
57 U8 m_buff[SERIALIZATION_SIZE];
75 #if !FW_DIRECT_PORT_CALLS 82 this->m_cmdIn_InputPort[port].
init();
87 this->m_cmdIn_InputPort[port].
setPortNum(port);
89 #if FW_OBJECT_NAMES == 1 93 this->m_objName.toChar(),
96 this->m_cmdIn_InputPort[port].setObjName(portName.
toChar());
101 #if !FW_DIRECT_PORT_CALLS 108 this->m_productGetIn_InputPort[port].
init();
113 this->m_productGetIn_InputPort[port].
setPortNum(port);
115 #if FW_OBJECT_NAMES == 1 119 this->m_objName.toChar(),
122 this->m_productGetIn_InputPort[port].setObjName(portName.
toChar());
127 #if !FW_DIRECT_PORT_CALLS 134 this->m_productRequestIn_InputPort[port].
init();
135 this->m_productRequestIn_InputPort[port].
addCallComp(
137 m_p_productRequestIn_in
139 this->m_productRequestIn_InputPort[port].
setPortNum(port);
141 #if FW_OBJECT_NAMES == 1 145 this->m_objName.toChar(),
148 this->m_productRequestIn_InputPort[port].setObjName(portName.
toChar());
153 #if !FW_DIRECT_PORT_CALLS 160 this->m_productSendIn_InputPort[port].
init();
165 this->m_productSendIn_InputPort[port].
setPortNum(port);
167 #if FW_OBJECT_NAMES == 1 171 this->m_objName.toChar(),
174 this->m_productSendIn_InputPort[port].setObjName(portName.
toChar());
179 #if !FW_DIRECT_PORT_CALLS 186 this->m_schedIn_InputPort[port].
init();
191 this->m_schedIn_InputPort[port].
setPortNum(port);
193 #if FW_OBJECT_NAMES == 1 197 this->m_objName.toChar(),
200 this->m_schedIn_InputPort[port].setObjName(portName.
toChar());
205 #if !FW_DIRECT_PORT_CALLS 212 this->m_cmdRegIn_OutputPort[port].
init();
214 #if FW_OBJECT_NAMES == 1 218 this->m_objName.toChar(),
221 this->m_cmdRegIn_OutputPort[port].setObjName(portName.
toChar());
226 #if !FW_DIRECT_PORT_CALLS 233 this->m_cmdResponseOut_OutputPort[port].
init();
235 #if FW_OBJECT_NAMES == 1 239 this->m_objName.toChar(),
242 this->m_cmdResponseOut_OutputPort[port].setObjName(portName.
toChar());
247 #if !FW_DIRECT_PORT_CALLS 254 this->m_eventOut_OutputPort[port].
init();
256 #if FW_OBJECT_NAMES == 1 260 this->m_objName.toChar(),
263 this->m_eventOut_OutputPort[port].setObjName(portName.
toChar());
268 #if !FW_DIRECT_PORT_CALLS && FW_ENABLE_TEXT_LOGGING 272 port < static_cast<FwIndexType>(this->getNum_textEventOut_OutputPorts());
275 this->m_textEventOut_OutputPort[port].
init();
277 #if FW_OBJECT_NAMES == 1 281 this->m_objName.toChar(),
284 this->m_textEventOut_OutputPort[port].setObjName(portName.
toChar());
289 #if !FW_DIRECT_PORT_CALLS 296 this->m_timeGetOut_OutputPort[port].
init();
298 #if FW_OBJECT_NAMES == 1 302 this->m_objName.toChar(),
305 this->m_timeGetOut_OutputPort[port].setObjName(portName.
toChar());
310 #if !FW_DIRECT_PORT_CALLS 317 this->m_tlmOut_OutputPort[port].
init();
319 #if FW_OBJECT_NAMES == 1 323 this->m_objName.toChar(),
326 this->m_tlmOut_OutputPort[port].setObjName(portName.
toChar());
331 #if !FW_DIRECT_PORT_CALLS 338 this->m_bufferGetOut_OutputPort[port].
init();
340 #if FW_OBJECT_NAMES == 1 344 this->m_objName.toChar(),
347 this->m_bufferGetOut_OutputPort[port].setObjName(portName.
toChar());
352 #if !FW_DIRECT_PORT_CALLS 359 this->m_productResponseOut_OutputPort[port].
init();
361 #if FW_OBJECT_NAMES == 1 365 this->m_objName.toChar(),
368 this->m_productResponseOut_OutputPort[port].setObjName(portName.
toChar());
373 #if !FW_DIRECT_PORT_CALLS 380 this->m_productSendOut_OutputPort[port].
init();
382 #if FW_OBJECT_NAMES == 1 386 this->m_objName.toChar(),
389 this->m_productSendOut_OutputPort[port].setObjName(portName.
toChar());
397 static_cast<FwSizeType>(ComponentIpcSerializableBuffer::SERIALIZATION_SIZE)
401 static_cast<FwAssertArgType>(qStat)
405 #if !FW_DIRECT_PORT_CALLS 416 static_cast<FwAssertArgType>(portNum)
419 return &this->m_cmdIn_InputPort[portNum];
424 #if !FW_DIRECT_PORT_CALLS 435 static_cast<FwAssertArgType>(portNum)
438 return &this->m_productGetIn_InputPort[portNum];
446 static_cast<FwAssertArgType>(portNum)
449 return &this->m_productRequestIn_InputPort[portNum];
457 static_cast<FwAssertArgType>(portNum)
460 return &this->m_productSendIn_InputPort[portNum];
468 static_cast<FwAssertArgType>(portNum)
471 return &this->m_schedIn_InputPort[portNum];
476 #if !FW_DIRECT_PORT_CALLS 490 static_cast<FwAssertArgType>(portNum)
493 this->m_cmdRegIn_OutputPort[portNum].
addCallPort(port);
504 static_cast<FwAssertArgType>(portNum)
507 this->m_cmdResponseOut_OutputPort[portNum].
addCallPort(port);
518 static_cast<FwAssertArgType>(portNum)
521 this->m_eventOut_OutputPort[portNum].
addCallPort(port);
524 #if FW_ENABLE_TEXT_LOGGING == 1 526 void DpManagerComponentBase ::
527 set_textEventOut_OutputPort(
533 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
534 static_cast<FwAssertArgType>(portNum)
537 this->m_textEventOut_OutputPort[portNum].addCallPort(port);
550 static_cast<FwAssertArgType>(portNum)
553 this->m_timeGetOut_OutputPort[portNum].
addCallPort(port);
564 static_cast<FwAssertArgType>(portNum)
567 this->m_tlmOut_OutputPort[portNum].
addCallPort(port);
572 #if !FW_DIRECT_PORT_CALLS 586 static_cast<FwAssertArgType>(portNum)
589 this->m_bufferGetOut_OutputPort[portNum].
addCallPort(port);
600 static_cast<FwAssertArgType>(portNum)
603 this->m_productResponseOut_OutputPort[portNum].
addCallPort(port);
614 static_cast<FwAssertArgType>(portNum)
617 this->m_productSendOut_OutputPort[portNum].
addCallPort(port);
622 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 631 Fw::InputSerializePort* port
636 static_cast<FwAssertArgType>(portNum)
639 this->m_cmdRegIn_OutputPort[portNum].registerSerialPort(port);
645 Fw::InputSerializePort* port
650 static_cast<FwAssertArgType>(portNum)
653 this->m_cmdResponseOut_OutputPort[portNum].registerSerialPort(port);
659 Fw::InputSerializePort* port
664 static_cast<FwAssertArgType>(portNum)
667 this->m_eventOut_OutputPort[portNum].registerSerialPort(port);
670 #if FW_ENABLE_TEXT_LOGGING == 1 672 void DpManagerComponentBase ::
673 set_textEventOut_OutputPort(
675 Fw::InputSerializePort* port
679 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
680 static_cast<FwAssertArgType>(portNum)
683 this->m_textEventOut_OutputPort[portNum].registerSerialPort(port);
691 Fw::InputSerializePort* port
696 static_cast<FwAssertArgType>(portNum)
699 this->m_timeGetOut_OutputPort[portNum].registerSerialPort(port);
705 Fw::InputSerializePort* port
710 static_cast<FwAssertArgType>(portNum)
713 this->m_tlmOut_OutputPort[portNum].registerSerialPort(port);
718 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 727 Fw::InputSerializePort* port
732 static_cast<FwAssertArgType>(portNum)
735 this->m_productResponseOut_OutputPort[portNum].registerSerialPort(port);
741 Fw::InputSerializePort* port
746 static_cast<FwAssertArgType>(portNum)
749 this->m_productSendOut_OutputPort[portNum].registerSerialPort(port);
775 Fw::ActiveComponentBase(compName)
777 this->m_BufferAllocationFailedThrottle = 0;
786 #if !FW_DIRECT_PORT_CALLS 797 static_cast<FwAssertArgType>(portNum)
800 return this->m_cmdRegIn_OutputPort[portNum].
isConnected();
808 static_cast<FwAssertArgType>(portNum)
811 return this->m_cmdResponseOut_OutputPort[portNum].
isConnected();
819 static_cast<FwAssertArgType>(portNum)
822 return this->m_eventOut_OutputPort[portNum].
isConnected();
825 #if FW_ENABLE_TEXT_LOGGING == 1 827 bool DpManagerComponentBase ::
828 isConnected_textEventOut_OutputPort(
FwIndexType portNum)
const 831 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
832 static_cast<FwAssertArgType>(portNum)
835 return this->m_textEventOut_OutputPort[portNum].isConnected();
845 static_cast<FwAssertArgType>(portNum)
848 return this->m_timeGetOut_OutputPort[portNum].
isConnected();
856 static_cast<FwAssertArgType>(portNum)
859 return this->m_tlmOut_OutputPort[portNum].
isConnected();
864 #if !FW_DIRECT_PORT_CALLS 875 static_cast<FwAssertArgType>(portNum)
878 return this->m_bufferGetOut_OutputPort[portNum].
isConnected();
886 static_cast<FwAssertArgType>(portNum)
889 return this->m_productResponseOut_OutputPort[portNum].
isConnected();
897 static_cast<FwAssertArgType>(portNum)
900 return this->m_productSendOut_OutputPort[portNum].
isConnected();
921 FW_ASSERT(opCode >= idBase, static_cast<FwAssertArgType>(opCode), static_cast<FwAssertArgType>(idBase));
924 switch (opCode - idBase) {
956 static_cast<FwAssertArgType>(portNum)
982 static_cast<FwAssertArgType>(portNum)
991 ComponentIpcSerializableBuffer msg;
995 _status = msg.serializeFrom(
996 static_cast<FwEnumStoreType>(PRODUCTREQUESTIN_DPREQUEST)
1000 static_cast<FwAssertArgType>(_status)
1004 _status = msg.serializeFrom(portNum);
1007 static_cast<FwAssertArgType>(_status)
1011 _status = msg.serializeFrom(
id);
1014 static_cast<FwAssertArgType>(_status)
1018 _status = msg.serializeFrom(dataSize);
1021 static_cast<FwAssertArgType>(_status)
1030 static_cast<FwAssertArgType>(qStatus)
1044 static_cast<FwAssertArgType>(portNum)
1053 ComponentIpcSerializableBuffer msg;
1057 _status = msg.serializeFrom(
1058 static_cast<FwEnumStoreType>(PRODUCTSENDIN_DPSEND)
1062 static_cast<FwAssertArgType>(_status)
1066 _status = msg.serializeFrom(portNum);
1069 static_cast<FwAssertArgType>(_status)
1073 _status = msg.serializeFrom(
id);
1076 static_cast<FwAssertArgType>(_status)
1080 _status = msg.serializeFrom(buffer);
1083 static_cast<FwAssertArgType>(_status)
1092 static_cast<FwAssertArgType>(qStatus)
1105 static_cast<FwAssertArgType>(portNum)
1113 ComponentIpcSerializableBuffer msg;
1117 _status = msg.serializeFrom(
1118 static_cast<FwEnumStoreType>(SCHEDIN_SCHED)
1122 static_cast<FwAssertArgType>(_status)
1126 _status = msg.serializeFrom(portNum);
1129 static_cast<FwAssertArgType>(_status)
1133 _status = msg.serializeFrom(context);
1136 static_cast<FwAssertArgType>(_status)
1145 static_cast<FwAssertArgType>(qStatus)
1186 #if !FW_DIRECT_PORT_CALLS 1200 static_cast<FwAssertArgType>(portNum)
1204 this->m_bufferGetOut_OutputPort[portNum].isConnected(),
1205 static_cast<FwAssertArgType>(portNum)
1207 return this->m_bufferGetOut_OutputPort[portNum].
invoke(
1222 static_cast<FwAssertArgType>(portNum)
1226 this->m_productResponseOut_OutputPort[portNum].isConnected(),
1227 static_cast<FwAssertArgType>(portNum)
1229 this->m_productResponseOut_OutputPort[portNum].
invoke(
1244 static_cast<FwAssertArgType>(portNum)
1248 this->m_productSendOut_OutputPort[portNum].isConnected(),
1249 static_cast<FwAssertArgType>(portNum)
1251 this->m_productSendOut_OutputPort[portNum].
invoke(
1270 this->cmdResponseOut_out(0, opCode, cmdSeq, response);
1291 ComponentIpcSerializableBuffer msg;
1295 _status = msg.serializeFrom(static_cast<FwEnumStoreType>(CMD_CLEAR_EVENT_THROTTLE));
1298 static_cast<FwAssertArgType>(_status)
1304 _status = msg.serializeFrom(port);
1307 static_cast<FwAssertArgType>(_status)
1310 _status = msg.serializeFrom(opCode);
1313 static_cast<FwAssertArgType>(_status)
1316 _status = msg.serializeFrom(cmdSeq);
1319 static_cast<FwAssertArgType>(_status)
1322 _status = msg.serializeFrom(args);
1325 static_cast<FwAssertArgType>(_status)
1334 static_cast<FwAssertArgType>(qStatus)
1369 this->m_BufferAllocationFailedThrottle++;
1375 this->timeGetOut_out(0, _logTime);
1385 #if FW_AMPCS_COMPATIBLE 1390 static_cast<FwAssertArgType>(_status)
1394 #if FW_AMPCS_COMPATIBLE 1401 static_cast<FwAssertArgType>(_status)
1407 static_cast<FwAssertArgType>(_status)
1420 #if FW_ENABLE_TEXT_LOGGING 1421 if (this->isConnected_textEventOut_OutputPort(0)) {
1422 #if FW_OBJECT_NAMES == 1 1423 const char* _formatString =
1424 "(%s) %s: Buffer allocation failed for container id %" PRIu32
"";
1426 const char* _formatString =
1427 "%s: Buffer allocation failed for container id %" PRIu32
"";
1431 (void) _logString.
format(
1434 this->m_objName.toChar(),
1436 "BufferAllocationFailed ",
1440 this->textEventOut_out(
1459 this->m_BufferAllocationFailedThrottle = 0;
1478 this->timeGetOut_out(0, _tlmTime);
1504 if (not this->m_first_update_NumSuccessfulAllocations) {
1506 if (arg == this->m_last_NumSuccessfulAllocations) {
1510 this->m_last_NumSuccessfulAllocations = arg;
1514 this->m_first_update_NumSuccessfulAllocations =
false;
1515 this->m_last_NumSuccessfulAllocations = arg;
1523 static_cast<FwAssertArgType>(_stat)
1541 if (not this->m_first_update_NumFailedAllocations) {
1543 if (arg == this->m_last_NumFailedAllocations) {
1547 this->m_last_NumFailedAllocations = arg;
1551 this->m_first_update_NumFailedAllocations =
false;
1552 this->m_last_NumFailedAllocations = arg;
1560 static_cast<FwAssertArgType>(_stat)
1578 if (not this->m_first_update_NumDataProducts) {
1580 if (arg == this->m_last_NumDataProducts) {
1584 this->m_last_NumDataProducts = arg;
1588 this->m_first_update_NumDataProducts =
false;
1589 this->m_last_NumDataProducts = arg;
1597 static_cast<FwAssertArgType>(_stat)
1615 if (not this->m_first_update_NumBytes) {
1617 if (arg == this->m_last_NumBytes) {
1621 this->m_last_NumBytes = arg;
1625 this->m_first_update_NumBytes =
false;
1626 this->m_last_NumBytes = arg;
1634 static_cast<FwAssertArgType>(_stat)
1654 this->timeGetOut_out(0, _time);
1669 ComponentIpcSerializableBuffer _msg;
1679 static_cast<FwAssertArgType>(_msgStatus)
1689 static_cast<FwAssertArgType>(_deserStatus)
1692 MsgTypeEnum _msgType =
static_cast<MsgTypeEnum
>(_desMsg);
1694 if (_msgType == DPMANAGER_COMPONENT_EXIT) {
1699 _deserStatus = _msg.deserializeTo(portNum);
1702 static_cast<FwAssertArgType>(_deserStatus)
1707 case PRODUCTREQUESTIN_DPREQUEST: {
1710 _deserStatus = _msg.deserializeTo(
id);
1713 static_cast<FwAssertArgType>(_deserStatus)
1718 _deserStatus = _msg.deserializeTo(dataSize);
1721 static_cast<FwAssertArgType>(_deserStatus)
1734 case PRODUCTSENDIN_DPSEND: {
1737 _deserStatus = _msg.deserializeTo(
id);
1740 static_cast<FwAssertArgType>(_deserStatus)
1745 _deserStatus = _msg.deserializeTo(buffer);
1748 static_cast<FwAssertArgType>(_deserStatus)
1761 case SCHEDIN_SCHED: {
1764 _deserStatus = _msg.deserializeTo(context);
1767 static_cast<FwAssertArgType>(_deserStatus)
1779 case CMD_CLEAR_EVENT_THROTTLE: {
1782 _deserStatus = _msg.deserializeTo(_opCode);
1785 static_cast<FwAssertArgType>(_deserStatus)
1790 _deserStatus = _msg.deserializeTo(_cmdSeq);
1793 static_cast<FwAssertArgType>(_deserStatus)
1798 _deserStatus = _msg.deserializeTo(args);
1801 static_cast<FwAssertArgType>(_deserStatus)
1809 #if FW_CMD_CHECK_RESIDUAL 1836 void DpManagerComponentBase ::
1847 compPtr->cmdIn_handlerBase(
1860 m_p_productGetIn_in(
1870 return compPtr->productGetIn_handlerBase(
1878 void DpManagerComponentBase ::
1879 m_p_productRequestIn_in(
1888 compPtr->productRequestIn_handlerBase(
1895 void DpManagerComponentBase ::
1896 m_p_productSendIn_in(
1905 compPtr->productSendIn_handlerBase(
1912 void DpManagerComponentBase ::
1921 compPtr->schedIn_handlerBase(
1927 #if !FW_DIRECT_PORT_CALLS 1933 void DpManagerComponentBase ::
1941 static_cast<FwAssertArgType>(portNum)
1945 this->m_cmdRegIn_OutputPort[portNum].isConnected(),
1946 static_cast<FwAssertArgType>(portNum)
1948 this->m_cmdRegIn_OutputPort[portNum].
invoke(
1953 void DpManagerComponentBase ::
1963 static_cast<FwAssertArgType>(portNum)
1967 this->m_cmdResponseOut_OutputPort[portNum].isConnected(),
1968 static_cast<FwAssertArgType>(portNum)
1970 this->m_cmdResponseOut_OutputPort[portNum].
invoke(
1977 void DpManagerComponentBase ::
1988 static_cast<FwAssertArgType>(portNum)
1992 this->m_eventOut_OutputPort[portNum].isConnected(),
1993 static_cast<FwAssertArgType>(portNum)
1995 this->m_eventOut_OutputPort[portNum].
invoke(
2003 #if FW_ENABLE_TEXT_LOGGING 2005 void DpManagerComponentBase ::
2015 (0 <= portNum) && (portNum < this->getNum_textEventOut_OutputPorts()),
2016 static_cast<FwAssertArgType>(portNum)
2020 this->m_textEventOut_OutputPort[portNum].isConnected(),
2021 static_cast<FwAssertArgType>(portNum)
2023 this->m_textEventOut_OutputPort[portNum].invoke(
2033 void DpManagerComponentBase ::
2041 static_cast<FwAssertArgType>(portNum)
2045 this->m_timeGetOut_OutputPort[portNum].isConnected(),
2046 static_cast<FwAssertArgType>(portNum)
2048 this->m_timeGetOut_OutputPort[portNum].
invoke(
2053 void DpManagerComponentBase ::
2063 static_cast<FwAssertArgType>(portNum)
2067 this->m_tlmOut_OutputPort[portNum].isConnected(),
2068 static_cast<FwAssertArgType>(portNum)
2070 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.
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
Channel ID for NumSuccessfulAllocations.
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
Buffer allocation failed.
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.
message to exit active component task
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()
Throttle reset count for BufferAllocationFailed.
Channel ID for NumDataProducts.
bool isConnected_bufferGetOut_OutputPort(FwIndexType portNum) const
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)
SerializeStatus serializeFrom(U8 val, Endianness mode=Endianness::BIG) override
Serialize an 8-bit unsigned integer value.
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.
#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.
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)
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.
const char * toChar() const
Convert to a C-style char*.
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].
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
Channel ID for NumFailedAllocations.
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
void addCallPort(InputCmdResponsePort *callPort)
Register an input port.
BYTE cmdPortSize[Fw::CmdPortBuffer::CAPACITY]