aboutsummaryrefslogtreecommitdiff
path: root/RSSDP/IUPnPDeviceValidator.cs
diff options
context:
space:
mode:
Diffstat (limited to 'RSSDP/IUPnPDeviceValidator.cs')
-rw-r--r--RSSDP/IUPnPDeviceValidator.cs27
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);
+ }
+}