| 12345678910111213141516171819202122232425262728293031323334353637 | using System;using System.Threading.Tasks;namespace Rssdp.Infrastructure{	/// <summary>	/// Interface for components that publish the existence of SSDP devices.	/// </summary>	/// <remarks>	/// <para>Publishing a device includes sending notifications (alive and byebye) as well as responding to search requests when appropriate.</para>	/// </remarks>	/// <seealso cref="SsdpRootDevice"/>	/// <seealso cref="ISsdpDeviceLocator"/>	public interface ISsdpDevicePublisher	{		/// <summary>		/// Adds a device (and it's children) to the list of devices being published by this server, making them discoverable to SSDP clients.		/// </summary>		/// <param name="device">The <see cref="SsdpRootDevice"/> instance to add.</param>		/// <returns>An awaitable <see cref="System.Threading.Tasks.Task"/>.</returns>		void AddDevice(SsdpRootDevice device);		/// <summary>		/// Removes a device (and it's children) from the list of devices being published by this server, making them undiscoverable.		/// </summary>		/// <param name="device">The <see cref="SsdpRootDevice"/> instance to add.</param>		/// <returns>An awaitable <see cref="System.Threading.Tasks.Task"/>.</returns>		Task RemoveDevice(SsdpRootDevice device);		/// <summary>		/// Returns a read only list of devices being published by this instance.		/// </summary>		/// <seealso cref="SsdpDevice"/>		System.Collections.Generic.IEnumerable<SsdpRootDevice> Devices { get; }			}}
 |