jellyfin/RSSDP/IUPnPDeviceValidator.cs
2016-10-29 18:22:20 -04:00

28 lines
1.1 KiB
C#

using System;
namespace Rssdp.Infrastructure
{
/// <summary>
/// Interface for components that check an <see cref="SsdpDevice"/> object's properties meet the UPnP specification for a particular version.
/// </summary>
public interface IUpnpDeviceValidator
{
/// <summary>
/// Returns an enumerable set of strings, each one being a description of an invalid property on the specified root device.
/// </summary>
/// <param name="device">The <see cref="SsdpRootDevice"/> to validate.</param>
System.Collections.Generic.IEnumerable<string> GetValidationErrors(SsdpRootDevice device);
/// <summary>
/// Returns an enumerable set of strings, each one being a description of an invalid property on the specified device.
/// </summary>
/// <param name="device">The <see cref="SsdpDevice"/> to validate.</param>
System.Collections.Generic.IEnumerable<string> GetValidationErrors(SsdpDevice device);
/// <summary>
/// Validates the specified device and throws an <see cref="System.InvalidOperationException"/> if there are any validation errors.
/// </summary>
void ThrowIfDeviceInvalid(SsdpDevice device);
}
}