/// <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); }
/// <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); } }
/// <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); } }