7 #ifndef Svc_BufferManagerComponentAc_HPP 8 #define Svc_BufferManagerComponentAc_HPP 18 #if FW_ENABLE_TEXT_LOGGING == 1 21 #if !FW_DIRECT_PORT_CALLS 24 #if !FW_DIRECT_PORT_CALLS 106 #if !FW_DIRECT_PORT_CALLS 137 #if !FW_DIRECT_PORT_CALLS 151 #if FW_ENABLE_TEXT_LOGGING == 1 154 void set_textEventOut_OutputPort(
175 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 186 Fw::InputSerializePort* port
189 #if FW_ENABLE_TEXT_LOGGING == 1 192 void set_textEventOut_OutputPort(
194 Fw::InputSerializePort* port
202 Fw::InputSerializePort* port
208 Fw::InputSerializePort* port
221 const char* compName =
"" 267 #if FW_ENABLE_TEXT_LOGGING == 1 272 static constexpr
FwIndexType getNum_textEventOut_OutputPorts() {
305 #if FW_ENABLE_TEXT_LOGGING == 1 310 bool isConnected_textEventOut_OutputPort(
354 #if FW_DIRECT_PORT_CALLS 516 static void m_p_bufferSendIn_in(
523 static void m_p_schedIn_in(
544 #if FW_ENABLE_TEXT_LOGGING 547 void textEventOut_out(
571 #if !FW_DIRECT_PORT_CALLS 590 #if !FW_DIRECT_PORT_CALLS 601 #if FW_ENABLE_TEXT_LOGGING == 1 623 std::atomic<FwIndexType> m_NoBuffsAvailableThrottle;
626 std::atomic<FwIndexType> m_NullEmptyBufferThrottle;
635 bool m_first_update_TotalBuffs =
true;
638 bool m_first_update_CurrBuffs =
true;
641 bool m_first_update_HiBuffs =
true;
644 bool m_first_update_NoBuffs =
true;
647 bool m_first_update_EmptyBuffs =
true;
656 U32 m_last_TotalBuffs = {};
659 U32 m_last_CurrBuffs = {};
662 U32 m_last_HiBuffs = {};
665 U32 m_last_NoBuffs = {};
668 U32 m_last_EmptyBuffs = {};
void log_WARNING_HI_NoBuffsAvailable(FwSizeType size)
static constexpr FwIndexType getNum_bufferGetCallee_InputPorts()
virtual ~BufferManagerComponentBase()
Destroy BufferManagerComponentBase object.
PlatformSizeType FwSizeType
void set_tlmOut_OutputPort(FwIndexType portNum, Fw::InputTlmPort *port)
Connect port to tlmOut[portNum].
bool isConnected_tlmOut_OutputPort(FwIndexType portNum) const
Fw::Buffer bufferGetCallee_handlerBase(FwIndexType portNum, FwSizeType size)
Handler base-class function for input port bufferGetCallee.
static constexpr FwIndexType getNum_schedIn_InputPorts()
Channel ID for TotalBuffs.
Channel ID for CurrBuffs.
bool isConnected_eventOut_OutputPort(FwIndexType portNum) const
virtual void bufferSendIn_handler(FwIndexType portNum, Fw::Buffer &fwBuffer)=0
Handler for input port bufferSendIn.
virtual void schedIn_handler(FwIndexType portNum, U32 context)=0
Handler for input port schedIn.
Throttle reset count for NullEmptyBuffer.
void init()
Object initializer.
Fw::InputBufferSendPort * get_bufferSendIn_InputPort(FwIndexType portNum)
void set_timeCaller_OutputPort(FwIndexType portNum, Fw::InputTimePort *port)
Connect port to timeCaller[portNum].
FwIdType FwEventIdType
The type of an event identifier.
void log_WARNING_HI_NullEmptyBuffer()
void log_WARNING_HI_NoBuffsAvailable_ThrottleClear()
Reset throttle value for NoBuffsAvailable.
Fw::InputBufferGetPort * get_bufferGetCallee_InputPort(FwIndexType portNum)
Throttle reset count for NoBuffsAvailable.
static constexpr FwIndexType getNum_timeCaller_OutputPorts()
FwIdType FwChanIdType
The type of a telemetry channel identifier.
void schedIn_handlerBase(FwIndexType portNum, U32 context)
Handler base-class function for input port schedIn.
static constexpr FwIndexType getNum_tlmOut_OutputPorts()
void tlmWrite_NoBuffs(U32 arg, Fw::Time _tlmTime=Fw::Time())
Channel ID for EmptyBuffs.
Enum representing event severity.
static constexpr FwIndexType getNum_bufferSendIn_InputPorts()
void tlmWrite_CurrBuffs(U32 arg, Fw::Time _tlmTime=Fw::Time())
void tlmWrite_HiBuffs(U32 arg, Fw::Time _tlmTime=Fw::Time())
friend class BufferManagerTester
Friend class tester implementation to support white-box testing.
virtual void unLock()
Unlock the guarded mutex.
void tlmWrite_TotalBuffs(U32 arg, Fw::Time _tlmTime=Fw::Time())
virtual void lock()
Lock the guarded mutex.
The buffer manager received a null pointer and zero-sized buffer as a return. Probably undetected fai...
static constexpr FwIndexType getNum_eventOut_OutputPorts()
Svc::InputSchedPort * get_schedIn_InputPort(FwIndexType portNum)
void tlmWrite_EmptyBuffs(U32 arg, Fw::Time _tlmTime=Fw::Time())
friend class BufferManagerTesterBase
Friend class tester to support autocoded test harness.
PlatformIndexType FwIndexType
void log_WARNING_HI_NullEmptyBuffer_ThrottleClear()
Reset throttle value for NullEmptyBuffer.
RateGroupDivider component implementation.
void tlmWrite(FwChanIdType id, Fw::TlmBuffer &_tlmBuff, Fw::Time _tlmTime=Fw::Time()) const
void set_eventOut_OutputPort(FwIndexType portNum, Fw::InputLogPort *port)
Connect port to eventOut[portNum].
bool isConnected_timeCaller_OutputPort(FwIndexType portNum) const
virtual Fw::Buffer bufferGetCallee_handler(FwIndexType portNum, FwSizeType size)=0
Handler for input port bufferGetCallee.
void bufferSendIn_handlerBase(FwIndexType portNum, Fw::Buffer &fwBuffer)
Handler base-class function for input port bufferSendIn.
The BufferManager was unable to allocate a requested buffer.
Auto-generated base for BufferManager component.
BufferManagerComponentBase(const char *compName="")
Construct BufferManagerComponentBase object.