diff options
| author | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
|---|---|---|
| committer | stefan <stefan@hegedues.at> | 2018-09-12 19:26:21 +0200 |
| commit | 48facb797ed912e4ea6b04b17d1ff190ac2daac4 (patch) | |
| tree | 8dae77a31670a888d733484cb17dd4077d5444e8 /RSSDP/SsdpRootDevice.cs | |
| parent | c32d8656382a0eacb301692e0084377fc433ae9b (diff) | |
Update to 3.5.2 and .net core 2.1
Diffstat (limited to 'RSSDP/SsdpRootDevice.cs')
| -rw-r--r-- | RSSDP/SsdpRootDevice.cs | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/RSSDP/SsdpRootDevice.cs b/RSSDP/SsdpRootDevice.cs index 5b7d0f454..6d0fcafbb 100644 --- a/RSSDP/SsdpRootDevice.cs +++ b/RSSDP/SsdpRootDevice.cs @@ -31,25 +31,6 @@ namespace Rssdp { } - /// <summary> - /// Deserialisation constructor. - /// </summary> - /// <param name="location">The url from which the device description document was retrieved.</param> - /// <param name="cacheLifetime">A <see cref="System.TimeSpan"/> representing the time maximum period of time the device description can be cached for.</param> - /// <param name="deviceDescriptionXml">The device description XML as a string.</param> - /// <exception cref="System.ArgumentNullException">Thrown if the <paramref name="deviceDescriptionXml"/> or <paramref name="location"/> arguments are null.</exception> - /// <exception cref="System.ArgumentException">Thrown if the <paramref name="deviceDescriptionXml"/> argument is empty.</exception> - public SsdpRootDevice(Uri location, TimeSpan cacheLifetime, string deviceDescriptionXml) - : base(deviceDescriptionXml) - { - if (location == null) throw new ArgumentNullException("location"); - - this.CacheLifetime = cacheLifetime; - this.Location = location; - - LoadFromDescriptionDocument(deviceDescriptionXml); - } - #endregion #region Public Properties @@ -94,82 +75,5 @@ namespace Rssdp #endregion - #region Public Methods - - /// <summary> - /// Saves the property values of this device object to an a string in the full UPnP device description XML format, including child devices and outer root node and XML document declaration. - /// </summary> - /// <returns>A string containing XML in the UPnP device description format</returns> - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times", Justification = "Dispsoing memory stream twice is 'safe' and easier to read than correct code for ensuring it is only closed once.")] - public virtual string ToDescriptionDocument() - { - if (String.IsNullOrEmpty(this.Uuid)) throw new InvalidOperationException("Must provide a UUID value."); - - //This would have been so much nicer with Xml.Linq, but that's - //not available until .NET 4.03 at the earliest, and I want to - //target 4.0 :( - using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) - { - System.Xml.XmlWriter writer = System.Xml.XmlWriter.Create(ms, new XmlWriterSettings() { Encoding = System.Text.UTF8Encoding.UTF8, Indent = true, NamespaceHandling = NamespaceHandling.OmitDuplicates }); - writer.WriteStartDocument(); - writer.WriteStartElement("root", SsdpConstants.SsdpDeviceDescriptionXmlNamespace); - - writer.WriteStartElement("specVersion"); - writer.WriteElementString("major", "1"); - writer.WriteElementString("minor", "0"); - writer.WriteEndElement(); - - if (this.UrlBase != null && this.UrlBase != this.Location) - writer.WriteElementString("URLBase", this.UrlBase.ToString()); - - WriteDeviceDescriptionXml(writer, this); - - writer.WriteEndElement(); - writer.Flush(); - - ms.Seek(0, System.IO.SeekOrigin.Begin); - using (var reader = new System.IO.StreamReader(ms)) - { - return reader.ReadToEnd(); - } - } - } - - #endregion - - #region Private Methods - - #region Deserialisation Methods - - private void LoadFromDescriptionDocument(string deviceDescriptionXml) - { - using (var ms = new System.IO.MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(deviceDescriptionXml))) - { - var reader = XmlReader.Create(ms); - while (!reader.EOF) - { - reader.Read(); - if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "root") continue; - - while (!reader.EOF) - { - reader.Read(); - - if (reader.NodeType != XmlNodeType.Element) continue; - - if (reader.LocalName == "URLBase") - { - this.UrlBase = StringToUri(reader.ReadElementContentAsString()); - break; - } - } - } - } - } - - #endregion - - #endregion - } }
\ No newline at end of file |
