public UnionGatewayService(IServiceProvider serviceProvider) { this.jT808SessionManager = serviceProvider.GetRequiredService <UnionSessionManager>(); this.jT808TcpAtomicCounterService = serviceProvider.GetRequiredService <UnionAtomicCounterServiceFactory>().Create(TransportProtocolType.Tcp); this.jT808UdpAtomicCounterService = serviceProvider.GetRequiredService <UnionAtomicCounterServiceFactory>().Create(TransportProtocolType.Udp); this.ConfigurationOptionsMonitor = serviceProvider.GetRequiredService <IOptionsMonitor <UnionConfiguration> >(); }
public UnionGatewayService( IOptionsMonitor <UnionConfiguration> configurationOptionsMonitor, UnionSessionManager jT808SessionManager, UnionAtomicCounterServiceFactory jT808AtomicCounterServiceFactory ) { this.jT808SessionManager = jT808SessionManager; this.ConfigurationOptionsMonitor = configurationOptionsMonitor; this.jT808TcpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(TransportProtocolType.Tcp); this.jT808UdpAtomicCounterService = jT808AtomicCounterServiceFactory.Create(TransportProtocolType.Udp); }
public UnionAtomicCounterService Create(TransportProtocolType type) { if (cache.TryGetValue(type, out var service)) { return(service); } else { var serviceNew = new UnionAtomicCounterService(); cache.TryAdd(type, serviceNew); return(serviceNew); } }