public void PostTimeoutAfter( CorrelatedMessage source, Guid targetId, long timeoutMs, Action <TimeoutMessage> timeoutAction) { Ensure.NotNull(timeoutAction, "timeoutAction"); var timeoutRequest = new TimeoutRequestNode( source, targetId, timeoutMs, timeoutAction); lock (_queueLock) { if (_queue.Count >= _queue.MaxSize) { _queue.Resize(_queue.MaxSize + 100); } _queue.Enqueue(timeoutRequest, timeoutMs); } if (_starving) { _msgAddEvent.Set(); } }
public TimeoutMessage( Guid targetId, long timeoutMs, CorrelatedMessage source) : base(source) { TargetId = targetId; TimeoutMs = timeoutMs; }
public TimeoutRequestNode( CorrelatedMessage source, Guid targetId, long timeoutMs, Action <TimeoutMessage> timeoutAction ) : base(timeoutMs) { Source = source; TargetId = targetId; TimeoutMs = timeoutMs; TimeoutAction = timeoutAction; }
/// <summary> /// Constructor. /// </summary> /// <param name="source">The antecedent message.</param> public CorrelationId(CorrelatedMessage source) { Id = source.CorrelationId; }
public Command(CorrelatedMessage source, CancellationToken?token = null) : this(source.CorrelationId, new SourceId(source), token) { }
/// <summary> /// Constructor. /// </summary> /// <param name="source">The antecedent message.</param> public SourceId(CorrelatedMessage source) : this(source.MsgId) { }
protected Event(CorrelatedMessage source) : base(source.CorrelationId, new SourceId(source)) { }