コード例 #1
0
        private static void PublisherCheck(IPublishPipelineMember p)
        {
            var token = new PublishToken(new MessageA(), new[] { new MockSubscription <MessageA>(), new MockSubscription <MessageA>() });

            p.LookAt(token);
            token.Subscriptions.OfType <MockSubscription <MessageA> >().All(s => s.Received == 1).ShouldBeTrue();
        }
コード例 #2
0
ファイル: Bus.cs プロジェクト: schifflee/MemBus
 public async Task PublishAsync(object message)
 {
     CheckDisposed();
     var subs = _subscriber.GetSubscriptionsFor(message);
     var t    = new PublishToken(message, subs);
     await _publishChainCasing.LookAtAsync(t);
 }
コード例 #3
0
        private static void pipelineSkeleton(object message, Action <IConfigurablePublishing> configuration)
        {
            var p     = new PublishChainCasing(null).Configure(configuration);
            var token = new PublishToken(message, new ISubscription[] { });

            p.LookAt(token);
        }
コード例 #4
0
ファイル: Bus.cs プロジェクト: schifflee/MemBus
        public void Publish(object message)
        {
            CheckDisposed();
            var subs = _subscriber.GetSubscriptionsFor(message);
            var t    = new PublishToken(message, subs);

            _publishChainCasing.LookAt(t);
        }
コード例 #5
0
 public void LookAt(PublishToken token)
 {
     Token = token;
     if (_cancelToken)
     {
         Token.Cancel = true;
     }
 }
コード例 #6
0
        public void publishes_message_fire_and_forget()
        {
            var p             = new ParallelNonBlockingPublisher();
            var evtBlock      = new ManualResetEvent(false);
            var evtSignal     = new ManualResetEvent(false);
            var evtSignal2    = new ManualResetEvent(false);
            var lockingSub    = new MockSubscription <MessageA>(evtBlock, evtSignal);
            var runThroughSub = new MockSubscription <MessageA>(evtSignal: evtSignal2);

            var token = new PublishToken(new MessageA(), new[] { lockingSub, runThroughSub });

            p.LookAt(token);
            lockingSub.Received.ShouldBeEqualTo(0);
            evtSignal2.WaitOne();
            runThroughSub.Received.ShouldBeEqualTo(1);
            evtBlock.Set();
            evtSignal.WaitOne();
            lockingSub.Received.ShouldBeEqualTo(1);
        }
コード例 #7
0
 public void LookAt(PublishToken token)
 {
     _bus.Publish(_message);
 }
コード例 #8
0
 public void LookAt(PublishToken token)
 {
     _svc.EnsureActionOnDispatcher(() => _seq.LookAt(token));
 }
コード例 #9
0
 public void LookAt(PublishToken token)
 {
     foreach (var s in token.Subscriptions)
         s.Push(token.Message);
 }