コード例 #1
0
 public void Queue(IPayloadProvider queueData)
 {
     _enqueuedPayloadQueues.Enqueue(queueData);
     if (_currentPayloadQueue.IsFinished() && _enqueuedPayloadQueues.Count == 1)
     {
         ProcessNext();
     }
 }
コード例 #2
0
 private void ProcessNext()
 {
     Message.Unsubscribe(this);
     while (_currentPayloadQueue.IsFinished() && _enqueuedPayloadQueues.Count > 0)
     {
         _currentPayloadQueue = _enqueuedPayloadQueues.Dequeue();
     }
     if (_currentPayloadQueue.IsFinished())
     {
         Message.Publish(new SequenceFinished());
     }
     else
     {
         var payloadData = _currentPayloadQueue.GetNext();
         Message.Subscribe(new MessageSubscription(payloadData.Finished, _ => ProcessNext(), this));
         Message.Publish(payloadData.Payload);
     }
 }
コード例 #3
0
 public AccessTokenProvider(IHeaderProvider headerProvider, IPayloadProvider payloadProvider)
 {
     this._headerProvider  = headerProvider;
     this._payloadProvider = payloadProvider;
 }
コード例 #4
0
 public static void Queue(IPayloadProvider payloadProvider) => Msgs.Queue(payloadProvider);