using CoreAgent.Domain.Interfaces.Network; using CoreAgent.Domain.Interfaces.System.Command; using CoreAgent.Domain.Models.System; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; namespace CoreAgent.Infrastructure.Handlers.API; /// /// RAN API 命令处理器工厂实现 /// 负责创建和管理RAN API命令处理器实例 /// public class RanAPICommandHandlerFactory : IRanAPICommandHandlerFactory { private readonly ILogger _logger; private readonly ISystemCommandExecutor _commandExecutor; private readonly IOptions _appSettings; private readonly ICellularNetworkContext _context; public RanAPICommandHandlerFactory( ILogger logger, ISystemCommandExecutor commandExecutor, IOptions appSettings, ICellularNetworkContext context) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _commandExecutor = commandExecutor ?? throw new ArgumentNullException(nameof(commandExecutor)); _appSettings = appSettings ?? throw new ArgumentNullException(nameof(appSettings)); _context = context ?? throw new ArgumentNullException(nameof(context)); } /// /// 创建RAN API命令处理器 /// /// RAN API命令处理器实例 public IRanAPICommandHandler CreateHandler() { return new RanAPICommandHandler(_logger, _commandExecutor, _appSettings, _context); } /// /// 创建RAN增益控制处理器 /// /// RAN增益控制处理器实例 public IRanGainControlHandler CreateGainControlHandler() { return new RanAPICommandHandler(_logger, _commandExecutor, _appSettings, _context); } }