From 16fa7f516a484e9f21fac34262214b3d9d761823 Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Mon, 16 Feb 2009 02:25:44 +0000 Subject: Converted to Linux newlines. --- OpenSim/Grid/AssetInventoryServer/Utils.cs | 2068 ++++++++++++++-------------- 1 file changed, 1034 insertions(+), 1034 deletions(-) (limited to 'OpenSim/Grid/AssetInventoryServer/Utils.cs') diff --git a/OpenSim/Grid/AssetInventoryServer/Utils.cs b/OpenSim/Grid/AssetInventoryServer/Utils.cs index a81a0ba..e1b62a4 100644 --- a/OpenSim/Grid/AssetInventoryServer/Utils.cs +++ b/OpenSim/Grid/AssetInventoryServer/Utils.cs @@ -1,1034 +1,1034 @@ -/* - * Copyright (c) 2008 Intel Corporation - * All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * -- Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * -- Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * -- Neither the name of the Intel Corporation nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections.Specialized; -using System.Globalization; -using System.Net; -using System.Xml; -using System.Xml.Serialization; -using OpenMetaverse; -using OpenMetaverse.StructuredData; -using HttpServer; - -namespace OpenSim.Grid.AssetInventoryServer -{ - public static class Utils - { - public static UUID GetAuthToken(IHttpRequest request) - { - UUID authToken = UUID.Zero; - - string[] authHeader = request.Headers.GetValues("Authorization"); - if (authHeader != null && authHeader.Length == 1) - { - // Example header: - // Authorization: OpenGrid 65fda0b5-4446-42f5-b828-aaf644293646 - string[] authHeaderParts = authHeader[0].Split(' '); - if (authHeaderParts.Length == 2 && authHeaderParts[0] == "OpenGrid") - UUID.TryParse(authHeaderParts[1], out authToken); - } - - if (authToken == UUID.Zero && request.Cookies != null) - { - // Check for an authToken cookie to make logins browser-compatible - RequestCookie authCookie = request.Cookies["authToken"]; - if (authCookie != null) - UUID.TryParse(authCookie.Value, out authToken); - } - - return authToken; - } - - public static Uri GetOpenSimUri(UUID avatarID) - { - return new Uri("http://opensim/" + avatarID.ToString()); - } - - public static bool TryGetOpenSimUUID(Uri avatarUri, out UUID avatarID) - { - string[] parts = avatarUri.Segments; - return UUID.TryParse(parts[parts.Length - 1], out avatarID); - } - - #region SL / file extension / content-type conversions - - public static string SLAssetTypeToContentType(int assetType) - { - switch (assetType) - { - case 0: - return "image/jp2"; - case 1: - return "application/ogg"; - case 2: - return "application/x-metaverse-callingcard"; - case 3: - return "application/x-metaverse-landmark"; - case 5: - return "application/x-metaverse-clothing"; - case 6: - return "application/x-metaverse-primitive"; - case 7: - return "application/x-metaverse-notecard"; - case 8: - return "application/x-metaverse-folder"; - case 10: - return "application/x-metaverse-lsl"; - case 11: - return "application/x-metaverse-lso"; - case 12: - return "image/tga"; - case 13: - return "application/x-metaverse-bodypart"; - case 17: - return "audio/x-wav"; - case 19: - return "image/jpeg"; - case 20: - return "application/x-metaverse-animation"; - case 21: - return "application/x-metaverse-gesture"; - case 22: - return "application/x-metaverse-simstate"; - default: - return "application/octet-stream"; - } - } - - public static int ContentTypeToSLAssetType(string contentType) - { - switch (contentType) - { - case "image/jp2": - return 0; - case "application/ogg": - return 1; - case "application/x-metaverse-callingcard": - return 2; - case "application/x-metaverse-landmark": - return 3; - case "application/x-metaverse-clothing": - return 5; - case "application/x-metaverse-primitive": - return 6; - case "application/x-metaverse-notecard": - return 7; - case "application/x-metaverse-lsl": - return 10; - case "application/x-metaverse-lso": - return 11; - case "image/tga": - return 12; - case "application/x-metaverse-bodypart": - return 13; - case "audio/x-wav": - return 17; - case "image/jpeg": - return 19; - case "application/x-metaverse-animation": - return 20; - case "application/x-metaverse-gesture": - return 21; - case "application/x-metaverse-simstate": - return 22; - default: - return -1; - } - } - - public static string ContentTypeToExtension(string contentType) - { - switch (contentType) - { - case "image/jp2": - return "texture"; - case "application/ogg": - return "ogg"; - case "application/x-metaverse-callingcard": - return "callingcard"; - case "application/x-metaverse-landmark": - return "landmark"; - case "application/x-metaverse-clothing": - return "clothing"; - case "application/x-metaverse-primitive": - return "primitive"; - case "application/x-metaverse-notecard": - return "notecard"; - case "application/x-metaverse-lsl": - return "lsl"; - case "application/x-metaverse-lso": - return "lso"; - case "image/tga": - return "tga"; - case "application/x-metaverse-bodypart": - return "bodypart"; - case "audio/x-wav": - return "wav"; - case "image/jpeg": - return "jpg"; - case "application/x-metaverse-animation": - return "animation"; - case "application/x-metaverse-gesture": - return "gesture"; - case "application/x-metaverse-simstate": - return "simstate"; - default: - return "bin"; - } - } - - public static string ExtensionToContentType(string extension) - { - switch (extension) - { - case "texture": - case "jp2": - case "j2c": - return "image/jp2"; - case "sound": - case "ogg": - return "application/ogg"; - case "callingcard": - return "application/x-metaverse-callingcard"; - case "landmark": - return "application/x-metaverse-landmark"; - case "clothing": - return "application/x-metaverse-clothing"; - case "primitive": - return "application/x-metaverse-primitive"; - case "notecard": - return "application/x-metaverse-notecard"; - case "lsl": - return "application/x-metaverse-lsl"; - case "lso": - return "application/x-metaverse-lso"; - case "tga": - return "image/tga"; - case "bodypart": - return "application/x-metaverse-bodypart"; - case "wav": - return "audio/x-wav"; - case "jpg": - case "jpeg": - return "image/jpeg"; - case "animation": - return "application/x-metaverse-animation"; - case "gesture": - return "application/x-metaverse-gesture"; - case "simstate": - return "application/x-metaverse-simstate"; - case "txt": - return "text/plain"; - case "xml": - return "application/xml"; - default: - return "application/octet-stream"; - } - } - - #endregion SL / file extension / content-type conversions - - #region XML Serialization - - public class GeneratedReader : XmlSerializationReader - { - public object ReadRoot_InventoryFolderBase() - { - Reader.MoveToContent(); - if (Reader.LocalName != "InventoryFolderBase" || Reader.NamespaceURI != "") - throw CreateUnknownNodeException(); - return ReadObject_InventoryFolder(true, true); - } - - public object ReadRoot_InventoryItemBase() - { - Reader.MoveToContent(); - if (Reader.LocalName != "InventoryItemBase" || Reader.NamespaceURI != "") - throw CreateUnknownNodeException(); - return ReadObject_InventoryItem(true, true); - } - - public object ReadRoot_InventoryCollection() - { - Reader.MoveToContent(); - if (Reader.LocalName != "InventoryCollection" || Reader.NamespaceURI != "") - throw CreateUnknownNodeException(); - return ReadObject_InventoryCollection(true, true); - } - - public InventoryFolder ReadObject_InventoryFolder(bool isNullable, bool checkType) - { - InventoryFolder ob = null; - if (isNullable && ReadNull()) return null; - - if (checkType) - { - System.Xml.XmlQualifiedName t = GetXsiType(); - if (t == null) - { } - else if (t.Name != "InventoryFolderBase" || t.Namespace != "") - throw CreateUnknownTypeException(t); - } - - ob = (InventoryFolder)Activator.CreateInstance(typeof(InventoryFolder), true); - - Reader.MoveToElement(); - - while (Reader.MoveToNextAttribute()) - { - if (IsXmlnsAttribute(Reader.Name)) - { - } - else - { - UnknownNode(ob); - } - } - - Reader.MoveToElement(); - Reader.MoveToElement(); - if (Reader.IsEmptyElement) - { - Reader.Skip(); - return ob; - } - - Reader.ReadStartElement(); - Reader.MoveToContent(); - - bool b0 = false, b1 = false, b2 = false, b3 = false, b4 = false, b5 = false; - - while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) - { - if (Reader.NodeType == System.Xml.XmlNodeType.Element) - { - if (Reader.LocalName == "Owner" && Reader.NamespaceURI == "" && !b1) - { - b1 = true; - ob.@Owner = ReadObject_UUID(false, true); - } - else if (Reader.LocalName == "Version" && Reader.NamespaceURI == "" && !b5) - { - b5 = true; - string s6 = Reader.ReadElementString(); - ob.@Version = UInt16.Parse(s6, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "ID" && Reader.NamespaceURI == "" && !b3) - { - b3 = true; - ob.@ID = ReadObject_UUID(false, true); - } - else if (Reader.LocalName == "Type" && Reader.NamespaceURI == "" && !b4) - { - b4 = true; - string s7 = Reader.ReadElementString(); - ob.@Type = Int16.Parse(s7, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "Name" && Reader.NamespaceURI == "" && !b0) - { - b0 = true; - string s8 = Reader.ReadElementString(); - ob.@Name = s8; - } - else if (Reader.LocalName == "ParentID" && Reader.NamespaceURI == "" && !b2) - { - b2 = true; - ob.@ParentID = ReadObject_UUID(false, true); - } - else - { - UnknownNode(ob); - } - } - else - UnknownNode(ob); - - Reader.MoveToContent(); - } - - ReadEndElement(); - - return ob; - } - - public InventoryItem ReadObject_InventoryItem(bool isNullable, bool checkType) - { - InventoryItem ob = null; - if (isNullable && ReadNull()) return null; - - if (checkType) - { - System.Xml.XmlQualifiedName t = GetXsiType(); - if (t == null) - { } - else if (t.Name != "InventoryItemBase" || t.Namespace != "") - throw CreateUnknownTypeException(t); - } - - ob = (InventoryItem)Activator.CreateInstance(typeof(InventoryItem), true); - - Reader.MoveToElement(); - - while (Reader.MoveToNextAttribute()) - { - if (IsXmlnsAttribute(Reader.Name)) - { - } - else - { - UnknownNode(ob); - } - } - - Reader.MoveToElement(); - Reader.MoveToElement(); - if (Reader.IsEmptyElement) - { - Reader.Skip(); - return ob; - } - - Reader.ReadStartElement(); - Reader.MoveToContent(); - - bool b9 = false, b10 = false, b11 = false, b12 = false, b13 = false, b14 = false, b15 = false, b16 = false, b17 = false, b18 = false, b19 = false, b20 = false, b21 = false, b22 = false, b23 = false, b24 = false, b25 = false, b26 = false, b27 = false, b28 = false; - - while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) - { - if (Reader.NodeType == System.Xml.XmlNodeType.Element) - { - if (Reader.LocalName == "GroupPermissions" && Reader.NamespaceURI == "" && !b20) - { - b20 = true; - string s29 = Reader.ReadElementString(); - ob.@GroupPermissions = UInt32.Parse(s29, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "AssetType" && Reader.NamespaceURI == "" && !b21) - { - b21 = true; - string s30 = Reader.ReadElementString(); - ob.@AssetType = Int32.Parse(s30, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "SalePrice" && Reader.NamespaceURI == "" && !b25) - { - b25 = true; - string s31 = Reader.ReadElementString(); - ob.@SalePrice = Int32.Parse(s31, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "AssetID" && Reader.NamespaceURI == "" && !b22) - { - b22 = true; - ob.@AssetID = ReadObject_UUID(false, true); - } - else if (Reader.LocalName == "Folder" && Reader.NamespaceURI == "" && !b11) - { - b11 = true; - ob.@Folder = ReadObject_UUID(false, true); - } - else if (Reader.LocalName == "Name" && Reader.NamespaceURI == "" && !b14) - { - b14 = true; - string s32 = Reader.ReadElementString(); - ob.@Name = s32; - } - else if (Reader.LocalName == "NextPermissions" && Reader.NamespaceURI == "" && !b16) - { - b16 = true; - string s33 = Reader.ReadElementString(); - ob.@NextPermissions = UInt32.Parse(s33, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "BasePermissions" && Reader.NamespaceURI == "" && !b18) - { - b18 = true; - string s34 = Reader.ReadElementString(); - ob.@BasePermissions = UInt32.Parse(s34, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "ID" && Reader.NamespaceURI == "" && !b9) - { - b9 = true; - ob.@ID = ReadObject_UUID(false, true); - } - else if (Reader.LocalName == "Flags" && Reader.NamespaceURI == "" && !b27) - { - b27 = true; - string s35 = Reader.ReadElementString(); - ob.@Flags = UInt32.Parse(s35, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "GroupOwned" && Reader.NamespaceURI == "" && !b24) - { - b24 = true; - string s36 = Reader.ReadElementString(); - ob.@GroupOwned = XmlConvert.ToBoolean(s36); - } - else if (Reader.LocalName == "InvType" && Reader.NamespaceURI == "" && !b10) - { - b10 = true; - string s37 = Reader.ReadElementString(); - ob.@InvType = Int32.Parse(s37, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "GroupID" && Reader.NamespaceURI == "" && !b23) - { - b23 = true; - ob.@GroupID = ReadObject_UUID(false, true); - } - else if (Reader.LocalName == "Description" && Reader.NamespaceURI == "" && !b15) - { - b15 = true; - string s38 = Reader.ReadElementString(); - ob.@Description = s38; - } - else if (Reader.LocalName == "CreationDate" && Reader.NamespaceURI == "" && !b28) - { - b28 = true; - string s39 = Reader.ReadElementString(); - ob.@CreationDate = Int32.Parse(s39, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "EveryOnePermissions" && Reader.NamespaceURI == "" && !b19) - { - b19 = true; - string s40 = Reader.ReadElementString(); - ob.@EveryOnePermissions = UInt32.Parse(s40, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "Creator" && Reader.NamespaceURI == "" && !b13) - { - b13 = true; - ob.@Creator = ReadObject_UUID(false, true); - } - else if (Reader.LocalName == "Owner" && Reader.NamespaceURI == "" && !b12) - { - b12 = true; - ob.@Owner = ReadObject_UUID(false, true); - } - else if (Reader.LocalName == "SaleType" && Reader.NamespaceURI == "" && !b26) - { - b26 = true; - string s41 = Reader.ReadElementString(); - ob.@SaleType = byte.Parse(s41, CultureInfo.InvariantCulture); - } - else if (Reader.LocalName == "CurrentPermissions" && Reader.NamespaceURI == "" && !b17) - { - b17 = true; - string s42 = Reader.ReadElementString(); - ob.@CurrentPermissions = UInt32.Parse(s42, CultureInfo.InvariantCulture); - } - else - { - UnknownNode(ob); - } - } - else - UnknownNode(ob); - - Reader.MoveToContent(); - } - - ReadEndElement(); - - return ob; - } - - public InventoryCollection ReadObject_InventoryCollection(bool isNullable, bool checkType) - { - InventoryCollection ob = null; - if (isNullable && ReadNull()) return null; - - if (checkType) - { - System.Xml.XmlQualifiedName t = GetXsiType(); - if (t == null) - { } - else if (t.Name != "InventoryCollection" || t.Namespace != "") - throw CreateUnknownTypeException(t); - } - - ob = (InventoryCollection)Activator.CreateInstance(typeof(InventoryCollection), true); - - Reader.MoveToElement(); - - while (Reader.MoveToNextAttribute()) - { - if (IsXmlnsAttribute(Reader.Name)) - { - } - else - { - UnknownNode(ob); - } - } - - Reader.MoveToElement(); - Reader.MoveToElement(); - if (Reader.IsEmptyElement) - { - Reader.Skip(); - if (ob.@Folders == null) - { - ob.@Folders = new System.Collections.Generic.Dictionary(); - } - if (ob.@Items == null) - { - ob.@Items = new System.Collections.Generic.Dictionary(); - } - return ob; - } - - Reader.ReadStartElement(); - Reader.MoveToContent(); - - bool b43 = false, b44 = false, b45 = false; - - while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) - { - if (Reader.NodeType == System.Xml.XmlNodeType.Element) - { - if (Reader.LocalName == "UserID" && Reader.NamespaceURI == "" && !b45) - { - b45 = true; - ob.@UserID = ReadObject_UUID(false, true); - } - else if (Reader.LocalName == "Items" && Reader.NamespaceURI == "" && !b44) - { - System.Collections.Generic.Dictionary o46 = ob.@Items; - if (((object)o46) == null) - { - o46 = new System.Collections.Generic.Dictionary(); - ob.@Items = o46; - } - if (Reader.IsEmptyElement) - { - Reader.Skip(); - } - else - { - int n47 = 0; - Reader.ReadStartElement(); - Reader.MoveToContent(); - - while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) - { - if (Reader.NodeType == System.Xml.XmlNodeType.Element) - { - if (Reader.LocalName == "InventoryItemBase" && Reader.NamespaceURI == "") - { - if (((object)o46) == null) - throw CreateReadOnlyCollectionException("System.Collections.Generic.List"); - InventoryItem item = ReadObject_InventoryItem(true, true); - o46.Add(item.ID, item); - n47++; - } - else UnknownNode(null); - } - else UnknownNode(null); - - Reader.MoveToContent(); - } - ReadEndElement(); - } - b44 = true; - } - else if (Reader.LocalName == "Folders" && Reader.NamespaceURI == "" && !b43) - { - System.Collections.Generic.Dictionary o48 = ob.@Folders; - if (((object)o48) == null) - { - o48 = new System.Collections.Generic.Dictionary(); - ob.@Folders = o48; - } - if (Reader.IsEmptyElement) - { - Reader.Skip(); - } - else - { - int n49 = 0; - Reader.ReadStartElement(); - Reader.MoveToContent(); - - while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) - { - if (Reader.NodeType == System.Xml.XmlNodeType.Element) - { - if (Reader.LocalName == "InventoryFolderBase" && Reader.NamespaceURI == "") - { - if (((object)o48) == null) - throw CreateReadOnlyCollectionException("System.Collections.Generic.List"); - InventoryFolder folder = ReadObject_InventoryFolder(true, true); - o48.Add(folder.ID, folder); - n49++; - } - else UnknownNode(null); - } - else UnknownNode(null); - - Reader.MoveToContent(); - } - ReadEndElement(); - } - b43 = true; - } - else - { - UnknownNode(ob); - } - } - else - UnknownNode(ob); - - Reader.MoveToContent(); - } - if (ob.@Folders == null) - { - ob.@Folders = new System.Collections.Generic.Dictionary(); - } - if (ob.@Items == null) - { - ob.@Items = new System.Collections.Generic.Dictionary(); - } - - ReadEndElement(); - - return ob; - } - - public OpenMetaverse.UUID ReadObject_UUID(bool isNullable, bool checkType) - { - OpenMetaverse.UUID ob = (OpenMetaverse.UUID)Activator.CreateInstance(typeof(OpenMetaverse.UUID), true); - System.Xml.XmlQualifiedName t = GetXsiType(); - if (t == null) - { } - else if (t.Name != "UUID" || t.Namespace != "") - throw CreateUnknownTypeException(t); - - Reader.MoveToElement(); - - while (Reader.MoveToNextAttribute()) - { - if (IsXmlnsAttribute(Reader.Name)) - { - } - else - { - UnknownNode(ob); - } - } - - Reader.MoveToElement(); - Reader.MoveToElement(); - if (Reader.IsEmptyElement) - { - Reader.Skip(); - return ob; - } - - Reader.ReadStartElement(); - Reader.MoveToContent(); - - bool b52 = false; - - while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) - { - if (Reader.NodeType == System.Xml.XmlNodeType.Element) - { - if (Reader.LocalName == "Guid" && Reader.NamespaceURI == "" && !b52) - { - b52 = true; - string s53 = Reader.ReadElementString(); - ob.@Guid = XmlConvert.ToGuid(s53); - } - else - { - UnknownNode(ob); - } - } - else - UnknownNode(ob); - - Reader.MoveToContent(); - } - - ReadEndElement(); - - return ob; - } - - protected override void InitCallbacks() - { - } - - protected override void InitIDs() - { - } - } - - public class GeneratedWriter : XmlSerializationWriter - { - const string xmlNamespace = "http://www.w3.org/2000/xmlns/"; - static readonly System.Reflection.MethodInfo toBinHexStringMethod = typeof(XmlConvert).GetMethod("ToBinHexString", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic, null, new Type[] { typeof(byte[]) }, null); - static string ToBinHexString(byte[] input) - { - return input == null ? null : (string)toBinHexStringMethod.Invoke(null, new object[] { input }); - } - public void WriteRoot_InventoryFolder(object o) - { - WriteStartDocument(); - InventoryFolder ob = (InventoryFolder)o; - TopLevelElement(); - WriteObject_InventoryFolder(ob, "InventoryFolderBase", "", true, false, true); - } - - public void WriteRoot_InventoryItem(object o) - { - WriteStartDocument(); - InventoryItem ob = (InventoryItem)o; - TopLevelElement(); - WriteObject_InventoryItem(ob, "InventoryItemBase", "", true, false, true); - } - - public void WriteRoot_InventoryCollection(object o) - { - WriteStartDocument(); - InventoryCollection ob = (InventoryCollection)o; - TopLevelElement(); - WriteObject_InventoryCollection(ob, "InventoryCollection", "", true, false, true); - } - - void WriteObject_InventoryFolder(InventoryFolder ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem) - { - if (((object)ob) == null) - { - if (isNullable) - WriteNullTagLiteral(element, namesp); - return; - } - - System.Type type = ob.GetType(); - if (type == typeof(InventoryFolder)) - { } - else - { - throw CreateUnknownTypeException(ob); - } - - if (writeWrappingElem) - { - WriteStartElement(element, namesp, ob); - } - - if (needType) WriteXsiType("InventoryFolderBase", ""); - - WriteElementString("Name", "", ob.@Name); - WriteObject_UUID(ob.@Owner, "Owner", "", false, false, true); - WriteObject_UUID(ob.@ParentID, "ParentID", "", false, false, true); - WriteObject_UUID(ob.@ID, "ID", "", false, false, true); - WriteElementString("Type", "", ob.@Type.ToString(CultureInfo.InvariantCulture)); - WriteElementString("Version", "", ob.@Version.ToString(CultureInfo.InvariantCulture)); - if (writeWrappingElem) WriteEndElement(ob); - } - - void WriteObject_InventoryItem(InventoryItem ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem) - { - if (((object)ob) == null) - { - if (isNullable) - WriteNullTagLiteral(element, namesp); - return; - } - - System.Type type = ob.GetType(); - if (type == typeof(InventoryItem)) - { } - else - { - throw CreateUnknownTypeException(ob); - } - - if (writeWrappingElem) - { - WriteStartElement(element, namesp, ob); - } - - if (needType) WriteXsiType("InventoryItemBase", ""); - - WriteObject_UUID(ob.@ID, "ID", "", false, false, true); - WriteElementString("InvType", "", ob.@InvType.ToString(CultureInfo.InvariantCulture)); - WriteObject_UUID(ob.@Folder, "Folder", "", false, false, true); - WriteObject_UUID(ob.@Owner, "Owner", "", false, false, true); - WriteObject_UUID(ob.@Creator, "Creator", "", false, false, true); - WriteElementString("Name", "", ob.@Name); - WriteElementString("Description", "", ob.@Description); - WriteElementString("NextPermissions", "", ob.@NextPermissions.ToString(CultureInfo.InvariantCulture)); - WriteElementString("CurrentPermissions", "", ob.@CurrentPermissions.ToString(CultureInfo.InvariantCulture)); - WriteElementString("BasePermissions", "", ob.@BasePermissions.ToString(CultureInfo.InvariantCulture)); - WriteElementString("EveryOnePermissions", "", ob.@EveryOnePermissions.ToString(CultureInfo.InvariantCulture)); - WriteElementString("GroupPermissions", "", ob.@GroupPermissions.ToString(CultureInfo.InvariantCulture)); - WriteElementString("AssetType", "", ob.@AssetType.ToString(CultureInfo.InvariantCulture)); - WriteObject_UUID(ob.@AssetID, "AssetID", "", false, false, true); - WriteObject_UUID(ob.@GroupID, "GroupID", "", false, false, true); - WriteElementString("GroupOwned", "", (ob.@GroupOwned ? "true" : "false")); - WriteElementString("SalePrice", "", ob.@SalePrice.ToString(CultureInfo.InvariantCulture)); - WriteElementString("SaleType", "", ob.@SaleType.ToString(CultureInfo.InvariantCulture)); - WriteElementString("Flags", "", ob.@Flags.ToString(CultureInfo.InvariantCulture)); - WriteElementString("CreationDate", "", ob.@CreationDate.ToString(CultureInfo.InvariantCulture)); - if (writeWrappingElem) WriteEndElement(ob); - } - - void WriteObject_InventoryCollection(InventoryCollection ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem) - { - if (((object)ob) == null) - { - if (isNullable) - WriteNullTagLiteral(element, namesp); - return; - } - - System.Type type = ob.GetType(); - if (type == typeof(InventoryCollection)) - { } - else - { - throw CreateUnknownTypeException(ob); - } - - if (writeWrappingElem) - { - WriteStartElement(element, namesp, ob); - } - - if (needType) WriteXsiType("InventoryCollection", ""); - - if (ob.@Folders != null) - { - WriteStartElement("Folders", "", ob.@Folders); - foreach (InventoryFolder folder in ob.Folders.Values) - { - WriteObject_InventoryFolder(folder, "InventoryFolderBase", "", true, false, true); - } - WriteEndElement(ob.@Folders); - } - if (ob.@Items != null) - { - WriteStartElement("Items", "", ob.@Items); - foreach (InventoryItem item in ob.Items.Values) - { - WriteObject_InventoryItem(item, "InventoryItemBase", "", true, false, true); - } - WriteEndElement(ob.@Items); - } - WriteObject_UUID(ob.@UserID, "UserID", "", false, false, true); - if (writeWrappingElem) WriteEndElement(ob); - } - - void WriteObject_UUID(OpenMetaverse.UUID ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem) - { - System.Type type = ob.GetType(); - if (type == typeof(OpenMetaverse.UUID)) - { } - else - { - throw CreateUnknownTypeException(ob); - } - - if (writeWrappingElem) - { - WriteStartElement(element, namesp, ob); - } - - if (needType) WriteXsiType("UUID", ""); - - WriteElementString("Guid", "", XmlConvert.ToString(ob.@Guid)); - if (writeWrappingElem) WriteEndElement(ob); - } - - protected override void InitCallbacks() - { - } - - } - - public class BaseXmlSerializer : System.Xml.Serialization.XmlSerializer - { - protected override System.Xml.Serialization.XmlSerializationReader CreateReader() - { - return new GeneratedReader(); - } - - protected override System.Xml.Serialization.XmlSerializationWriter CreateWriter() - { - return new GeneratedWriter(); - } - - public override bool CanDeserialize(System.Xml.XmlReader xmlReader) - { - return true; - } - } - - public sealed class InventoryFolderSerializer : BaseXmlSerializer - { - protected override void Serialize(object obj, System.Xml.Serialization.XmlSerializationWriter writer) - { - ((GeneratedWriter)writer).WriteRoot_InventoryFolder(obj); - } - - protected override object Deserialize(System.Xml.Serialization.XmlSerializationReader reader) - { - return ((GeneratedReader)reader).ReadRoot_InventoryFolderBase(); - } - } - - public sealed class InventoryItemSerializer : BaseXmlSerializer - { - protected override void Serialize(object obj, System.Xml.Serialization.XmlSerializationWriter writer) - { - ((GeneratedWriter)writer).WriteRoot_InventoryItem(obj); - } - - protected override object Deserialize(System.Xml.Serialization.XmlSerializationReader reader) - { - return ((GeneratedReader)reader).ReadRoot_InventoryItemBase(); - } - } - - public sealed class InventoryCollectionSerializer : BaseXmlSerializer - { - protected override void Serialize(object obj, System.Xml.Serialization.XmlSerializationWriter writer) - { - ((GeneratedWriter)writer).WriteRoot_InventoryCollection(obj); - } - - protected override object Deserialize(System.Xml.Serialization.XmlSerializationReader reader) - { - return ((GeneratedReader)reader).ReadRoot_InventoryCollection(); - } - } - - #endregion XML Serialization - } -} +/* + * Copyright (c) 2008 Intel Corporation + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * -- Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * -- Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * -- Neither the name of the Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE INTEL OR ITS + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +using System; +using System.Collections.Specialized; +using System.Globalization; +using System.Net; +using System.Xml; +using System.Xml.Serialization; +using OpenMetaverse; +using OpenMetaverse.StructuredData; +using HttpServer; + +namespace OpenSim.Grid.AssetInventoryServer +{ + public static class Utils + { + public static UUID GetAuthToken(IHttpRequest request) + { + UUID authToken = UUID.Zero; + + string[] authHeader = request.Headers.GetValues("Authorization"); + if (authHeader != null && authHeader.Length == 1) + { + // Example header: + // Authorization: OpenGrid 65fda0b5-4446-42f5-b828-aaf644293646 + string[] authHeaderParts = authHeader[0].Split(' '); + if (authHeaderParts.Length == 2 && authHeaderParts[0] == "OpenGrid") + UUID.TryParse(authHeaderParts[1], out authToken); + } + + if (authToken == UUID.Zero && request.Cookies != null) + { + // Check for an authToken cookie to make logins browser-compatible + RequestCookie authCookie = request.Cookies["authToken"]; + if (authCookie != null) + UUID.TryParse(authCookie.Value, out authToken); + } + + return authToken; + } + + public static Uri GetOpenSimUri(UUID avatarID) + { + return new Uri("http://opensim/" + avatarID.ToString()); + } + + public static bool TryGetOpenSimUUID(Uri avatarUri, out UUID avatarID) + { + string[] parts = avatarUri.Segments; + return UUID.TryParse(parts[parts.Length - 1], out avatarID); + } + + #region SL / file extension / content-type conversions + + public static string SLAssetTypeToContentType(int assetType) + { + switch (assetType) + { + case 0: + return "image/jp2"; + case 1: + return "application/ogg"; + case 2: + return "application/x-metaverse-callingcard"; + case 3: + return "application/x-metaverse-landmark"; + case 5: + return "application/x-metaverse-clothing"; + case 6: + return "application/x-metaverse-primitive"; + case 7: + return "application/x-metaverse-notecard"; + case 8: + return "application/x-metaverse-folder"; + case 10: + return "application/x-metaverse-lsl"; + case 11: + return "application/x-metaverse-lso"; + case 12: + return "image/tga"; + case 13: + return "application/x-metaverse-bodypart"; + case 17: + return "audio/x-wav"; + case 19: + return "image/jpeg"; + case 20: + return "application/x-metaverse-animation"; + case 21: + return "application/x-metaverse-gesture"; + case 22: + return "application/x-metaverse-simstate"; + default: + return "application/octet-stream"; + } + } + + public static int ContentTypeToSLAssetType(string contentType) + { + switch (contentType) + { + case "image/jp2": + return 0; + case "application/ogg": + return 1; + case "application/x-metaverse-callingcard": + return 2; + case "application/x-metaverse-landmark": + return 3; + case "application/x-metaverse-clothing": + return 5; + case "application/x-metaverse-primitive": + return 6; + case "application/x-metaverse-notecard": + return 7; + case "application/x-metaverse-lsl": + return 10; + case "application/x-metaverse-lso": + return 11; + case "image/tga": + return 12; + case "application/x-metaverse-bodypart": + return 13; + case "audio/x-wav": + return 17; + case "image/jpeg": + return 19; + case "application/x-metaverse-animation": + return 20; + case "application/x-metaverse-gesture": + return 21; + case "application/x-metaverse-simstate": + return 22; + default: + return -1; + } + } + + public static string ContentTypeToExtension(string contentType) + { + switch (contentType) + { + case "image/jp2": + return "texture"; + case "application/ogg": + return "ogg"; + case "application/x-metaverse-callingcard": + return "callingcard"; + case "application/x-metaverse-landmark": + return "landmark"; + case "application/x-metaverse-clothing": + return "clothing"; + case "application/x-metaverse-primitive": + return "primitive"; + case "application/x-metaverse-notecard": + return "notecard"; + case "application/x-metaverse-lsl": + return "lsl"; + case "application/x-metaverse-lso": + return "lso"; + case "image/tga": + return "tga"; + case "application/x-metaverse-bodypart": + return "bodypart"; + case "audio/x-wav": + return "wav"; + case "image/jpeg": + return "jpg"; + case "application/x-metaverse-animation": + return "animation"; + case "application/x-metaverse-gesture": + return "gesture"; + case "application/x-metaverse-simstate": + return "simstate"; + default: + return "bin"; + } + } + + public static string ExtensionToContentType(string extension) + { + switch (extension) + { + case "texture": + case "jp2": + case "j2c": + return "image/jp2"; + case "sound": + case "ogg": + return "application/ogg"; + case "callingcard": + return "application/x-metaverse-callingcard"; + case "landmark": + return "application/x-metaverse-landmark"; + case "clothing": + return "application/x-metaverse-clothing"; + case "primitive": + return "application/x-metaverse-primitive"; + case "notecard": + return "application/x-metaverse-notecard"; + case "lsl": + return "application/x-metaverse-lsl"; + case "lso": + return "application/x-metaverse-lso"; + case "tga": + return "image/tga"; + case "bodypart": + return "application/x-metaverse-bodypart"; + case "wav": + return "audio/x-wav"; + case "jpg": + case "jpeg": + return "image/jpeg"; + case "animation": + return "application/x-metaverse-animation"; + case "gesture": + return "application/x-metaverse-gesture"; + case "simstate": + return "application/x-metaverse-simstate"; + case "txt": + return "text/plain"; + case "xml": + return "application/xml"; + default: + return "application/octet-stream"; + } + } + + #endregion SL / file extension / content-type conversions + + #region XML Serialization + + public class GeneratedReader : XmlSerializationReader + { + public object ReadRoot_InventoryFolderBase() + { + Reader.MoveToContent(); + if (Reader.LocalName != "InventoryFolderBase" || Reader.NamespaceURI != "") + throw CreateUnknownNodeException(); + return ReadObject_InventoryFolder(true, true); + } + + public object ReadRoot_InventoryItemBase() + { + Reader.MoveToContent(); + if (Reader.LocalName != "InventoryItemBase" || Reader.NamespaceURI != "") + throw CreateUnknownNodeException(); + return ReadObject_InventoryItem(true, true); + } + + public object ReadRoot_InventoryCollection() + { + Reader.MoveToContent(); + if (Reader.LocalName != "InventoryCollection" || Reader.NamespaceURI != "") + throw CreateUnknownNodeException(); + return ReadObject_InventoryCollection(true, true); + } + + public InventoryFolder ReadObject_InventoryFolder(bool isNullable, bool checkType) + { + InventoryFolder ob = null; + if (isNullable && ReadNull()) return null; + + if (checkType) + { + System.Xml.XmlQualifiedName t = GetXsiType(); + if (t == null) + { } + else if (t.Name != "InventoryFolderBase" || t.Namespace != "") + throw CreateUnknownTypeException(t); + } + + ob = (InventoryFolder)Activator.CreateInstance(typeof(InventoryFolder), true); + + Reader.MoveToElement(); + + while (Reader.MoveToNextAttribute()) + { + if (IsXmlnsAttribute(Reader.Name)) + { + } + else + { + UnknownNode(ob); + } + } + + Reader.MoveToElement(); + Reader.MoveToElement(); + if (Reader.IsEmptyElement) + { + Reader.Skip(); + return ob; + } + + Reader.ReadStartElement(); + Reader.MoveToContent(); + + bool b0 = false, b1 = false, b2 = false, b3 = false, b4 = false, b5 = false; + + while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) + { + if (Reader.NodeType == System.Xml.XmlNodeType.Element) + { + if (Reader.LocalName == "Owner" && Reader.NamespaceURI == "" && !b1) + { + b1 = true; + ob.@Owner = ReadObject_UUID(false, true); + } + else if (Reader.LocalName == "Version" && Reader.NamespaceURI == "" && !b5) + { + b5 = true; + string s6 = Reader.ReadElementString(); + ob.@Version = UInt16.Parse(s6, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "ID" && Reader.NamespaceURI == "" && !b3) + { + b3 = true; + ob.@ID = ReadObject_UUID(false, true); + } + else if (Reader.LocalName == "Type" && Reader.NamespaceURI == "" && !b4) + { + b4 = true; + string s7 = Reader.ReadElementString(); + ob.@Type = Int16.Parse(s7, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "Name" && Reader.NamespaceURI == "" && !b0) + { + b0 = true; + string s8 = Reader.ReadElementString(); + ob.@Name = s8; + } + else if (Reader.LocalName == "ParentID" && Reader.NamespaceURI == "" && !b2) + { + b2 = true; + ob.@ParentID = ReadObject_UUID(false, true); + } + else + { + UnknownNode(ob); + } + } + else + UnknownNode(ob); + + Reader.MoveToContent(); + } + + ReadEndElement(); + + return ob; + } + + public InventoryItem ReadObject_InventoryItem(bool isNullable, bool checkType) + { + InventoryItem ob = null; + if (isNullable && ReadNull()) return null; + + if (checkType) + { + System.Xml.XmlQualifiedName t = GetXsiType(); + if (t == null) + { } + else if (t.Name != "InventoryItemBase" || t.Namespace != "") + throw CreateUnknownTypeException(t); + } + + ob = (InventoryItem)Activator.CreateInstance(typeof(InventoryItem), true); + + Reader.MoveToElement(); + + while (Reader.MoveToNextAttribute()) + { + if (IsXmlnsAttribute(Reader.Name)) + { + } + else + { + UnknownNode(ob); + } + } + + Reader.MoveToElement(); + Reader.MoveToElement(); + if (Reader.IsEmptyElement) + { + Reader.Skip(); + return ob; + } + + Reader.ReadStartElement(); + Reader.MoveToContent(); + + bool b9 = false, b10 = false, b11 = false, b12 = false, b13 = false, b14 = false, b15 = false, b16 = false, b17 = false, b18 = false, b19 = false, b20 = false, b21 = false, b22 = false, b23 = false, b24 = false, b25 = false, b26 = false, b27 = false, b28 = false; + + while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) + { + if (Reader.NodeType == System.Xml.XmlNodeType.Element) + { + if (Reader.LocalName == "GroupPermissions" && Reader.NamespaceURI == "" && !b20) + { + b20 = true; + string s29 = Reader.ReadElementString(); + ob.@GroupPermissions = UInt32.Parse(s29, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "AssetType" && Reader.NamespaceURI == "" && !b21) + { + b21 = true; + string s30 = Reader.ReadElementString(); + ob.@AssetType = Int32.Parse(s30, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "SalePrice" && Reader.NamespaceURI == "" && !b25) + { + b25 = true; + string s31 = Reader.ReadElementString(); + ob.@SalePrice = Int32.Parse(s31, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "AssetID" && Reader.NamespaceURI == "" && !b22) + { + b22 = true; + ob.@AssetID = ReadObject_UUID(false, true); + } + else if (Reader.LocalName == "Folder" && Reader.NamespaceURI == "" && !b11) + { + b11 = true; + ob.@Folder = ReadObject_UUID(false, true); + } + else if (Reader.LocalName == "Name" && Reader.NamespaceURI == "" && !b14) + { + b14 = true; + string s32 = Reader.ReadElementString(); + ob.@Name = s32; + } + else if (Reader.LocalName == "NextPermissions" && Reader.NamespaceURI == "" && !b16) + { + b16 = true; + string s33 = Reader.ReadElementString(); + ob.@NextPermissions = UInt32.Parse(s33, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "BasePermissions" && Reader.NamespaceURI == "" && !b18) + { + b18 = true; + string s34 = Reader.ReadElementString(); + ob.@BasePermissions = UInt32.Parse(s34, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "ID" && Reader.NamespaceURI == "" && !b9) + { + b9 = true; + ob.@ID = ReadObject_UUID(false, true); + } + else if (Reader.LocalName == "Flags" && Reader.NamespaceURI == "" && !b27) + { + b27 = true; + string s35 = Reader.ReadElementString(); + ob.@Flags = UInt32.Parse(s35, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "GroupOwned" && Reader.NamespaceURI == "" && !b24) + { + b24 = true; + string s36 = Reader.ReadElementString(); + ob.@GroupOwned = XmlConvert.ToBoolean(s36); + } + else if (Reader.LocalName == "InvType" && Reader.NamespaceURI == "" && !b10) + { + b10 = true; + string s37 = Reader.ReadElementString(); + ob.@InvType = Int32.Parse(s37, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "GroupID" && Reader.NamespaceURI == "" && !b23) + { + b23 = true; + ob.@GroupID = ReadObject_UUID(false, true); + } + else if (Reader.LocalName == "Description" && Reader.NamespaceURI == "" && !b15) + { + b15 = true; + string s38 = Reader.ReadElementString(); + ob.@Description = s38; + } + else if (Reader.LocalName == "CreationDate" && Reader.NamespaceURI == "" && !b28) + { + b28 = true; + string s39 = Reader.ReadElementString(); + ob.@CreationDate = Int32.Parse(s39, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "EveryOnePermissions" && Reader.NamespaceURI == "" && !b19) + { + b19 = true; + string s40 = Reader.ReadElementString(); + ob.@EveryOnePermissions = UInt32.Parse(s40, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "Creator" && Reader.NamespaceURI == "" && !b13) + { + b13 = true; + ob.@Creator = ReadObject_UUID(false, true); + } + else if (Reader.LocalName == "Owner" && Reader.NamespaceURI == "" && !b12) + { + b12 = true; + ob.@Owner = ReadObject_UUID(false, true); + } + else if (Reader.LocalName == "SaleType" && Reader.NamespaceURI == "" && !b26) + { + b26 = true; + string s41 = Reader.ReadElementString(); + ob.@SaleType = byte.Parse(s41, CultureInfo.InvariantCulture); + } + else if (Reader.LocalName == "CurrentPermissions" && Reader.NamespaceURI == "" && !b17) + { + b17 = true; + string s42 = Reader.ReadElementString(); + ob.@CurrentPermissions = UInt32.Parse(s42, CultureInfo.InvariantCulture); + } + else + { + UnknownNode(ob); + } + } + else + UnknownNode(ob); + + Reader.MoveToContent(); + } + + ReadEndElement(); + + return ob; + } + + public InventoryCollection ReadObject_InventoryCollection(bool isNullable, bool checkType) + { + InventoryCollection ob = null; + if (isNullable && ReadNull()) return null; + + if (checkType) + { + System.Xml.XmlQualifiedName t = GetXsiType(); + if (t == null) + { } + else if (t.Name != "InventoryCollection" || t.Namespace != "") + throw CreateUnknownTypeException(t); + } + + ob = (InventoryCollection)Activator.CreateInstance(typeof(InventoryCollection), true); + + Reader.MoveToElement(); + + while (Reader.MoveToNextAttribute()) + { + if (IsXmlnsAttribute(Reader.Name)) + { + } + else + { + UnknownNode(ob); + } + } + + Reader.MoveToElement(); + Reader.MoveToElement(); + if (Reader.IsEmptyElement) + { + Reader.Skip(); + if (ob.@Folders == null) + { + ob.@Folders = new System.Collections.Generic.Dictionary(); + } + if (ob.@Items == null) + { + ob.@Items = new System.Collections.Generic.Dictionary(); + } + return ob; + } + + Reader.ReadStartElement(); + Reader.MoveToContent(); + + bool b43 = false, b44 = false, b45 = false; + + while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) + { + if (Reader.NodeType == System.Xml.XmlNodeType.Element) + { + if (Reader.LocalName == "UserID" && Reader.NamespaceURI == "" && !b45) + { + b45 = true; + ob.@UserID = ReadObject_UUID(false, true); + } + else if (Reader.LocalName == "Items" && Reader.NamespaceURI == "" && !b44) + { + System.Collections.Generic.Dictionary o46 = ob.@Items; + if (((object)o46) == null) + { + o46 = new System.Collections.Generic.Dictionary(); + ob.@Items = o46; + } + if (Reader.IsEmptyElement) + { + Reader.Skip(); + } + else + { + int n47 = 0; + Reader.ReadStartElement(); + Reader.MoveToContent(); + + while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) + { + if (Reader.NodeType == System.Xml.XmlNodeType.Element) + { + if (Reader.LocalName == "InventoryItemBase" && Reader.NamespaceURI == "") + { + if (((object)o46) == null) + throw CreateReadOnlyCollectionException("System.Collections.Generic.List"); + InventoryItem item = ReadObject_InventoryItem(true, true); + o46.Add(item.ID, item); + n47++; + } + else UnknownNode(null); + } + else UnknownNode(null); + + Reader.MoveToContent(); + } + ReadEndElement(); + } + b44 = true; + } + else if (Reader.LocalName == "Folders" && Reader.NamespaceURI == "" && !b43) + { + System.Collections.Generic.Dictionary o48 = ob.@Folders; + if (((object)o48) == null) + { + o48 = new System.Collections.Generic.Dictionary(); + ob.@Folders = o48; + } + if (Reader.IsEmptyElement) + { + Reader.Skip(); + } + else + { + int n49 = 0; + Reader.ReadStartElement(); + Reader.MoveToContent(); + + while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) + { + if (Reader.NodeType == System.Xml.XmlNodeType.Element) + { + if (Reader.LocalName == "InventoryFolderBase" && Reader.NamespaceURI == "") + { + if (((object)o48) == null) + throw CreateReadOnlyCollectionException("System.Collections.Generic.List"); + InventoryFolder folder = ReadObject_InventoryFolder(true, true); + o48.Add(folder.ID, folder); + n49++; + } + else UnknownNode(null); + } + else UnknownNode(null); + + Reader.MoveToContent(); + } + ReadEndElement(); + } + b43 = true; + } + else + { + UnknownNode(ob); + } + } + else + UnknownNode(ob); + + Reader.MoveToContent(); + } + if (ob.@Folders == null) + { + ob.@Folders = new System.Collections.Generic.Dictionary(); + } + if (ob.@Items == null) + { + ob.@Items = new System.Collections.Generic.Dictionary(); + } + + ReadEndElement(); + + return ob; + } + + public OpenMetaverse.UUID ReadObject_UUID(bool isNullable, bool checkType) + { + OpenMetaverse.UUID ob = (OpenMetaverse.UUID)Activator.CreateInstance(typeof(OpenMetaverse.UUID), true); + System.Xml.XmlQualifiedName t = GetXsiType(); + if (t == null) + { } + else if (t.Name != "UUID" || t.Namespace != "") + throw CreateUnknownTypeException(t); + + Reader.MoveToElement(); + + while (Reader.MoveToNextAttribute()) + { + if (IsXmlnsAttribute(Reader.Name)) + { + } + else + { + UnknownNode(ob); + } + } + + Reader.MoveToElement(); + Reader.MoveToElement(); + if (Reader.IsEmptyElement) + { + Reader.Skip(); + return ob; + } + + Reader.ReadStartElement(); + Reader.MoveToContent(); + + bool b52 = false; + + while (Reader.NodeType != System.Xml.XmlNodeType.EndElement) + { + if (Reader.NodeType == System.Xml.XmlNodeType.Element) + { + if (Reader.LocalName == "Guid" && Reader.NamespaceURI == "" && !b52) + { + b52 = true; + string s53 = Reader.ReadElementString(); + ob.@Guid = XmlConvert.ToGuid(s53); + } + else + { + UnknownNode(ob); + } + } + else + UnknownNode(ob); + + Reader.MoveToContent(); + } + + ReadEndElement(); + + return ob; + } + + protected override void InitCallbacks() + { + } + + protected override void InitIDs() + { + } + } + + public class GeneratedWriter : XmlSerializationWriter + { + const string xmlNamespace = "http://www.w3.org/2000/xmlns/"; + static readonly System.Reflection.MethodInfo toBinHexStringMethod = typeof(XmlConvert).GetMethod("ToBinHexString", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic, null, new Type[] { typeof(byte[]) }, null); + static string ToBinHexString(byte[] input) + { + return input == null ? null : (string)toBinHexStringMethod.Invoke(null, new object[] { input }); + } + public void WriteRoot_InventoryFolder(object o) + { + WriteStartDocument(); + InventoryFolder ob = (InventoryFolder)o; + TopLevelElement(); + WriteObject_InventoryFolder(ob, "InventoryFolderBase", "", true, false, true); + } + + public void WriteRoot_InventoryItem(object o) + { + WriteStartDocument(); + InventoryItem ob = (InventoryItem)o; + TopLevelElement(); + WriteObject_InventoryItem(ob, "InventoryItemBase", "", true, false, true); + } + + public void WriteRoot_InventoryCollection(object o) + { + WriteStartDocument(); + InventoryCollection ob = (InventoryCollection)o; + TopLevelElement(); + WriteObject_InventoryCollection(ob, "InventoryCollection", "", true, false, true); + } + + void WriteObject_InventoryFolder(InventoryFolder ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem) + { + if (((object)ob) == null) + { + if (isNullable) + WriteNullTagLiteral(element, namesp); + return; + } + + System.Type type = ob.GetType(); + if (type == typeof(InventoryFolder)) + { } + else + { + throw CreateUnknownTypeException(ob); + } + + if (writeWrappingElem) + { + WriteStartElement(element, namesp, ob); + } + + if (needType) WriteXsiType("InventoryFolderBase", ""); + + WriteElementString("Name", "", ob.@Name); + WriteObject_UUID(ob.@Owner, "Owner", "", false, false, true); + WriteObject_UUID(ob.@ParentID, "ParentID", "", false, false, true); + WriteObject_UUID(ob.@ID, "ID", "", false, false, true); + WriteElementString("Type", "", ob.@Type.ToString(CultureInfo.InvariantCulture)); + WriteElementString("Version", "", ob.@Version.ToString(CultureInfo.InvariantCulture)); + if (writeWrappingElem) WriteEndElement(ob); + } + + void WriteObject_InventoryItem(InventoryItem ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem) + { + if (((object)ob) == null) + { + if (isNullable) + WriteNullTagLiteral(element, namesp); + return; + } + + System.Type type = ob.GetType(); + if (type == typeof(InventoryItem)) + { } + else + { + throw CreateUnknownTypeException(ob); + } + + if (writeWrappingElem) + { + WriteStartElement(element, namesp, ob); + } + + if (needType) WriteXsiType("InventoryItemBase", ""); + + WriteObject_UUID(ob.@ID, "ID", "", false, false, true); + WriteElementString("InvType", "", ob.@InvType.ToString(CultureInfo.InvariantCulture)); + WriteObject_UUID(ob.@Folder, "Folder", "", false, false, true); + WriteObject_UUID(ob.@Owner, "Owner", "", false, false, true); + WriteObject_UUID(ob.@Creator, "Creator", "", false, false, true); + WriteElementString("Name", "", ob.@Name); + WriteElementString("Description", "", ob.@Description); + WriteElementString("NextPermissions", "", ob.@NextPermissions.ToString(CultureInfo.InvariantCulture)); + WriteElementString("CurrentPermissions", "", ob.@CurrentPermissions.ToString(CultureInfo.InvariantCulture)); + WriteElementString("BasePermissions", "", ob.@BasePermissions.ToString(CultureInfo.InvariantCulture)); + WriteElementString("EveryOnePermissions", "", ob.@EveryOnePermissions.ToString(CultureInfo.InvariantCulture)); + WriteElementString("GroupPermissions", "", ob.@GroupPermissions.ToString(CultureInfo.InvariantCulture)); + WriteElementString("AssetType", "", ob.@AssetType.ToString(CultureInfo.InvariantCulture)); + WriteObject_UUID(ob.@AssetID, "AssetID", "", false, false, true); + WriteObject_UUID(ob.@GroupID, "GroupID", "", false, false, true); + WriteElementString("GroupOwned", "", (ob.@GroupOwned ? "true" : "false")); + WriteElementString("SalePrice", "", ob.@SalePrice.ToString(CultureInfo.InvariantCulture)); + WriteElementString("SaleType", "", ob.@SaleType.ToString(CultureInfo.InvariantCulture)); + WriteElementString("Flags", "", ob.@Flags.ToString(CultureInfo.InvariantCulture)); + WriteElementString("CreationDate", "", ob.@CreationDate.ToString(CultureInfo.InvariantCulture)); + if (writeWrappingElem) WriteEndElement(ob); + } + + void WriteObject_InventoryCollection(InventoryCollection ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem) + { + if (((object)ob) == null) + { + if (isNullable) + WriteNullTagLiteral(element, namesp); + return; + } + + System.Type type = ob.GetType(); + if (type == typeof(InventoryCollection)) + { } + else + { + throw CreateUnknownTypeException(ob); + } + + if (writeWrappingElem) + { + WriteStartElement(element, namesp, ob); + } + + if (needType) WriteXsiType("InventoryCollection", ""); + + if (ob.@Folders != null) + { + WriteStartElement("Folders", "", ob.@Folders); + foreach (InventoryFolder folder in ob.Folders.Values) + { + WriteObject_InventoryFolder(folder, "InventoryFolderBase", "", true, false, true); + } + WriteEndElement(ob.@Folders); + } + if (ob.@Items != null) + { + WriteStartElement("Items", "", ob.@Items); + foreach (InventoryItem item in ob.Items.Values) + { + WriteObject_InventoryItem(item, "InventoryItemBase", "", true, false, true); + } + WriteEndElement(ob.@Items); + } + WriteObject_UUID(ob.@UserID, "UserID", "", false, false, true); + if (writeWrappingElem) WriteEndElement(ob); + } + + void WriteObject_UUID(OpenMetaverse.UUID ob, string element, string namesp, bool isNullable, bool needType, bool writeWrappingElem) + { + System.Type type = ob.GetType(); + if (type == typeof(OpenMetaverse.UUID)) + { } + else + { + throw CreateUnknownTypeException(ob); + } + + if (writeWrappingElem) + { + WriteStartElement(element, namesp, ob); + } + + if (needType) WriteXsiType("UUID", ""); + + WriteElementString("Guid", "", XmlConvert.ToString(ob.@Guid)); + if (writeWrappingElem) WriteEndElement(ob); + } + + protected override void InitCallbacks() + { + } + + } + + public class BaseXmlSerializer : System.Xml.Serialization.XmlSerializer + { + protected override System.Xml.Serialization.XmlSerializationReader CreateReader() + { + return new GeneratedReader(); + } + + protected override System.Xml.Serialization.XmlSerializationWriter CreateWriter() + { + return new GeneratedWriter(); + } + + public override bool CanDeserialize(System.Xml.XmlReader xmlReader) + { + return true; + } + } + + public sealed class InventoryFolderSerializer : BaseXmlSerializer + { + protected override void Serialize(object obj, System.Xml.Serialization.XmlSerializationWriter writer) + { + ((GeneratedWriter)writer).WriteRoot_InventoryFolder(obj); + } + + protected override object Deserialize(System.Xml.Serialization.XmlSerializationReader reader) + { + return ((GeneratedReader)reader).ReadRoot_InventoryFolderBase(); + } + } + + public sealed class InventoryItemSerializer : BaseXmlSerializer + { + protected override void Serialize(object obj, System.Xml.Serialization.XmlSerializationWriter writer) + { + ((GeneratedWriter)writer).WriteRoot_InventoryItem(obj); + } + + protected override object Deserialize(System.Xml.Serialization.XmlSerializationReader reader) + { + return ((GeneratedReader)reader).ReadRoot_InventoryItemBase(); + } + } + + public sealed class InventoryCollectionSerializer : BaseXmlSerializer + { + protected override void Serialize(object obj, System.Xml.Serialization.XmlSerializationWriter writer) + { + ((GeneratedWriter)writer).WriteRoot_InventoryCollection(obj); + } + + protected override object Deserialize(System.Xml.Serialization.XmlSerializationReader reader) + { + return ((GeneratedReader)reader).ReadRoot_InventoryCollection(); + } + } + + #endregion XML Serialization + } +} -- cgit v1.1