~FlushState() {
pg->lock();
if (!pg->pg_has_reset_since(epoch))
- pg->queue_flushed(epoch);
+ pg->on_flushed();
pg->unlock();
}
};
NullEvt())));
}
-void PG::queue_flushed(epoch_t e)
-{
- dout(10) << "flushed" << dendl;
- queue_peering_event(
- PGPeeringEventRef(std::make_shared<PGPeeringEvent>(e, e,
- FlushedEvt())));
-}
-
void PG::queue_query(epoch_t msg_epoch,
epoch_t query_epoch,
pg_shard_t from, const pg_query_t& q)
return discard_event();
}
-
-boost::statechart::result
-PG::RecoveryState::Started::react(const FlushedEvt&)
-{
- PG *pg = context< RecoveryMachine >().pg;
- pg->on_flushed();
- return discard_event();
-}
-
-
boost::statechart::result PG::RecoveryState::Started::react(const AdvMap& advmap)
{
PG *pg = context< RecoveryMachine >().pg;
pg->set_last_peering_reset();
}
-boost::statechart::result
-PG::RecoveryState::Reset::react(const FlushedEvt&)
-{
- PG *pg = context< RecoveryMachine >().pg;
- pg->on_flushed();
- return discard_event();
-}
-
boost::statechart::result
PG::RecoveryState::Reset::react(const IntervalFlush&)
{
public:
TrivialEvent(NullEvt)
protected:
- TrivialEvent(FlushedEvt)
TrivialEvent(Backfilled)
TrivialEvent(LocalBackfillReserved)
public:
boost::statechart::custom_reaction< AdvMap >,
boost::statechart::custom_reaction< ActMap >,
boost::statechart::custom_reaction< NullEvt >,
- boost::statechart::custom_reaction< FlushedEvt >,
boost::statechart::custom_reaction< IntervalFlush >,
boost::statechart::transition< boost::statechart::event_base, Crashed >
> reactions;
boost::statechart::result react(const QueryState& q);
boost::statechart::result react(const AdvMap&);
boost::statechart::result react(const ActMap&);
- boost::statechart::result react(const FlushedEvt&);
boost::statechart::result react(const IntervalFlush&);
boost::statechart::result react(const boost::statechart::event_base&) {
return discard_event();
boost::statechart::custom_reaction< QueryState >,
boost::statechart::custom_reaction< AdvMap >,
boost::statechart::custom_reaction< NullEvt >,
- boost::statechart::custom_reaction< FlushedEvt >,
boost::statechart::custom_reaction< IntervalFlush >,
boost::statechart::transition< boost::statechart::event_base, Crashed >
> reactions;
boost::statechart::result react(const QueryState& q);
boost::statechart::result react(const AdvMap&);
- boost::statechart::result react(const FlushedEvt&);
boost::statechart::result react(const IntervalFlush&);
boost::statechart::result react(const boost::statechart::event_base&) {
return discard_event();
// abstract bits
+ friend class FlushState;
virtual void on_role_change() = 0;
virtual void on_pool_change() = 0;