Exemple #1
0
        private Subscription CreateSubscription(SubscriptionInfo subscriptionInfo, Func <INatsObservable <MsgOp>, IDisposable> subscriptionFactory)
        {
            var subscription = Subscription.Create(
                subscriptionInfo,
                subscriptionFactory(MsgOpStream.Where(msg => msg.SubscriptionId == subscriptionInfo.Id)),
                DisposeSubscription);

            if (!_subscriptions.TryAdd(subscription.SubscriptionInfo.Id, subscription))
            {
                throw NatsException.CouldNotCreateSubscription(subscription.SubscriptionInfo);
            }

            return(subscription);
        }
Exemple #2
0
        private Subscription CreateMsgOpSubscription(SubscriptionInfo subscriptionInfo, Func <INatsObservable <MsgOp>, IDisposable> subscriptionFactory)
        {
            var subscription = Subscription.Create(
                subscriptionInfo,
                subscriptionFactory(MsgOpStream.Where(msg => subscriptionInfo.Matches(msg.Subject))),
                info => Swallow.Everything(() => Unsub(info)));

            if (!_subscriptions.TryAdd(subscription.SubscriptionInfo.Id, subscription))
            {
                throw NatsException.CouldNotCreateSubscription(subscription.SubscriptionInfo);
            }

            return(subscription);
        }