using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using CoreAgent.ProtocolClient.Context; namespace CoreAgent.ProtocolClient.BuildProtocolParser { public class ProtocolContextParser { private readonly ProtocolClientContext context; private readonly Dictionary parsers = new(); public ProtocolContextParser(ProtocolClientContext context) { this.context = context; InitializeParsers(); } private void InitializeParsers() { parsers.Add("RRC", new RRCProtocolParser(context)); parsers.Add("NAS", new NASProtocolParser(context)); parsers.Add("SIP", new SIPProtocolParser(context)); } public IGeneralProtocolParser GetParserByKey(string protocolKey) { parsers.TryGetValue(protocolKey, out var parser); return parser ?? new EmptyProtocolParser(context); } } }