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