jellyfin/RSSDP/DeviceUnavailableEventArgs.cs

45 lines
1.9 KiB
C#
Raw Normal View History

2019-01-12 20:41:08 +00:00
using System;
2016-10-29 22:22:20 +00:00
namespace Rssdp
{
2019-01-12 20:41:08 +00:00
/// <summary>
2019-01-13 20:37:13 +00:00
/// Event arguments for the <see cref="Infrastructure.SsdpDeviceLocatorBase.DeviceUnavailable"/> event.
2019-01-12 20:41:08 +00:00
/// </summary>
public sealed class DeviceUnavailableEventArgs : EventArgs
{
private readonly DiscoveredSsdpDevice _DiscoveredDevice;
2020-06-20 06:20:33 +00:00
private readonly bool _Expired;
2019-01-12 20:41:08 +00: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 20:37:13 +00:00
/// <exception cref="ArgumentNullException">Thrown if the <paramref name="discoveredDevice"/> parameter is null.</exception>
2019-01-12 20:41:08 +00:00
public DeviceUnavailableEventArgs(DiscoveredSsdpDevice discoveredDevice, bool expired)
{
if (discoveredDevice == null) throw new ArgumentNullException(nameof(discoveredDevice));
_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 20:37:13 +00:00
/// A reference to a <see cref="DiscoveredSsdpDevice"/> instance containing the discovery details of the removed device.
2019-01-12 20:41:08 +00:00
/// </summary>
public DiscoveredSsdpDevice DiscoveredDevice
{
get { return _DiscoveredDevice; }
}
}
}