Beispiel #1
0
        private static Uri GetObserverUri <T>(IReliableQbserver <T> observer)
        {
            if (!TryGetUriFromKnownResource(observer, out var uri))
            {
                throw new InvalidOperationException("Cannot notify an observer without a known URI-based identity. Did you get the observer through GetObserver? Did you use DefineObserver to define the observer prior to usage?");
            }

            return(uri);
        }
Beispiel #2
0
        protected override IReliableReactiveObserver <T> GetObserverCore <T>(IReliableQbserver <T> observer)
        {
            if (observer == null)
            {
                throw new ArgumentNullException(nameof(observer));
            }

            var observerUri = GetObserverUri(observer);

            return(_provider.GetObserver <T>(observerUri));
        }
 protected override IReliableQubscription SubscribeCore(IReliableQbserver <TOutput> observer, Uri subscriptionUri, object state) => ((ReliableQueryProviderBase)Provider).Subscribe(this, observer, subscriptionUri, state);
Beispiel #4
0
 protected abstract IReliableReactiveObserver <T> GetObserverCore <T>(IReliableQbserver <T> observer);
Beispiel #5
0
 internal IReliableReactiveObserver <T> GetObserver <T>(IReliableQbserver <T> observer) => GetObserverCore(observer);
Beispiel #6
0
        internal IReliableQubscription Subscribe <T>(IReliableQbservable <T> observable, IReliableQbserver <T> observer, Uri subscriptionUri, object state)
        {
            var subscribe  = Expression.Parameter(typeof(Func <IReliableQbservable <T>, IReliableQbserver <T>, IReliableQubscription>), Constants.SubscribeUri);
            var expression = Expression.Invoke(subscribe, observable.Expression, observer.Expression);

            var normalized = _expressionServices.Normalize(expression);

            var subscription = new KnownReliableQubscription(normalized, subscriptionUri, this);

            CreateSubscription(subscription, state);

            return(subscription);
        }