jellyfin/RSSDP/DeviceUnavailableEventArgs.cs

48 lines
1.9 KiB
C#
Raw Normal View History

2019-01-12 13:41:08 -07:00
using System;
2016-10-29 15:22:20 -07:00
namespace Rssdp
{
2019-01-12 13:41:08 -07:00
/// <summary>
2019-01-13 13:37:13 -07:00
/// Event arguments for the <see cref="Infrastructure.SsdpDeviceLocatorBase.DeviceUnavailable"/> event.
2019-01-12 13:41:08 -07:00
/// </summary>
public sealed class DeviceUnavailableEventArgs : EventArgs
{
private readonly DiscoveredSsdpDevice _DiscoveredDevice;
2020-06-19 23:20:33 -07:00
private readonly bool _Expired;
2019-01-12 13:41:08 -07:00
/// <summary>
/// Full constructor.
/// </summary>
/// <param name="discoveredDevice">A <see cref="DiscoveredSsdpDevice"/> instance representing the device that has become unavailable.</param>
/// <param name="expired">A boolean value indicating whether this device is unavailable because it expired, or because it explicitly sent a byebye notification.. See <see cref="Expired"/> for more detail.</param>
2019-01-13 13:37:13 -07:00
/// <exception cref="ArgumentNullException">Thrown if the <paramref name="discoveredDevice"/> parameter is null.</exception>
2019-01-12 13:41:08 -07:00
public DeviceUnavailableEventArgs(DiscoveredSsdpDevice discoveredDevice, bool expired)
{
2020-06-20 01:35:29 -07:00
if (discoveredDevice == null)
{
throw new ArgumentNullException(nameof(discoveredDevice));
}
2019-01-12 13:41:08 -07:00
_DiscoveredDevice = discoveredDevice;
_Expired = expired;
}
/// <summary>
/// Returns true if the device is considered unavailable because it's cached information expired before a new alive notification or search result was received. Returns false if the device is unavailable because it sent an explicit notification of it's unavailability.
/// </summary>
public bool Expired
{
get { return _Expired; }
}
/// <summary>
2019-01-13 13:37:13 -07:00
/// A reference to a <see cref="DiscoveredSsdpDevice"/> instance containing the discovery details of the removed device.
2019-01-12 13:41:08 -07:00
/// </summary>
public DiscoveredSsdpDevice DiscoveredDevice
{
get { return _DiscoveredDevice; }
}
}
}