/// <summary>
        /// Defines a parameterized subscription factory identified by the specified URI.
        /// </summary>
        /// <typeparam name="TArgs">Type of the parameter passed to the subscription factory.</typeparam>
        /// <param name="uri">URI identifying the subscription factory.</param>
        /// <param name="subscriptionFactory">Subscription factory to be defined.</param>
        /// <param name="state">Additional metadata to associate with the artifact. Implementations can interpret this value, or ignore it.</param>
        public void DefineSubscriptionFactory <TArgs>(Uri uri, IReactiveQubscriptionFactory <TArgs> subscriptionFactory, object state = null)
        {
            if (uri == null)
            {
                throw new ArgumentNullException(nameof(uri));
            }
            if (subscriptionFactory == null)
            {
                throw new ArgumentNullException(nameof(subscriptionFactory));
            }

            DefineSubscriptionFactoryCore <TArgs>(uri, subscriptionFactory, state);
        }
 /// <summary>
 /// Defines a parameterized subscription factory identified by the specified URI.
 /// </summary>
 /// <typeparam name="TArgs">Type of the parameter passed to the subscription factory.</typeparam>
 /// <param name="uri">URI identifying the subscription factory.</param>
 /// <param name="subscriptionFactory">Subscription factory to be defined.</param>
 /// <param name="state">Additional metadata to associate with the artifact. Implementations can interpret this value, or ignore it.</param>
 protected abstract void DefineSubscriptionFactoryCore <TArgs>(Uri uri, IReactiveQubscriptionFactory <TArgs> subscriptionFactory, object state = null);
Esempio n. 3
0
 internal IReactiveQubscription CreateSubscription(IReactiveQubscriptionFactory factory, Uri subscriptionUri, object state)
 {
     return(CreateSubscription(factory, Array.Empty <Expression>(), subscriptionUri, state));
 }
Esempio n. 4
0
 internal IReactiveQubscription CreateSubscription <TArgs>(IReactiveQubscriptionFactory <TArgs> factory, TArgs argument, Uri subscriptionUri, object state)
 {
     return(CreateSubscription(factory, new Expression[] { Expression.Constant(argument, typeof(TArgs)) }, subscriptionUri, state));
 }
Esempio n. 5
0
 public void DefineSubscriptionFactory <TArgs>(Uri uri, IReactiveQubscriptionFactory <TArgs> subscriptionFactory, object state)
 {
     throw new NotImplementedException();
 }
Esempio n. 6
0
        /// <summary>
        /// Defines a parameterized subscription factory identified by the specified URI.
        /// </summary>
        /// <typeparam name="TArgs">Type of the parameter passed to the subscription factory.</typeparam>
        /// <param name="uri">URI identifying the subscription factory.</param>
        /// <param name="subscriptionFactory">Subscription factory to be defined.</param>
        /// <param name="state">Additional metadata to associate with the artifact. Implementations can interpret this value, or ignore it.</param>
        protected override void DefineSubscriptionFactoryCore <TArgs>(Uri uri, IReactiveQubscriptionFactory <TArgs> subscriptionFactory, object state = null)
        {
            var expression = _expressionServices.Normalize(subscriptionFactory.Expression);

            _provider.DefineSubscriptionFactory(uri, expression, state);
        }
 /// <summary>
 /// Defines a parameterized subscription factory identified by the specified URI.
 /// </summary>
 /// <typeparam name="TArgs">Type of the parameter passed to the subscription factory.</typeparam>
 /// <param name="uri">URI identifying the subscription factory.</param>
 /// <param name="subscriptionFactory">Subscription factory to be defined.</param>
 /// <param name="state">Additional metadata to associate with the artifact. Implementations can interpret this value, or ignore it.</param>
 public void DefineSubscriptionFactory <TArgs>(Uri uri, IReactiveQubscriptionFactory <TArgs> subscriptionFactory, object state = null) => Definition.DefineSubscriptionFactory(uri, subscriptionFactory, state);