aboutsummaryrefslogtreecommitdiff
path: root/RSSDP/IUPnPDeviceValidator.cs
blob: 39b80742e6eed00d41b3ca14e853f17dcf5f41b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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);
	}
}