public ConnectionManager( ICloudConnectionProvider cloudConnectionProvider, ICredentialsCache credentialsCache, IIdentityProvider identityProvider, int maxClients = DefaultMaxClients) { this.cloudConnectionProvider = Preconditions.CheckNotNull(cloudConnectionProvider, nameof(cloudConnectionProvider)); this.maxClients = Preconditions.CheckRange(maxClients, 1, nameof(maxClients)); this.credentialsCache = Preconditions.CheckNotNull(credentialsCache, nameof(credentialsCache)); this.identityProvider = Preconditions.CheckNotNull(identityProvider, nameof(identityProvider)); Util.Metrics.MetricsV0.RegisterGaugeCallback(() => MetricsV0.SetConnectedClientCountGauge(this)); }
public ConnectionManager( ICloudConnectionProvider cloudConnectionProvider, ICredentialsCache credentialsCache, IIdentityProvider identityProvider, IDeviceConnectivityManager connectivityManager, int maxClients = DefaultMaxClients, bool closeCloudConnectionOnDeviceDisconnect = true) { this.cloudConnectionProvider = Preconditions.CheckNotNull(cloudConnectionProvider, nameof(cloudConnectionProvider)); this.maxClients = Preconditions.CheckRange(maxClients, 1, nameof(maxClients)); this.credentialsCache = Preconditions.CheckNotNull(credentialsCache, nameof(credentialsCache)); this.identityProvider = Preconditions.CheckNotNull(identityProvider, nameof(identityProvider)); this.connectivityManager = Preconditions.CheckNotNull(connectivityManager, nameof(connectivityManager)); this.connectivityManager.DeviceDisconnected += (o, args) => this.HandleDeviceCloudConnectionDisconnected(); Util.Metrics.MetricsV0.RegisterGaugeCallback(() => MetricsV0.SetConnectedClientCountGauge(this)); this.closeCloudConnectionOnDeviceDisconnect = closeCloudConnectionOnDeviceDisconnect; }