internal JoinDeviceLoader(IoTHubDeviceInfo ioTHubDevice, ILoRaDeviceFactory deviceFactory) { this.ioTHubDevice = ioTHubDevice; this.deviceFactory = deviceFactory; this.canCache = true; this.loading = this.LoadAsync(); }
/// <summary> /// Constructor should be used for test code only. /// </summary> internal LoRaDeviceRegistry(NetworkServerConfiguration configuration, IMemoryCache cache, LoRaDeviceAPIServiceBase loRaDeviceAPIService, ILoRaDeviceFactory deviceFactory, LoRaDeviceCache deviceCache) : this(configuration, cache, loRaDeviceAPIService, deviceFactory, deviceCache, NullLoggerFactory.Instance, NullLogger <LoRaDeviceRegistry> .Instance) { }
internal JoinDeviceLoader(IoTHubDeviceInfo ioTHubDevice, ILoRaDeviceFactory deviceFactory, LoRaDeviceCache deviceCache, ILogger <JoinDeviceLoader> logger) { this.ioTHubDevice = ioTHubDevice; this.deviceFactory = deviceFactory; this.deviceCache = deviceCache; this.logger = logger; this.canCache = true; }
public BasicsStationConfigurationService(LoRaDeviceAPIServiceBase loRaDeviceApiService, ILoRaDeviceFactory loRaDeviceFactory, IMemoryCache cache, ILogger <BasicsStationConfigurationService> logger) { this.loRaDeviceApiService = loRaDeviceApiService; this.loRaDeviceFactory = loRaDeviceFactory; this.cache = cache; this.logger = logger; }
public LoRaDeviceRegistry( NetworkServerConfiguration configuration, IMemoryCache cache, LoRaDeviceAPIServiceBase loRaDeviceAPIService, ILoRaDeviceFactory deviceFactory) { this.configuration = configuration; this.resetCacheToken = new CancellationTokenSource(); this.cache = cache; this.loRaDeviceAPIService = loRaDeviceAPIService; this.deviceFactory = deviceFactory; this.initializers = new HashSet <ILoRaDeviceInitializer>(); }
public LoRaDeviceRegistry( NetworkServerConfiguration configuration, IMemoryCache cache, LoRaDeviceAPIServiceBase loRaDeviceAPIService, ILoRaDeviceFactory deviceFactory) { this.configuration = configuration; this.resetCacheToken = new CancellationTokenSource(); this.resetCacheChangeToken = new CancellationChangeToken(this.resetCacheToken.Token); this.cache = cache; this.loRaDeviceAPIService = loRaDeviceAPIService; this.deviceFactory = deviceFactory; this.initializers = new HashSet <ILoRaDeviceInitializer>(); this.DevAddrReloadInterval = TimeSpan.FromSeconds(30); this.getOrCreateLoadingDevicesRequestQueueLock = new object(); this.getOrCreateJoinDeviceLoaderLock = new object(); this.devEUIToLoRaDeviceDictionaryLock = new object(); }
internal DeviceLoaderSynchronizer( DevAddr devAddr, LoRaDeviceAPIServiceBase loRaDeviceAPIService, ILoRaDeviceFactory deviceFactory, NetworkServerConfiguration configuration, LoRaDeviceCache deviceCache, HashSet <ILoRaDeviceInitializer> initializers, ILogger <DeviceLoaderSynchronizer> logger) { this.loRaDeviceAPIService = loRaDeviceAPIService; this.deviceFactory = deviceFactory; this.configuration = configuration; this.devAddr = devAddr; this.loraDeviceCache = deviceCache; this.initializers = initializers; this.logger = logger; this.state = LoaderState.QueryingDevices; this.queueLock = new object(); this.queuedRequests = new List <LoRaRequest>(); }
public LoRaDeviceRegistry( NetworkServerConfiguration configuration, IMemoryCache cache, LoRaDeviceAPIServiceBase loRaDeviceAPIService, ILoRaDeviceFactory deviceFactory, LoRaDeviceCache deviceCache, ILoggerFactory loggerFactory, ILogger <LoRaDeviceRegistry> logger) { this.configuration = configuration; this.cache = cache; this.loRaDeviceAPIService = loRaDeviceAPIService; this.deviceFactory = deviceFactory; this.loggerFactory = loggerFactory; this.logger = logger; this.initializers = new HashSet <ILoRaDeviceInitializer>(); DevAddrReloadInterval = TimeSpan.FromSeconds(30); this.getOrCreateLoadingDevicesRequestQueueLock = new object(); this.getOrCreateJoinDeviceLoaderLock = new object(); this.deviceCache = deviceCache; }
internal DeviceLoaderSynchronizer( string devAddr, LoRaDeviceAPIServiceBase loRaDeviceAPIService, ILoRaDeviceFactory deviceFactory, DevEUIToLoRaDeviceDictionary destinationDictionary, HashSet <ILoRaDeviceInitializer> initializers, NetworkServerConfiguration configuration, Action <Task, DeviceLoaderSynchronizer> continuationAction, Action <LoRaDevice> registerDeviceAction) { this.loRaDeviceAPIService = loRaDeviceAPIService; this.deviceFactory = deviceFactory; this.devAddr = devAddr; this.existingDevices = destinationDictionary; this.initializers = initializers; this.configuration = configuration; this.registerDeviceAction = registerDeviceAction; this.state = LoaderState.QueryingDevices; this.loadingDevicesFailed = false; this.queueLock = new object(); this.queuedRequests = new List <LoRaRequest>(); this.loading = Task.Run(() => this.Load().ContinueWith((t) => continuationAction(t, this), TaskContinuationOptions.ExecuteSynchronously)); }