using Microsoft.Extensions.DependencyInjection; using StellaOps.Router.Common.Abstractions; namespace StellaOps.Router.Transport.Udp; /// /// Extension methods for registering UDP transport services. /// public static class ServiceCollectionExtensions { /// /// Adds UDP transport server services to the service collection. /// /// The service collection. /// Optional configuration action. /// The service collection. public static IServiceCollection AddUdpTransportServer( this IServiceCollection services, Action? configure = null) { if (configure is not null) { services.Configure(configure); } services.AddSingleton(); services.AddSingleton(sp => sp.GetRequiredService()); return services; } /// /// Adds UDP transport client services to the service collection. /// /// The service collection. /// Optional configuration action. /// The service collection. public static IServiceCollection AddUdpTransportClient( this IServiceCollection services, Action? configure = null) { if (configure is not null) { services.Configure(configure); } services.AddSingleton(); services.AddSingleton(sp => sp.GetRequiredService()); services.AddSingleton(sp => sp.GetRequiredService()); return services; } }