public virtual void OnReplayEvent(IReplayEvent replayEvent) { var messageReplayed = replayEvent as MessageReplayed; if (messageReplayed != null) { OnMessageReplayed(messageReplayed); return; } var replayPhaseEnded = replayEvent as ReplayPhaseEnded; if (replayPhaseEnded != null) { var safetyPhase = new SafetyPhase(Transport); Transport.SetPhase(safetyPhase); Transport.StartReceptionThread(); return; } var safetyPhaseEnded = replayEvent as SafetyPhaseEnded; if (safetyPhaseEnded != null) { Transport._pendingReceives.CompleteAdding(); _endOfProcessingSignal.WaitOne(); var normalPhase = new NormalPhase(Transport); Transport.SetPhase(normalPhase); Transport._receivedMessagesIds.Clear(); return; } }
public virtual void OnReplayEvent(IReplayEvent replayEvent) { var messageReplayed = replayEvent as MessageReplayed; if (messageReplayed != null) { // the message was persisted because it comes from the persistence // but previous Zebus versions do not specify the WasPersisted field // => force WasPersisted to support previous Zebus version and make sure the message will be acked messageReplayed.Message.WasPersisted = true; OnMessageReplayed(messageReplayed); return; } var replayPhaseEnded = replayEvent as ReplayPhaseEnded; if (replayPhaseEnded != null) { var safetyPhase = new SafetyPhase(Transport); Transport.SetPhase(safetyPhase); Transport.StartReceptionThread(); return; } var safetyPhaseEnded = replayEvent as SafetyPhaseEnded; if (safetyPhaseEnded != null) { Transport._pendingReceives.CompleteAdding(); _endOfProcessingSignal.WaitOne(); var normalPhase = new NormalPhase(Transport); Transport.SetPhase(normalPhase); Transport._receivedMessagesIds.Clear(); return; } }