diff options
Diffstat (limited to 'RSSDP/IUPnPDeviceValidator.cs')
| -rw-r--r-- | RSSDP/IUPnPDeviceValidator.cs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/RSSDP/IUPnPDeviceValidator.cs b/RSSDP/IUPnPDeviceValidator.cs new file mode 100644 index 000000000..39b80742e --- /dev/null +++ b/RSSDP/IUPnPDeviceValidator.cs @@ -0,0 +1,27 @@ +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); + } +} |
