File: ProducerConnectionFactory.cs
Web Access
Project: src\src\Components\Aspire.Confluent.Kafka\Aspire.Confluent.Kafka.csproj (Aspire.Confluent.Kafka)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Confluent.Kafka;
 
namespace Aspire.Confluent.Kafka;
 
internal sealed class ProducerConnectionFactory<TKey, TValue>
{
    private readonly ProducerBuilder<TKey, TValue> _producerBuilder;
    private readonly ProducerConfig _producerConfig;
 
    public ProducerConnectionFactory(ProducerBuilder<TKey, TValue> producerBuilder, ProducerConfig producerConfig)
    {
        _producerConfig = new ProducerConfig();
        foreach (var property in producerConfig)
        {
            _producerConfig.Set(property.Key, property.Value);
        }
        _producerBuilder = producerBuilder;
    }
 
    public ProducerConfig Config => _producerConfig;
 
    public IProducer<TKey, TValue> Create() => _producerBuilder.Build();
}