using System; using System.Net; namespace Rssdp { /// /// Event arguments for the event. /// public sealed class DeviceAvailableEventArgs : EventArgs { public IPAddress RemoteIPAddress { get; set; } private readonly DiscoveredSsdpDevice _DiscoveredDevice; private readonly bool _IsNewlyDiscovered; /// /// Full constructor. /// /// A instance representing the available device. /// A boolean value indicating whether or not this device came from the cache. See for more detail. /// Thrown if the parameter is null. public DeviceAvailableEventArgs(DiscoveredSsdpDevice discoveredDevice, bool isNewlyDiscovered) { if (discoveredDevice == null) { throw new ArgumentNullException(nameof(discoveredDevice)); } _DiscoveredDevice = discoveredDevice; _IsNewlyDiscovered = isNewlyDiscovered; } /// /// Returns true if the device was discovered due to an alive notification, or a search and was not already in the cache. Returns false if the item came from the cache but matched the current search request. /// public bool IsNewlyDiscovered { get { return _IsNewlyDiscovered; } } /// /// A reference to a instance containing the discovered details and allowing access to the full device description. /// public DiscoveredSsdpDevice DiscoveredDevice { get { return _DiscoveredDevice; } } } }