You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.6 KiB
40 lines
1.6 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using CoreAgent.ProtocolClient.Context.UeStateManager;
|
|
using CoreAgent.ProtocolClient.Enums;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace CoreAgent.ProtocolClient.Context
|
|
{
|
|
public class ProtocolClientContext
|
|
{
|
|
// 常量和正则表达式已迁移至 ProtocolLogPatterns 静态类,便于统一管理和调用。
|
|
|
|
public readonly ILoggerFactory _loggerFactory;
|
|
|
|
public ProtocolBasicInfo BasicInfo { get; set; } = new();
|
|
public ProtocolFeatureFlags FeatureFlags { get; set; } = new();
|
|
public ProtocolLogContext LogContext { get; set; }
|
|
public UeIdentifierManager UeIdentifier { get; set; }
|
|
public CellParameterManager CellParameterManager { get; set; } = new();
|
|
public ClientState State { get; set; } = ClientState.Stop;
|
|
|
|
public ProtocolClientContext(ILoggerFactory loggerFactory)
|
|
{
|
|
_loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
|
|
|
|
// 使用ILoggerFactory为各个组件创建正确的Logger
|
|
var ueIdentifierLogger = _loggerFactory.CreateLogger<UeIdentifierManager>();
|
|
var logContextLogger = _loggerFactory.CreateLogger<ProtocolLogContext>();
|
|
|
|
// 先创建UeIdentifierManager
|
|
UeIdentifier = new UeIdentifierManager(ueIdentifierLogger);
|
|
|
|
// 然后创建ProtocolLogContext,传入this引用
|
|
LogContext = new ProtocolLogContext(logContextLogger, this);
|
|
}
|
|
}
|
|
}
|
|
|