jellyfin/RSSDP/ISsdpDevicePublisher.cs

36 lines
1.5 KiB
C#
Raw Normal View History

2016-10-30 00:22:20 +02:00
using System.Threading.Tasks;
namespace Rssdp.Infrastructure
{
2019-01-08 00:24:34 +01:00
/// <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>
2019-01-13 21:37:13 +01:00
/// <returns>An awaitable <see cref="Task"/>.</returns>
2019-01-08 00:24:34 +01:00
void AddDevice(SsdpRootDevice device);
2016-10-30 00:22:20 +02:00
2019-01-08 00:24:34 +01:00
/// <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>
2019-01-13 21:37:13 +01:00
/// <returns>An awaitable <see cref="Task"/>.</returns>
2019-01-08 00:24:34 +01:00
Task RemoveDevice(SsdpRootDevice device);
2016-10-30 00:22:20 +02:00
2019-01-08 00:24:34 +01:00
/// <summary>
/// Returns a read only list of devices being published by this instance.
/// </summary>
/// <seealso cref="SsdpDevice"/>
System.Collections.Generic.IEnumerable<SsdpRootDevice> Devices { get; }
}
2016-10-30 00:22:20 +02:00
}