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