/// <summary> /// Initializes a new instance of the <see cref="HeadsService"/> class. /// </summary> /// <param name="connectedHeads"><see cref="IConnectedHeads"/> for working with connected heads.</param> /// <param name="systemClock"><see cref="ISystemClock"/> for time.</param> /// <param name="logger"><see cref="ILogger"/> for logging.</param> public HeadsService( IConnectedHeads connectedHeads, ISystemClock systemClock, ILogger logger) { _connectedHeads = connectedHeads; _systemClock = systemClock; _logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="Metrics"/> class. /// </summary> /// <param name="connectedHeads">The underlying <see cref="IConnectedHeads"/>.</param> public Metrics(IConnectedHeads connectedHeads) { connectedHeads.All.CollectionChanged += (s, e) => { switch (e.Action) { case NotifyCollectionChangedAction.Add: for (var i = 0; i < e.NewItems?.Count; i++) { _headConnects.Inc(); } break; case NotifyCollectionChangedAction.Remove: for (var i = 0; i < e.OldItems?.Count; i++) { _headConnects.Inc(); } break; } _connectedHeads.Set(connectedHeads.All.Count); }; }
/// <summary> /// Initializes a new instance of the <see cref="ClientFor{T}"/> class. /// </summary> /// <param name="connectedHeads"><see cref="IConnectedHeads"/> to use for maintaining connection state.</param> public ClientFor(IConnectedHeads connectedHeads) { _connectedHeads = connectedHeads; }
/// <summary> /// Initializes a new instance of the <see cref="HeadsService"/> class. /// </summary> /// <param name="connectedHeads">The <see cref="IConnectedHeads"/>.</param> public HeadsService(IConnectedHeads connectedHeads) { _connectedHeads = connectedHeads; }
/// <summary> /// Initializes a new instance of the <see cref="BootProcedure"/> class. /// </summary> /// <param name="connectedHeads"><see cref="IConnectedHeads"/>.</param> public BootProcedure(IConnectedHeads connectedHeads) { _connectedHeads = connectedHeads; }