public ITopicClient Create(TopicOptions options) { var clientMock = new TopicClientMock(options.TopicName); _registeredClients.Add(clientMock); return(clientMock.Client); }
public FileTopicFactory(TopicFactoryOptions options) { directoryPath = options.DirectoryPath; topicOptions = options.TopicOptions; persistentStorageFileLengthThreshold = options.PersistentStorageFileLengthThreshold; subscriptionPointersStorageFileLengthThreshold = options.SubscriptionPointersStorageFileLengthThreshold; }
public TopicWrapper( TopicOptions options, ServiceBusOptions parentOptions, IServiceProvider provider) : base(parentOptions, provider, options.TopicName) { _options = options; }
private void BuildAndRegisterTopic(TopicOptions options, ServiceBusOptions parentOptions) { var topic = new TopicWrapper(options, parentOptions, _provider); topic.Initialize(); _registry.Register(topic); }
public TopicStream(string key, TopicOptions options) { this.Key = key; this.stream = !options.Capacity.HasValue ? Channel.CreateUnbounded <Message>() : Channel.CreateBounded <Message>(options.Capacity.Value); }
public ITopicClient Create(TopicOptions options) { if (options.Connection != null) { return(new TopicClient(options.Connection, options.TopicName, options.RetryPolicy)); } if (options.ConnectionStringBuilder != null) { return(new TopicClient(options.ConnectionStringBuilder, options.RetryPolicy)); } return(new TopicClient(options.ConnectionString, options.TopicName, options.RetryPolicy)); }
public static void ConfigureServices(HostBuilderContext hostBuilder, IServiceCollection services) { services.AddScoped <IMain, Main>(); var configuration = hostBuilder.Configuration; services.AddAzureServiceBus( ServiceBusNames.QueuesOnly, builder => { var bagOptions = new QueueOptions(); configuration.Bind($"AzureServiceBus:{ServiceBusNames.QueuesOnly}", bagOptions); builder.AddQueue <BagMessage>(bagOptions.Name); builder.AddConsumerHandler <BagMessage, BagMessageHandler>(bagOptions.Name); // automatically register consumers to be listening to the service bus. builder.RegisterConsumers(); }); services.AddAzureServiceBus( ServiceBusNames.TopicSubscriptions, builder => { var dynOptions = new TopicOptions(); configuration.Bind($"AzureServiceBus:{ServiceBusNames.TopicSubscriptions}", dynOptions); builder.AddTopic <DynamicMessage>(dynOptions.Name, dynOptions.SubscriptionName); // betbus, webhook-topic, create-order builder.AddConsumerHandler <DynamicMessageHandler>(dynOptions.MessageName, dynOptions.Name, dynOptions.SubscriptionName); // automatically register consumers to be listening to the service bus. builder.RegisterConsumers(); }); services.AddScoped <ProducerService>(); services.AddScoped <ConsumerService>(); }
internal Topic(string name, IPersistentStorage persistentStorage, ISubscriptionsConfigurationStorage subscriptionsConfigurationStorage, ISubscriptionPointersStorage subscriptionPointersStorage, TopicOptions topicOptions) { this.name = name; this.persistentStorage = persistentStorage; this.subscriptionsConfigurationStorage = subscriptionsConfigurationStorage; this.subscriptionPointersStorage = subscriptionPointersStorage; persistenceIntervalMilliseconds = topicOptions.PersistenceIntervalMilliseconds; persistenceMaxFails = topicOptions.PersistenceMaxFails; cleanupMaxFails = topicOptions.CleanupMaxFails; subscriptionPointersFlushMaxFails = topicOptions.SubscriptionPointersFlushMaxFails; dataArrayOptions = new InfiniteArrayOptions(topicOptions.DataArrayOptions); writers = new HashSet <TopicWriter>(); subscriptions = new Dictionary <string, Subscription>(); cancellationTokenSource = new CancellationTokenSource(); lastFreeToId = 1; stopping = false; persistenceFails = 0; cleanupFails = 0; subscriptionPointersFlushFails = 0; }