7 #ifndef Svc_BufferManagerComponentAc_HPP 8 #define Svc_BufferManagerComponentAc_HPP 19 #if !FW_DIRECT_PORT_CALLS 22 #if !FW_DIRECT_PORT_CALLS 104 #if !FW_DIRECT_PORT_CALLS 135 #if !FW_DIRECT_PORT_CALLS 149 #if FW_ENABLE_TEXT_LOGGING == 1 152 void set_textEventOut_OutputPort(
173 #if !FW_DIRECT_PORT_CALLS && FW_PORT_SERIALIZATION 184 Fw::InputSerializePort* port
187 #if FW_ENABLE_TEXT_LOGGING == 1 190 void set_textEventOut_OutputPort(
192 Fw::InputSerializePort* port
200 Fw::InputSerializePort* port
206 Fw::InputSerializePort* port
219 const char* compName =
"" 265 #if FW_ENABLE_TEXT_LOGGING == 1 270 static constexpr
FwIndexType getNum_textEventOut_OutputPorts() {
303 #if FW_ENABLE_TEXT_LOGGING == 1 308 bool isConnected_textEventOut_OutputPort(
352 #if FW_DIRECT_PORT_CALLS 514 static void m_p_bufferSendIn_in(
521 static void m_p_schedIn_in(
542 #if FW_ENABLE_TEXT_LOGGING 545 void textEventOut_out(
569 #if !FW_DIRECT_PORT_CALLS 588 #if !FW_DIRECT_PORT_CALLS 599 #if FW_ENABLE_TEXT_LOGGING == 1 621 std::atomic<FwIndexType> m_NoBuffsAvailableThrottle;
624 std::atomic<FwIndexType> m_NullEmptyBufferThrottle;
633 bool m_first_update_TotalBuffs =
true;
636 bool m_first_update_CurrBuffs =
true;
639 bool m_first_update_HiBuffs =
true;
642 bool m_first_update_NoBuffs =
true;
645 bool m_first_update_EmptyBuffs =
true;
654 U32 m_last_TotalBuffs = {};
657 U32 m_last_CurrBuffs = {};
660 U32 m_last_HiBuffs = {};
663 U32 m_last_NoBuffs = {};
666 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()
The BufferManager was unable to allocate a requested buffer.
Channel ID for CurrBuffs.
bool isConnected_eventOut_OutputPort(FwIndexType portNum) const
Channel ID for EmptyBuffs.
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.
The buffer manager received a null pointer and zero-sized buffer as a return. Probably undetected fai...
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)
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())
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.
Throttle reset count for NoBuffsAvailable.
void tlmWrite_TotalBuffs(U32 arg, Fw::Time _tlmTime=Fw::Time())
Throttle reset count for NullEmptyBuffer.
virtual void lock()
Lock the guarded mutex.
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.
Auto-generated base for BufferManager component.
Channel ID for TotalBuffs.
BufferManagerComponentBase(const char *compName="")
Construct BufferManagerComponentBase object.