/// <summary>
        /// Adds a new send-only interface to the router.
        /// </summary>
        /// <typeparam name="T">Transport to use for this interface.</typeparam>
        /// <param name="name">Name of the interface.</param>
        /// <param name="customization">A callback for customizing the transport settings.</param>
        public SendOnlyInterfaceConfiguration <T> AddSendOnlyInterface <T>(string name, Action <TransportExtensions <T> > customization)
            where T : TransportDefinition, new()
        {
            var ifaceConfig = new SendOnlyInterfaceConfiguration <T>(name, customization, this);

            SendOnlyInterfaceFactories.Add(() => CreateSendOnlyInterface(ifaceConfig));
            return(ifaceConfig);
        }
 SendOnlyInterface CreateSendOnlyInterface <T>(SendOnlyInterfaceConfiguration <T> ifaceConfig)
     where T : TransportDefinition, new()
 {
     return(ifaceConfig.Create(Name, typeGenerator, Settings));
 }
 /// <summary>
 /// Enables message-driven storage-based publish/subscribe for a given send-only interface.
 /// </summary>
 /// <param name="interfaceConfig">Send-only interface configuration.</param>
 /// <param name="subscriptionStorage">Subscription storage.</param>
 public static void EnableMessageDrivenPublishSubscribe <T>(this SendOnlyInterfaceConfiguration <T> interfaceConfig, ISubscriptionStorage subscriptionStorage)
     where T : TransportDefinition, new()
 {
     interfaceConfig.Settings.Set("EnableMessageDrivenPubSub", true);
     interfaceConfig.Settings.Set <ISubscriptionStorage>(subscriptionStorage);
 }
 /// <summary>
 /// Disables message-driven storage-based publish/subscribe for a given send-only interface.
 /// </summary>
 /// <param name="interfaceConfig">Send-only interface configuration.</param>
 public static void DisableMessageDrivenPublishSubscribe <T>(this SendOnlyInterfaceConfiguration <T> interfaceConfig)
     where T : TransportDefinition, new()
 {
     interfaceConfig.Settings.Set("EnableMessageDrivenPubSub", false);
 }
示例#5
0
 /// <summary>
 /// Disables native publish/subscribe handling for a given send-only interface.
 /// </summary>
 public static void DisableNativePubSub <T>(this SendOnlyInterfaceConfiguration <T> interfaceConfig)
     where T : TransportDefinition, new()
 {
     interfaceConfig.Settings.Set("NativePubSubDisabled", true);
 }