Exemple #1
0
        /// <summary>
        /// Registers the channel data load producer.
        /// </summary>
        /// <param name="etpSession">The ETP session.</param>
        /// <param name="container">The composition container.</param>
        /// <param name="contractName">The contract name.</param>
        /// <param name="callback">The callback.</param>
        /// <returns></returns>
        public static IDataLoadProducer RegisterChannelDataLoadProducer(this EtpSession etpSession, IContainer container, string contractName = null, Action <IDataLoadProducer> callback = null)
        {
            var handler  = container.Resolve <Energistics.Etp.v12.Protocol.ChannelDataLoad.IChannelDataLoadProducer>(contractName);
            var producer = handler as IDataLoadProducer;

            callback?.Invoke(producer);
            etpSession.Register(() => handler);

            return(producer);
        }
Exemple #2
0
 /// <summary>
 /// Resolves the discovery store handler.
 /// </summary>
 /// <param name="etpSession">The ETP session.</param>
 /// <param name="container">The composition container.</param>
 /// <param name="contractName">The contract name.</param>
 /// <param name="callback">The callback.</param>
 /// <returns>An <see cref="IProtocolHandler"/> instance.</returns>
 public static IProtocolHandler RegisterDiscoveryStore(this EtpSession etpSession, IContainer container, string contractName = null, Action <IProtocolHandler> callback = null)
 {
     if (etpSession.Adapter is Energistics.Etp.v11.Etp11Adapter)
     {
         var handler = container.Resolve <Energistics.Etp.v11.Protocol.Discovery.IDiscoveryStore>(contractName);
         callback?.Invoke(handler);
         etpSession.Register(() => handler);
         return(handler);
     }
     else
     {
         var handler = container.Resolve <Energistics.Etp.v12.Protocol.Discovery.IDiscoveryStore>(contractName);
         callback?.Invoke(handler);
         etpSession.Register(() => handler);
         return(handler);
     }
 }
Exemple #3
0
        /// <summary>
        /// Resolves the channel streaming producer handler.
        /// </summary>
        /// <param name="etpSession">The ETP session.</param>
        /// <param name="container">The composition container.</param>
        /// <param name="contractName">The contract name.</param>
        /// <param name="callback">The callback.</param>
        /// <returns>An <see cref="IStreamingProducer"/> instance.</returns>
        public static IStreamingProducer RegisterChannelStreamingProducer(this EtpSession etpSession, IContainer container, string contractName = null, Action <IStreamingProducer> callback = null)
        {
            if (etpSession.Adapter is Energistics.Etp.v11.Etp11Adapter)
            {
                var handler  = container.Resolve <Energistics.Etp.v11.Protocol.ChannelStreaming.IChannelStreamingProducer>(contractName);
                var producer = handler as IStreamingProducer;

                callback?.Invoke(producer);
                etpSession.Register(() => handler);

                return(producer);
            }
            else
            {
                var handler  = container.Resolve <Energistics.Etp.v12.Protocol.ChannelStreaming.IChannelStreamingProducer>(contractName);
                var producer = handler as IStreamingProducer;

                callback?.Invoke(producer);
                etpSession.Register(() => handler);

                return(producer);
            }
        }