Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
 public TimeoutMessage(
     Guid targetId,
     long timeoutMs,
     CorrelatedMessage source)
     : base(source)
 {
     TargetId  = targetId;
     TimeoutMs = timeoutMs;
 }
Ejemplo n.º 3
0
 public TimeoutRequestNode(
     CorrelatedMessage source,
     Guid targetId,
     long timeoutMs,
     Action <TimeoutMessage> timeoutAction
     ) : base(timeoutMs)
 {
     Source        = source;
     TargetId      = targetId;
     TimeoutMs     = timeoutMs;
     TimeoutAction = timeoutAction;
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="source">The antecedent message.</param>
 public CorrelationId(CorrelatedMessage source)
 {
     Id = source.CorrelationId;
 }
Ejemplo n.º 5
0
 public Command(CorrelatedMessage source, CancellationToken?token = null) : this(source.CorrelationId, new SourceId(source), token)
 {
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="source">The antecedent message.</param>
 public SourceId(CorrelatedMessage source)
     : this(source.MsgId)
 {
 }
Ejemplo n.º 7
0
 protected Event(CorrelatedMessage source) : base(source.CorrelationId, new SourceId(source))
 {
 }