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)
                {
                    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;
                }
            }
示例#3
0
            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;
                }
            }