context< RecoveryMachine >().log_enter(state_name);
}
+boost::statechart::result
+PG::RecoveryState::RepRecovering::react(const BackfillTooFull &)
+{
+ PG *pg = context< RecoveryMachine >().pg;
+ pg->reject_reservation();
+ return transit<RepNotRecovering>();
+}
+
void PG::RecoveryState::RepRecovering::exit()
{
context< RecoveryMachine >().log_exit(state_name, enter_time);
TrivialEvent(RequestBackfill)
TrivialEvent(RequestRecovery)
TrivialEvent(RecoveryDone)
+ TrivialEvent(BackfillTooFull)
TrivialEvent(AllReplicasRecovered)
TrivialEvent(DoRecovery)
struct RepRecovering : boost::statechart::state< RepRecovering, ReplicaActive >, NamedState {
typedef boost::mpl::list<
- boost::statechart::transition< RecoveryDone, RepNotRecovering >
+ boost::statechart::transition< RecoveryDone, RepNotRecovering >,
+ boost::statechart::custom_reaction< BackfillTooFull >
> reactions;
RepRecovering(my_context ctx);
+ boost::statechart::result react(const BackfillTooFull &evt);
void exit();
};