7 #ifndef Svc_AggregationMachineStateMachineAc_HPP 8 #define Svc_AggregationMachineStateMachineAc_HPP 192 void enter_WAIT_STATUS(
197 void enter_SPAN_CHECK(
203 void enter_IS_GOOD_STATUS(
209 void enter_WILL_FILL_THEN_SEND(
215 void enter_IS_FULL_THEN_SEND(
virtual void action_doHold(Signal signal, const Svc::ComDataContextPair &value)=0
Hold a buffer.
virtual void action_doClear(Signal signal)=0
Clear the buffer fill state, last status.
void sendSignal_status(const Fw::Success &value)
Status return.
void sendSignal_timeout()
Rate-group driven timeout signal.
AggregationMachineStateMachineBase::State getState() const
Get the state.
virtual bool guard_isSpanFull(Signal signal) const =0
Check if the aggregation buffer was completely filled from held continuation data.
virtual ~AggregationMachineStateMachineBase()
Destructor.
void initBase(const FwEnumStoreType id)
Initialize the state machine.
friend class AggregationMachineTester
Tester class for the state machine.
Aggregation state machine.
virtual bool guard_isNotEmpty(Signal signal) const =0
Check if not empty.
virtual void action_doFill(Signal signal, const Svc::ComDataContextPair &value)=0
Fill the buffer with data.
virtual bool guard_isFull(Signal signal, const Svc::ComDataContextPair &value) const =0
Check if the aggregation buffer is full, i.e. cannot accept the incoming buffer.
virtual void action_doSplitHold(Signal signal, const Svc::ComDataContextPair &value)=0
Hold a buffer, first splitting its leading bytes into the remaining frame space when spanning...
void sendSignal_fill(const Svc::ComDataContextPair &value)
Fill buffer signal.
virtual void action_doNoteFailure(Signal signal)=0
Record that the last frame was not acknowledged.
virtual void action_assertNoStatus(Signal signal)=0
Assert no status when in fill state.
FwEnumStoreType m_id
The state machine ID.
virtual bool guard_isGood(Signal signal, const Fw::Success &value) const =0
Check if last status is good.
RateGroupDivider component implementation.
AggregationMachineStateMachineBase()
Constructor.
virtual void action_doSend(Signal signal)=0
Send the buffer data.
virtual bool guard_willFill(Signal signal, const Svc::ComDataContextPair &value) const =0
Check if the aggregation will fill, i.e. the incoming buffer will exactly fit.
Rate-group driven timeout signal.