From 2ebc810d72401222bd2fd0e5ab564f85aac104e0 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Mon, 26 Jul 2010 18:01:40 +0000 Subject: [PATCH] * Finished OAR file loading * Small performance optimization in JsonMapper.cs * Added message definitions for new capabilities * Added (currently unused) new enum values * Updated to a more recent version of log4net.dll git-svn-id: http://libopenmetaverse.googlecode.com/svn/libopenmetaverse/trunk@3397 52acb1d6-8a22-11de-b505-999d5b087335 --- .../JSON/JsonMapper.cs | 1812 ++++++++--------- OpenMetaverse/Assets/Archiving/OarFile.cs | 106 +- OpenMetaverse/Assets/AssetTypes/AssetPrim.cs | 122 +- OpenMetaverse/Messages/LindenMessages.cs | 450 +++- OpenMetaverseTypes/Enums.cs | 9 +- OpenMetaverseTypes/EnumsPrimitive.cs | 2 + OpenMetaverseTypes/UtilsConversions.cs | 117 +- bin/log4net.dll | Bin 270336 -> 241664 bytes 8 files changed, 1580 insertions(+), 1038 deletions(-) diff --git a/OpenMetaverse.StructuredData/JSON/JsonMapper.cs b/OpenMetaverse.StructuredData/JSON/JsonMapper.cs index 3240af70..263417e4 100644 --- a/OpenMetaverse.StructuredData/JSON/JsonMapper.cs +++ b/OpenMetaverse.StructuredData/JSON/JsonMapper.cs @@ -1,911 +1,901 @@ -#region Header -/* - * JsonMapper.cs - * JSON to .Net object and object to JSON conversions. - * - * The authors disclaim copyright to this source code. For more details, see - * the COPYING file included with this distribution. - */ -#endregion - - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Reflection; - - -namespace LitJson -{ - internal struct PropertyMetadata - { - public MemberInfo Info; - public bool IsField; - public Type Type; - } - - - internal struct ArrayMetadata - { - private Type element_type; - private bool is_array; - private bool is_list; - - - public Type ElementType { - get { - if (element_type == null) - return typeof (JsonData); - - return element_type; - } - - set { element_type = value; } - } - - public bool IsArray { - get { return is_array; } - set { is_array = value; } - } - - public bool IsList { - get { return is_list; } - set { is_list = value; } - } - } - - - internal struct ObjectMetadata - { - private Type element_type; - private bool is_dictionary; - - private IDictionary properties; - - - public Type ElementType { - get { - if (element_type == null) - return typeof (JsonData); - - return element_type; - } - - set { element_type = value; } - } - - public bool IsDictionary { - get { return is_dictionary; } - set { is_dictionary = value; } - } - - public IDictionary Properties { - get { return properties; } - set { properties = value; } - } - } - - - internal delegate void ExporterFunc (object obj, JsonWriter writer); - public delegate void ExporterFunc (T obj, JsonWriter writer); - - internal delegate object ImporterFunc (object input); - public delegate TValue ImporterFunc (TJson input); - - public delegate IJsonWrapper WrapperFactory (); - - - public class JsonMapper - { - #region Fields - private static int max_nesting_depth; - - private static IFormatProvider datetime_format; - - private static IDictionary base_exporters_table; - private static IDictionary custom_exporters_table; - - private static IDictionary> base_importers_table; - private static IDictionary> custom_importers_table; - - private static IDictionary array_metadata; - private static readonly object array_metadata_lock = new Object (); - - private static IDictionary> conv_ops; - private static readonly object conv_ops_lock = new Object (); - - private static IDictionary object_metadata; - private static readonly object object_metadata_lock = new Object (); - - private static IDictionary> type_properties; - private static readonly object type_properties_lock = new Object (); - - private static JsonWriter static_writer; - private static readonly object static_writer_lock = new Object (); - #endregion - - - #region Constructors - static JsonMapper () - { - max_nesting_depth = 100; - - array_metadata = new Dictionary (); - conv_ops = new Dictionary> (); - object_metadata = new Dictionary (); - type_properties = new Dictionary> (); - - static_writer = new JsonWriter (); - - datetime_format = DateTimeFormatInfo.InvariantInfo; - - base_exporters_table = new Dictionary (); - custom_exporters_table = new Dictionary (); - - base_importers_table = new Dictionary> (); - custom_importers_table = new Dictionary> (); - - RegisterBaseExporters (); - RegisterBaseImporters (); - } - #endregion - - - #region Private Methods - private static void AddArrayMetadata (Type type) - { - if (array_metadata.ContainsKey (type)) - return; - - ArrayMetadata data = new ArrayMetadata (); - - data.IsArray = type.IsArray; - - if (type.GetInterface ("System.Collections.IList") != null) - data.IsList = true; - - foreach (PropertyInfo p_info in type.GetProperties ()) { - if (p_info.Name != "Item") - continue; - - ParameterInfo[] parameters = p_info.GetIndexParameters (); - - if (parameters.Length != 1) - continue; - - if (parameters[0].ParameterType == typeof (int)) - data.ElementType = p_info.PropertyType; - } - - lock (array_metadata_lock) { - try { - array_metadata.Add (type, data); - } catch (ArgumentException) { - return; - } - } - } - - private static void AddObjectMetadata (Type type) - { - if (object_metadata.ContainsKey (type)) - return; - - ObjectMetadata data = new ObjectMetadata (); - - if (type.GetInterface ("System.Collections.IDictionary") != null) - data.IsDictionary = true; - - data.Properties = new Dictionary (); - - foreach (PropertyInfo p_info in type.GetProperties ()) { - if (p_info.Name == "Item") { - ParameterInfo[] parameters = p_info.GetIndexParameters (); - - if (parameters.Length != 1) - continue; - - if (parameters[0].ParameterType == typeof (string)) - data.ElementType = p_info.PropertyType; - - continue; - } - - PropertyMetadata p_data = new PropertyMetadata (); - p_data.Info = p_info; - p_data.Type = p_info.PropertyType; - - data.Properties.Add (p_info.Name, p_data); - } - - foreach (FieldInfo f_info in type.GetFields ()) { - PropertyMetadata p_data = new PropertyMetadata (); - p_data.Info = f_info; - p_data.IsField = true; - p_data.Type = f_info.FieldType; - - data.Properties.Add (f_info.Name, p_data); - } - - lock (object_metadata_lock) { - try { - object_metadata.Add (type, data); - } catch (ArgumentException) { - return; - } - } - } - - private static void AddTypeProperties (Type type) - { - if (type_properties.ContainsKey (type)) - return; - - IList props = new List (); - - foreach (PropertyInfo p_info in type.GetProperties ()) { - if (p_info.Name == "Item") - continue; - - PropertyMetadata p_data = new PropertyMetadata (); - p_data.Info = p_info; - p_data.IsField = false; - props.Add (p_data); - } - - foreach (FieldInfo f_info in type.GetFields ()) { - PropertyMetadata p_data = new PropertyMetadata (); - p_data.Info = f_info; - p_data.IsField = true; - - props.Add (p_data); - } - - lock (type_properties_lock) { - try { - type_properties.Add (type, props); - } catch (ArgumentException) { - return; - } - } - } - - private static MethodInfo GetConvOp (Type t1, Type t2) - { - lock (conv_ops_lock) { - if (! conv_ops.ContainsKey (t1)) - conv_ops.Add (t1, new Dictionary ()); - } - - if (conv_ops[t1].ContainsKey (t2)) - return conv_ops[t1][t2]; - - MethodInfo op = t1.GetMethod ( - "op_Implicit", new Type[] { t2 }); - - lock (conv_ops_lock) { - try { - conv_ops[t1].Add (t2, op); - } catch (ArgumentException) { - return conv_ops[t1][t2]; - } - } - - return op; - } - - private static object ReadValue (Type inst_type, JsonReader reader) - { - reader.Read (); - - if (reader.Token == JsonToken.ArrayEnd) - return null; - - if (reader.Token == JsonToken.Null) { - - if (! inst_type.IsClass) - throw new JsonException (String.Format ( - "Can't assign null to an instance of type {0}", - inst_type)); - - return null; - } - - if (reader.Token == JsonToken.Double || - reader.Token == JsonToken.Int || - reader.Token == JsonToken.Long || - reader.Token == JsonToken.String || - reader.Token == JsonToken.Boolean) { - - Type json_type = reader.Value.GetType (); - - if (inst_type.IsAssignableFrom (json_type)) - return reader.Value; - - // If there's a custom importer that fits, use it - if (custom_importers_table.ContainsKey (json_type) && - custom_importers_table[json_type].ContainsKey ( - inst_type)) { - - ImporterFunc importer = - custom_importers_table[json_type][inst_type]; - - return importer (reader.Value); - } - - // Maybe there's a base importer that works - if (base_importers_table.ContainsKey (json_type) && - base_importers_table[json_type].ContainsKey ( - inst_type)) { - - ImporterFunc importer = - base_importers_table[json_type][inst_type]; - - return importer (reader.Value); - } - - // Maybe it's an enum - if (inst_type.IsEnum) - return Enum.ToObject (inst_type, reader.Value); - - // Try using an implicit conversion operator - MethodInfo conv_op = GetConvOp (inst_type, json_type); - - if (conv_op != null) - return conv_op.Invoke (null, - new object[] { reader.Value }); - - // No luck - throw new JsonException (String.Format ( - "Can't assign value '{0}' (type {1}) to type {2}", - reader.Value, json_type, inst_type)); - } - - object instance = null; - - if (reader.Token == JsonToken.ArrayStart) { - - AddArrayMetadata (inst_type); - ArrayMetadata t_data = array_metadata[inst_type]; - - if (! t_data.IsArray && ! t_data.IsList) - throw new JsonException (String.Format ( - "Type {0} can't act as an array", - inst_type)); - - IList list; - Type elem_type; - - if (! t_data.IsArray) { - list = (IList) Activator.CreateInstance (inst_type); - elem_type = t_data.ElementType; - } else { - list = new ArrayList (); - elem_type = inst_type.GetElementType (); - } - - while (true) { - object item = ReadValue (elem_type, reader); - if (reader.Token == JsonToken.ArrayEnd) - break; - - list.Add (item); - } - - if (t_data.IsArray) { - int n = list.Count; - instance = Array.CreateInstance (elem_type, n); - - for (int i = 0; i < n; i++) - ((Array) instance).SetValue (list[i], i); - } else - instance = list; - - } else if (reader.Token == JsonToken.ObjectStart) { - - AddObjectMetadata (inst_type); - ObjectMetadata t_data = object_metadata[inst_type]; - - instance = Activator.CreateInstance (inst_type); - - while (true) { - reader.Read (); - - if (reader.Token == JsonToken.ObjectEnd) - break; - - string property = (string) reader.Value; - - if (t_data.Properties.ContainsKey (property)) { - PropertyMetadata prop_data = - t_data.Properties[property]; - - if (prop_data.IsField) { - ((FieldInfo) prop_data.Info).SetValue ( - instance, ReadValue (prop_data.Type, reader)); - } else { - PropertyInfo p_info = - (PropertyInfo) prop_data.Info; - - if (p_info.CanWrite) - p_info.SetValue ( - instance, - ReadValue (prop_data.Type, reader), - null); - else - ReadValue (prop_data.Type, reader); - } - - } else { - if (! t_data.IsDictionary) - throw new JsonException (String.Format ( - "The type {0} doesn't have the " + - "property '{1}'", inst_type, property)); - - ((IDictionary) instance).Add ( - property, ReadValue ( - t_data.ElementType, reader)); - } - - } - - } - - return instance; - } - - private static IJsonWrapper ReadValue (WrapperFactory factory, - JsonReader reader) - { - reader.Read (); - - if (reader.Token == JsonToken.ArrayEnd || - reader.Token == JsonToken.Null) - return null; - - IJsonWrapper instance = factory (); - - if (reader.Token == JsonToken.String) { - instance.SetString ((string) reader.Value); - return instance; - } - - if (reader.Token == JsonToken.Double) { - instance.SetDouble ((double) reader.Value); - return instance; - } - - if (reader.Token == JsonToken.Int) { - instance.SetInt ((int) reader.Value); - return instance; - } - - if (reader.Token == JsonToken.Long) { - instance.SetLong ((long) reader.Value); - return instance; - } - - if (reader.Token == JsonToken.Boolean) { - instance.SetBoolean ((bool) reader.Value); - return instance; - } - - if (reader.Token == JsonToken.ArrayStart) { - instance.SetJsonType (JsonType.Array); - - while (true) { - IJsonWrapper item = ReadValue (factory, reader); - if (reader.Token == JsonToken.ArrayEnd) - break; - - ((IList) instance).Add (item); - } - } - else if (reader.Token == JsonToken.ObjectStart) { - instance.SetJsonType (JsonType.Object); - - while (true) { - reader.Read (); - - if (reader.Token == JsonToken.ObjectEnd) - break; - - string property = (string) reader.Value; - - ((IDictionary) instance)[property] = ReadValue ( - factory, reader); - } - - } - - return instance; - } - - private static void RegisterBaseExporters () - { - base_exporters_table[typeof (byte)] = - delegate (object obj, JsonWriter writer) { - writer.Write (Convert.ToInt32 ((byte) obj)); - }; - - base_exporters_table[typeof (char)] = - delegate (object obj, JsonWriter writer) { - writer.Write (Convert.ToString ((char) obj)); - }; - - base_exporters_table[typeof (DateTime)] = - delegate (object obj, JsonWriter writer) { - writer.Write (Convert.ToString ((DateTime) obj, - datetime_format)); - }; - - base_exporters_table[typeof (decimal)] = - delegate (object obj, JsonWriter writer) { - writer.Write ((decimal) obj); - }; - - base_exporters_table[typeof (sbyte)] = - delegate (object obj, JsonWriter writer) { - writer.Write (Convert.ToInt32 ((sbyte) obj)); - }; - - base_exporters_table[typeof (short)] = - delegate (object obj, JsonWriter writer) { - writer.Write (Convert.ToInt32 ((short) obj)); - }; - - base_exporters_table[typeof (ushort)] = - delegate (object obj, JsonWriter writer) { - writer.Write (Convert.ToInt32 ((ushort) obj)); - }; - - base_exporters_table[typeof (uint)] = - delegate (object obj, JsonWriter writer) { - writer.Write (Convert.ToUInt64 ((uint) obj)); - }; - - base_exporters_table[typeof (ulong)] = - delegate (object obj, JsonWriter writer) { - writer.Write ((ulong) obj); - }; - } - - private static void RegisterBaseImporters () - { - ImporterFunc importer; - - importer = delegate (object input) { - return Convert.ToByte ((int) input); - }; - RegisterImporter (base_importers_table, typeof (int), - typeof (byte), importer); - - importer = delegate (object input) { - return Convert.ToUInt64 ((int) input); - }; - RegisterImporter (base_importers_table, typeof (int), - typeof (ulong), importer); - - importer = delegate (object input) { - return Convert.ToSByte ((int) input); - }; - RegisterImporter (base_importers_table, typeof (int), - typeof (sbyte), importer); - - importer = delegate (object input) { - return Convert.ToInt16 ((int) input); - }; - RegisterImporter (base_importers_table, typeof (int), - typeof (short), importer); - - importer = delegate (object input) { - return Convert.ToUInt16 ((int) input); - }; - RegisterImporter (base_importers_table, typeof (int), - typeof (ushort), importer); - - importer = delegate (object input) { - return Convert.ToUInt32 ((int) input); - }; - RegisterImporter (base_importers_table, typeof (int), - typeof (uint), importer); - - importer = delegate (object input) { - return Convert.ToSingle ((int) input); - }; - RegisterImporter (base_importers_table, typeof (int), - typeof (float), importer); - - importer = delegate (object input) { - return Convert.ToDouble ((int) input); - }; - RegisterImporter (base_importers_table, typeof (int), - typeof (double), importer); - - importer = delegate (object input) { - return Convert.ToDecimal ((double) input); - }; - RegisterImporter (base_importers_table, typeof (double), - typeof (decimal), importer); - - - importer = delegate (object input) { - return Convert.ToUInt32 ((long) input); - }; - RegisterImporter (base_importers_table, typeof (long), - typeof (uint), importer); - - importer = delegate (object input) { - return Convert.ToChar ((string) input); - }; - RegisterImporter (base_importers_table, typeof (string), - typeof (char), importer); - - importer = delegate (object input) { - return Convert.ToDateTime ((string) input, datetime_format); - }; - RegisterImporter (base_importers_table, typeof (string), - typeof (DateTime), importer); - } - - private static void RegisterImporter ( - IDictionary> table, - Type json_type, Type value_type, ImporterFunc importer) - { - if (! table.ContainsKey (json_type)) - table.Add (json_type, new Dictionary ()); - - table[json_type][value_type] = importer; - } - - private static void WriteValue (object obj, JsonWriter writer, - bool writer_is_private, - int depth) - { - if (depth > max_nesting_depth) - throw new JsonException ( - String.Format ("Max allowed object depth reached while " + - "trying to export from type {0}", - obj.GetType ())); - - if (obj == null) { - writer.Write (null); - return; - } - - if (obj is IJsonWrapper) { - if (writer_is_private) - writer.TextWriter.Write (((IJsonWrapper) obj).ToJson ()); - else - ((IJsonWrapper) obj).ToJson (writer); - - return; - } - - if (obj is String) { - writer.Write ((string) obj); - return; - } - - if (obj is Double) { - writer.Write ((double) obj); - return; - } - - if (obj is Int32) { - writer.Write ((int) obj); - return; - } - - if (obj is Boolean) { - writer.Write ((bool) obj); - return; - } - - if (obj is Int64) { - writer.Write ((long) obj); - return; - } - - if (obj is Array) { - writer.WriteArrayStart (); - - foreach (object elem in (Array) obj) - WriteValue (elem, writer, writer_is_private, depth + 1); - - writer.WriteArrayEnd (); - - return; - } - - if (obj is IList) { - writer.WriteArrayStart (); - foreach (object elem in (IList) obj) - WriteValue (elem, writer, writer_is_private, depth + 1); - writer.WriteArrayEnd (); - - return; - } - - if (obj is IDictionary) { - writer.WriteObjectStart (); - foreach (DictionaryEntry entry in (IDictionary) obj) { - writer.WritePropertyName ((string) entry.Key); - WriteValue (entry.Value, writer, writer_is_private, - depth + 1); - } - writer.WriteObjectEnd (); - - return; - } - - Type obj_type = obj.GetType (); - - // See if there's a custom exporter for the object - if (custom_exporters_table.ContainsKey (obj_type)) { - ExporterFunc exporter = custom_exporters_table[obj_type]; - exporter (obj, writer); - - return; - } - - // If not, maybe there's a base exporter - if (base_exporters_table.ContainsKey (obj_type)) { - ExporterFunc exporter = base_exporters_table[obj_type]; - exporter (obj, writer); - - return; - } - - // Last option, let's see if it's an enum - if (obj is Enum) { - Type e_type = Enum.GetUnderlyingType (obj_type); - - if (e_type == typeof (long) - || e_type == typeof (uint) - || e_type == typeof (ulong)) - writer.Write ((ulong) obj); - else - writer.Write ((int) obj); - - return; - } - - // Okay, so it looks like the input should be exported as an - // object - AddTypeProperties (obj_type); - IList props = type_properties[obj_type]; - - writer.WriteObjectStart (); - foreach (PropertyMetadata p_data in props) { - if (p_data.IsField) { - writer.WritePropertyName (p_data.Info.Name); - WriteValue (((FieldInfo) p_data.Info).GetValue (obj), - writer, writer_is_private, depth + 1); - } - else { - PropertyInfo p_info = (PropertyInfo) p_data.Info; - - if (p_info.CanRead) { - writer.WritePropertyName (p_data.Info.Name); - WriteValue (p_info.GetValue (obj, null), - writer, writer_is_private, depth + 1); - } - } - } - writer.WriteObjectEnd (); - } - #endregion - - - public static string ToJson (object obj) - { - lock (static_writer_lock) { - static_writer.Reset (); - - WriteValue (obj, static_writer, true, 0); - - return static_writer.ToString (); - } - } - - public static void ToJson (object obj, JsonWriter writer) - { - WriteValue (obj, writer, false, 0); - } - - public static JsonData ToObject (JsonReader reader) - { - return (JsonData) ToWrapper ( - delegate { return new JsonData (); }, reader); - } - - public static JsonData ToObject (TextReader reader) - { - JsonReader json_reader = new JsonReader (reader); - - return (JsonData) ToWrapper ( - delegate { return new JsonData (); }, json_reader); - } - - public static JsonData ToObject (string json) - { - return (JsonData) ToWrapper ( - delegate { return new JsonData (); }, json); - } - - public static T ToObject (JsonReader reader) - { - return (T) ReadValue (typeof (T), reader); - } - - public static T ToObject (TextReader reader) - { - JsonReader json_reader = new JsonReader (reader); - - return (T) ReadValue (typeof (T), json_reader); - } - - public static T ToObject (string json) - { - JsonReader reader = new JsonReader (json); - - return (T) ReadValue (typeof (T), reader); - } - - public static IJsonWrapper ToWrapper (WrapperFactory factory, - JsonReader reader) - { - return ReadValue (factory, reader); - } - - public static IJsonWrapper ToWrapper (WrapperFactory factory, - string json) - { - JsonReader reader = new JsonReader (json); - - return ReadValue (factory, reader); - } - - public static void RegisterExporter (ExporterFunc exporter) - { - ExporterFunc exporter_wrapper = - delegate (object obj, JsonWriter writer) { - exporter ((T) obj, writer); - }; - - custom_exporters_table[typeof (T)] = exporter_wrapper; - } - - public static void RegisterImporter ( - ImporterFunc importer) - { - ImporterFunc importer_wrapper = - delegate (object input) { - return importer ((TJson) input); - }; - - RegisterImporter (custom_importers_table, typeof (TJson), - typeof (TValue), importer_wrapper); - } - - public static void UnregisterExporters () - { - custom_exporters_table.Clear (); - } - - public static void UnregisterImporters () - { - custom_importers_table.Clear (); - } - } -} +#region Header +/* + * JsonMapper.cs + * JSON to .Net object and object to JSON conversions. + * + * The authors disclaim copyright to this source code. For more details, see + * the COPYING file included with this distribution. + */ +#endregion + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Reflection; + + +namespace LitJson +{ + internal struct PropertyMetadata + { + public MemberInfo Info; + public bool IsField; + public Type Type; + } + + + internal struct ArrayMetadata + { + private Type element_type; + private bool is_array; + private bool is_list; + + + public Type ElementType { + get { + if (element_type == null) + return typeof (JsonData); + + return element_type; + } + + set { element_type = value; } + } + + public bool IsArray { + get { return is_array; } + set { is_array = value; } + } + + public bool IsList { + get { return is_list; } + set { is_list = value; } + } + } + + + internal struct ObjectMetadata + { + private Type element_type; + private bool is_dictionary; + + private IDictionary properties; + + + public Type ElementType { + get { + if (element_type == null) + return typeof (JsonData); + + return element_type; + } + + set { element_type = value; } + } + + public bool IsDictionary { + get { return is_dictionary; } + set { is_dictionary = value; } + } + + public IDictionary Properties { + get { return properties; } + set { properties = value; } + } + } + + + internal delegate void ExporterFunc (object obj, JsonWriter writer); + public delegate void ExporterFunc (T obj, JsonWriter writer); + + internal delegate object ImporterFunc (object input); + public delegate TValue ImporterFunc (TJson input); + + public delegate IJsonWrapper WrapperFactory (); + + + public class JsonMapper + { + #region Fields + private static int max_nesting_depth; + + private static IFormatProvider datetime_format; + + private static IDictionary base_exporters_table; + private static IDictionary custom_exporters_table; + + private static IDictionary> base_importers_table; + private static IDictionary> custom_importers_table; + + private static IDictionary array_metadata; + private static readonly object array_metadata_lock = new Object (); + + private static IDictionary> conv_ops; + private static readonly object conv_ops_lock = new Object (); + + private static IDictionary object_metadata; + private static readonly object object_metadata_lock = new Object (); + + private static IDictionary> type_properties; + private static readonly object type_properties_lock = new Object (); + + private static JsonWriter static_writer; + private static readonly object static_writer_lock = new Object (); + #endregion + + + #region Constructors + static JsonMapper () + { + max_nesting_depth = 100; + + array_metadata = new Dictionary (); + conv_ops = new Dictionary> (); + object_metadata = new Dictionary (); + type_properties = new Dictionary> (); + + static_writer = new JsonWriter (); + + datetime_format = DateTimeFormatInfo.InvariantInfo; + + base_exporters_table = new Dictionary (); + custom_exporters_table = new Dictionary (); + + base_importers_table = new Dictionary> (); + custom_importers_table = new Dictionary> (); + + RegisterBaseExporters (); + RegisterBaseImporters (); + } + #endregion + + + #region Private Methods + private static void AddArrayMetadata (Type type) + { + if (array_metadata.ContainsKey (type)) + return; + + ArrayMetadata data = new ArrayMetadata (); + + data.IsArray = type.IsArray; + + if (type.GetInterface ("System.Collections.IList") != null) + data.IsList = true; + + foreach (PropertyInfo p_info in type.GetProperties ()) { + if (p_info.Name != "Item") + continue; + + ParameterInfo[] parameters = p_info.GetIndexParameters (); + + if (parameters.Length != 1) + continue; + + if (parameters[0].ParameterType == typeof (int)) + data.ElementType = p_info.PropertyType; + } + + lock (array_metadata_lock) { + try { + array_metadata.Add (type, data); + } catch (ArgumentException) { + return; + } + } + } + + private static void AddObjectMetadata (Type type) + { + if (object_metadata.ContainsKey (type)) + return; + + ObjectMetadata data = new ObjectMetadata (); + + if (type.GetInterface ("System.Collections.IDictionary") != null) + data.IsDictionary = true; + + data.Properties = new Dictionary (); + + foreach (PropertyInfo p_info in type.GetProperties ()) { + if (p_info.Name == "Item") { + ParameterInfo[] parameters = p_info.GetIndexParameters (); + + if (parameters.Length != 1) + continue; + + if (parameters[0].ParameterType == typeof (string)) + data.ElementType = p_info.PropertyType; + + continue; + } + + PropertyMetadata p_data = new PropertyMetadata (); + p_data.Info = p_info; + p_data.Type = p_info.PropertyType; + + data.Properties.Add (p_info.Name, p_data); + } + + foreach (FieldInfo f_info in type.GetFields ()) { + PropertyMetadata p_data = new PropertyMetadata (); + p_data.Info = f_info; + p_data.IsField = true; + p_data.Type = f_info.FieldType; + + data.Properties.Add (f_info.Name, p_data); + } + + lock (object_metadata_lock) { + try { + object_metadata.Add (type, data); + } catch (ArgumentException) { + return; + } + } + } + + private static void AddTypeProperties (Type type) + { + if (type_properties.ContainsKey (type)) + return; + + IList props = new List (); + + foreach (PropertyInfo p_info in type.GetProperties ()) { + if (p_info.Name == "Item") + continue; + + PropertyMetadata p_data = new PropertyMetadata (); + p_data.Info = p_info; + p_data.IsField = false; + props.Add (p_data); + } + + foreach (FieldInfo f_info in type.GetFields ()) { + PropertyMetadata p_data = new PropertyMetadata (); + p_data.Info = f_info; + p_data.IsField = true; + + props.Add (p_data); + } + + lock (type_properties_lock) { + try { + type_properties.Add (type, props); + } catch (ArgumentException) { + return; + } + } + } + + private static MethodInfo GetConvOp (Type t1, Type t2) + { + lock (conv_ops_lock) { + if (! conv_ops.ContainsKey (t1)) + conv_ops.Add (t1, new Dictionary ()); + } + + if (conv_ops[t1].ContainsKey (t2)) + return conv_ops[t1][t2]; + + MethodInfo op = t1.GetMethod ( + "op_Implicit", new Type[] { t2 }); + + lock (conv_ops_lock) { + try { + conv_ops[t1].Add (t2, op); + } catch (ArgumentException) { + return conv_ops[t1][t2]; + } + } + + return op; + } + + private static object ReadValue (Type inst_type, JsonReader reader) + { + reader.Read (); + + if (reader.Token == JsonToken.ArrayEnd) + return null; + + if (reader.Token == JsonToken.Null) { + + if (! inst_type.IsClass) + throw new JsonException (String.Format ( + "Can't assign null to an instance of type {0}", + inst_type)); + + return null; + } + + if (reader.Token == JsonToken.Double || + reader.Token == JsonToken.Int || + reader.Token == JsonToken.Long || + reader.Token == JsonToken.String || + reader.Token == JsonToken.Boolean) { + + Type json_type = reader.Value.GetType (); + + if (inst_type.IsAssignableFrom (json_type)) + return reader.Value; + + // If there's a custom importer that fits, use it + if (custom_importers_table.ContainsKey (json_type) && + custom_importers_table[json_type].ContainsKey ( + inst_type)) { + + ImporterFunc importer = + custom_importers_table[json_type][inst_type]; + + return importer (reader.Value); + } + + // Maybe there's a base importer that works + if (base_importers_table.ContainsKey (json_type) && + base_importers_table[json_type].ContainsKey ( + inst_type)) { + + ImporterFunc importer = + base_importers_table[json_type][inst_type]; + + return importer (reader.Value); + } + + // Maybe it's an enum + if (inst_type.IsEnum) + return Enum.ToObject (inst_type, reader.Value); + + // Try using an implicit conversion operator + MethodInfo conv_op = GetConvOp (inst_type, json_type); + + if (conv_op != null) + return conv_op.Invoke (null, + new object[] { reader.Value }); + + // No luck + throw new JsonException (String.Format ( + "Can't assign value '{0}' (type {1}) to type {2}", + reader.Value, json_type, inst_type)); + } + + object instance = null; + + if (reader.Token == JsonToken.ArrayStart) { + + AddArrayMetadata (inst_type); + ArrayMetadata t_data = array_metadata[inst_type]; + + if (! t_data.IsArray && ! t_data.IsList) + throw new JsonException (String.Format ( + "Type {0} can't act as an array", + inst_type)); + + IList list; + Type elem_type; + + if (! t_data.IsArray) { + list = (IList) Activator.CreateInstance (inst_type); + elem_type = t_data.ElementType; + } else { + list = new ArrayList (); + elem_type = inst_type.GetElementType (); + } + + while (true) { + object item = ReadValue (elem_type, reader); + if (reader.Token == JsonToken.ArrayEnd) + break; + + list.Add (item); + } + + if (t_data.IsArray) { + int n = list.Count; + instance = Array.CreateInstance (elem_type, n); + + for (int i = 0; i < n; i++) + ((Array) instance).SetValue (list[i], i); + } else + instance = list; + + } else if (reader.Token == JsonToken.ObjectStart) { + + AddObjectMetadata (inst_type); + ObjectMetadata t_data = object_metadata[inst_type]; + + instance = Activator.CreateInstance (inst_type); + + while (true) { + reader.Read (); + + if (reader.Token == JsonToken.ObjectEnd) + break; + + string property = (string) reader.Value; + + if (t_data.Properties.ContainsKey (property)) { + PropertyMetadata prop_data = + t_data.Properties[property]; + + if (prop_data.IsField) { + ((FieldInfo) prop_data.Info).SetValue ( + instance, ReadValue (prop_data.Type, reader)); + } else { + PropertyInfo p_info = + (PropertyInfo) prop_data.Info; + + if (p_info.CanWrite) + p_info.SetValue ( + instance, + ReadValue (prop_data.Type, reader), + null); + else + ReadValue (prop_data.Type, reader); + } + + } else { + if (! t_data.IsDictionary) + throw new JsonException (String.Format ( + "The type {0} doesn't have the " + + "property '{1}'", inst_type, property)); + + ((IDictionary) instance).Add ( + property, ReadValue ( + t_data.ElementType, reader)); + } + + } + + } + + return instance; + } + + private static IJsonWrapper ReadValue (WrapperFactory factory, + JsonReader reader) + { + reader.Read (); + + if (reader.Token == JsonToken.ArrayEnd || + reader.Token == JsonToken.Null) + return null; + + IJsonWrapper instance = factory (); + + switch (reader.Token) + { + case JsonToken.String: + instance.SetString ((string) reader.Value); + break; + case JsonToken.Double: + instance.SetDouble ((double) reader.Value); + break; + case JsonToken.Int: + instance.SetInt ((int) reader.Value); + break; + case JsonToken.Long: + instance.SetLong ((long) reader.Value); + break; + case JsonToken.Boolean: + instance.SetBoolean ((bool) reader.Value); + break; + case JsonToken.ArrayStart: + instance.SetJsonType (JsonType.Array); + + while (true) { + IJsonWrapper item = ReadValue (factory, reader); + if (reader.Token == JsonToken.ArrayEnd) + break; + + ((IList) instance).Add (item); + } + break; + case JsonToken.ObjectStart: + instance.SetJsonType (JsonType.Object); + + while (true) { + reader.Read (); + if (reader.Token == JsonToken.ObjectEnd) + break; + + string property = (string) reader.Value; + ((IDictionary) instance)[property] = ReadValue ( + factory, reader); + } + break; + } + + return instance; + } + + private static void RegisterBaseExporters () + { + base_exporters_table[typeof (byte)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToInt32 ((byte) obj)); + }; + + base_exporters_table[typeof (char)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToString ((char) obj)); + }; + + base_exporters_table[typeof (DateTime)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToString ((DateTime) obj, + datetime_format)); + }; + + base_exporters_table[typeof (decimal)] = + delegate (object obj, JsonWriter writer) { + writer.Write ((decimal) obj); + }; + + base_exporters_table[typeof (sbyte)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToInt32 ((sbyte) obj)); + }; + + base_exporters_table[typeof (short)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToInt32 ((short) obj)); + }; + + base_exporters_table[typeof (ushort)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToInt32 ((ushort) obj)); + }; + + base_exporters_table[typeof (uint)] = + delegate (object obj, JsonWriter writer) { + writer.Write (Convert.ToUInt64 ((uint) obj)); + }; + + base_exporters_table[typeof (ulong)] = + delegate (object obj, JsonWriter writer) { + writer.Write ((ulong) obj); + }; + } + + private static void RegisterBaseImporters () + { + ImporterFunc importer; + + importer = delegate (object input) { + return Convert.ToByte ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (byte), importer); + + importer = delegate (object input) { + return Convert.ToUInt64 ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (ulong), importer); + + importer = delegate (object input) { + return Convert.ToSByte ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (sbyte), importer); + + importer = delegate (object input) { + return Convert.ToInt16 ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (short), importer); + + importer = delegate (object input) { + return Convert.ToUInt16 ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (ushort), importer); + + importer = delegate (object input) { + return Convert.ToUInt32 ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (uint), importer); + + importer = delegate (object input) { + return Convert.ToSingle ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (float), importer); + + importer = delegate (object input) { + return Convert.ToDouble ((int) input); + }; + RegisterImporter (base_importers_table, typeof (int), + typeof (double), importer); + + importer = delegate (object input) { + return Convert.ToDecimal ((double) input); + }; + RegisterImporter (base_importers_table, typeof (double), + typeof (decimal), importer); + + + importer = delegate (object input) { + return Convert.ToUInt32 ((long) input); + }; + RegisterImporter (base_importers_table, typeof (long), + typeof (uint), importer); + + importer = delegate (object input) { + return Convert.ToChar ((string) input); + }; + RegisterImporter (base_importers_table, typeof (string), + typeof (char), importer); + + importer = delegate (object input) { + return Convert.ToDateTime ((string) input, datetime_format); + }; + RegisterImporter (base_importers_table, typeof (string), + typeof (DateTime), importer); + } + + private static void RegisterImporter ( + IDictionary> table, + Type json_type, Type value_type, ImporterFunc importer) + { + if (! table.ContainsKey (json_type)) + table.Add (json_type, new Dictionary ()); + + table[json_type][value_type] = importer; + } + + private static void WriteValue (object obj, JsonWriter writer, + bool writer_is_private, + int depth) + { + if (depth > max_nesting_depth) + throw new JsonException ( + String.Format ("Max allowed object depth reached while " + + "trying to export from type {0}", + obj.GetType ())); + + if (obj == null) { + writer.Write (null); + return; + } + + if (obj is IJsonWrapper) { + if (writer_is_private) + writer.TextWriter.Write (((IJsonWrapper) obj).ToJson ()); + else + ((IJsonWrapper) obj).ToJson (writer); + + return; + } + + if (obj is String) { + writer.Write ((string) obj); + return; + } + + if (obj is Double) { + writer.Write ((double) obj); + return; + } + + if (obj is Int32) { + writer.Write ((int) obj); + return; + } + + if (obj is Boolean) { + writer.Write ((bool) obj); + return; + } + + if (obj is Int64) { + writer.Write ((long) obj); + return; + } + + if (obj is Array) { + writer.WriteArrayStart (); + + foreach (object elem in (Array) obj) + WriteValue (elem, writer, writer_is_private, depth + 1); + + writer.WriteArrayEnd (); + + return; + } + + if (obj is IList) { + writer.WriteArrayStart (); + foreach (object elem in (IList) obj) + WriteValue (elem, writer, writer_is_private, depth + 1); + writer.WriteArrayEnd (); + + return; + } + + if (obj is IDictionary) { + writer.WriteObjectStart (); + foreach (DictionaryEntry entry in (IDictionary) obj) { + writer.WritePropertyName ((string) entry.Key); + WriteValue (entry.Value, writer, writer_is_private, + depth + 1); + } + writer.WriteObjectEnd (); + + return; + } + + Type obj_type = obj.GetType (); + + // See if there's a custom exporter for the object + if (custom_exporters_table.ContainsKey (obj_type)) { + ExporterFunc exporter = custom_exporters_table[obj_type]; + exporter (obj, writer); + + return; + } + + // If not, maybe there's a base exporter + if (base_exporters_table.ContainsKey (obj_type)) { + ExporterFunc exporter = base_exporters_table[obj_type]; + exporter (obj, writer); + + return; + } + + // Last option, let's see if it's an enum + if (obj is Enum) { + Type e_type = Enum.GetUnderlyingType (obj_type); + + if (e_type == typeof (long) + || e_type == typeof (uint) + || e_type == typeof (ulong)) + writer.Write ((ulong) obj); + else + writer.Write ((int) obj); + + return; + } + + // Okay, so it looks like the input should be exported as an + // object + AddTypeProperties (obj_type); + IList props = type_properties[obj_type]; + + writer.WriteObjectStart (); + foreach (PropertyMetadata p_data in props) { + if (p_data.IsField) { + writer.WritePropertyName (p_data.Info.Name); + WriteValue (((FieldInfo) p_data.Info).GetValue (obj), + writer, writer_is_private, depth + 1); + } + else { + PropertyInfo p_info = (PropertyInfo) p_data.Info; + + if (p_info.CanRead) { + writer.WritePropertyName (p_data.Info.Name); + WriteValue (p_info.GetValue (obj, null), + writer, writer_is_private, depth + 1); + } + } + } + writer.WriteObjectEnd (); + } + #endregion + + + public static string ToJson (object obj) + { + lock (static_writer_lock) { + static_writer.Reset (); + + WriteValue (obj, static_writer, true, 0); + + return static_writer.ToString (); + } + } + + public static void ToJson (object obj, JsonWriter writer) + { + WriteValue (obj, writer, false, 0); + } + + public static JsonData ToObject (JsonReader reader) + { + return (JsonData) ToWrapper ( + delegate { return new JsonData (); }, reader); + } + + public static JsonData ToObject (TextReader reader) + { + JsonReader json_reader = new JsonReader (reader); + + return (JsonData) ToWrapper ( + delegate { return new JsonData (); }, json_reader); + } + + public static JsonData ToObject (string json) + { + return (JsonData) ToWrapper ( + delegate { return new JsonData (); }, json); + } + + public static T ToObject (JsonReader reader) + { + return (T) ReadValue (typeof (T), reader); + } + + public static T ToObject (TextReader reader) + { + JsonReader json_reader = new JsonReader (reader); + + return (T) ReadValue (typeof (T), json_reader); + } + + public static T ToObject (string json) + { + JsonReader reader = new JsonReader (json); + + return (T) ReadValue (typeof (T), reader); + } + + public static IJsonWrapper ToWrapper (WrapperFactory factory, + JsonReader reader) + { + return ReadValue (factory, reader); + } + + public static IJsonWrapper ToWrapper (WrapperFactory factory, + string json) + { + JsonReader reader = new JsonReader (json); + + return ReadValue (factory, reader); + } + + public static void RegisterExporter (ExporterFunc exporter) + { + ExporterFunc exporter_wrapper = + delegate (object obj, JsonWriter writer) { + exporter ((T) obj, writer); + }; + + custom_exporters_table[typeof (T)] = exporter_wrapper; + } + + public static void RegisterImporter ( + ImporterFunc importer) + { + ImporterFunc importer_wrapper = + delegate (object input) { + return importer ((TJson) input); + }; + + RegisterImporter (custom_importers_table, typeof (TJson), + typeof (TValue), importer_wrapper); + } + + public static void UnregisterExporters () + { + custom_exporters_table.Clear (); + } + + public static void UnregisterImporters () + { + custom_importers_table.Clear (); + } + } +} diff --git a/OpenMetaverse/Assets/Archiving/OarFile.cs b/OpenMetaverse/Assets/Archiving/OarFile.cs index 727ec4ff..fabac890 100644 --- a/OpenMetaverse/Assets/Archiving/OarFile.cs +++ b/OpenMetaverse/Assets/Archiving/OarFile.cs @@ -36,53 +36,57 @@ namespace OpenMetaverse.Assets { public static class OarFile { - public delegate void AssetLoadedCallback(Asset asset); - public delegate void TerrainLoadedCallback(float[,] terrain); + public delegate void AssetLoadedCallback(Asset asset, long bytesRead, long totalBytes); + public delegate void TerrainLoadedCallback(float[,] terrain, long bytesRead, long totalBytes); + public delegate void SceneObjectLoadedCallback(AssetPrim linkset, long bytesRead, long totalBytes); #region Archive Loading - public static void UnpackageArchive(string filename, AssetLoadedCallback assetCallback, TerrainLoadedCallback terrainCallback) + public static void UnpackageArchive(string filename, AssetLoadedCallback assetCallback, TerrainLoadedCallback terrainCallback, SceneObjectLoadedCallback objectCallback) { int successfulAssetRestores = 0; int failedAssetRestores = 0; - List serialisedSceneObjects = new List(); try { - using (Stream loadStream = new GZipStream(new FileStream(filename, FileMode.Open, FileAccess.Read), CompressionMode.Decompress)) + using (FileStream fileStream = new FileStream(filename, FileMode.Open, FileAccess.Read)) { - TarArchiveReader archive = new TarArchiveReader(loadStream); - - string filePath = "ERROR"; - - byte[] data; - TarArchiveReader.TarEntryType entryType; - - while ((data = archive.ReadEntry(out filePath, out entryType)) != null) + using (GZipStream loadStream = new GZipStream(fileStream, CompressionMode.Decompress)) { - if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) - { - serialisedSceneObjects.Add(data); - } - else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) - { - if (LoadAsset(filePath, data, assetCallback)) - successfulAssetRestores++; - else - failedAssetRestores++; - } - else if (filePath.StartsWith(ArchiveConstants.TERRAINS_PATH)) - { - LoadTerrain(filePath, data, terrainCallback); - } - else if (filePath.StartsWith(ArchiveConstants.SETTINGS_PATH)) - { - // FIXME: Support this - //LoadRegionSettings(filePath, data); - } - } + TarArchiveReader archive = new TarArchiveReader(loadStream); - archive.Close(); + string filePath = "ERROR"; + + byte[] data; + TarArchiveReader.TarEntryType entryType; + + while ((data = archive.ReadEntry(out filePath, out entryType)) != null) + { + if (filePath.StartsWith(ArchiveConstants.OBJECTS_PATH)) + { + // Deserialize the XML bytes + LoadObjects(data, objectCallback, fileStream.Position, fileStream.Length); + } + else if (filePath.StartsWith(ArchiveConstants.ASSETS_PATH)) + { + if (LoadAsset(filePath, data, assetCallback, fileStream.Position, fileStream.Length)) + successfulAssetRestores++; + else + failedAssetRestores++; + } + else if (filePath.StartsWith(ArchiveConstants.TERRAINS_PATH)) + { + LoadTerrain(filePath, data, terrainCallback, fileStream.Position, fileStream.Length); + } + else if (filePath.StartsWith(ArchiveConstants.SETTINGS_PATH)) + { + // FIXME: Support this + //LoadRegionSettings(filePath, data); + } + } + + archive.Close(); + } } } catch (Exception e) @@ -93,17 +97,9 @@ namespace OpenMetaverse.Assets if (failedAssetRestores > 0) Logger.Log(String.Format("[OarFile]: Failed to load {0} assets", failedAssetRestores), Helpers.LogLevel.Warning); - - for (int i = 0; i < serialisedSceneObjects.Count; i++) - { - byte[] objectData = serialisedSceneObjects[i]; - - // Deserialize the XML bytes - LoadObjects(objectData, assetCallback); - } } - private static bool LoadAsset(string assetPath, byte[] data, AssetLoadedCallback assetCallback) + private static bool LoadAsset(string assetPath, byte[] data, AssetLoadedCallback assetCallback, long bytesRead, long totalBytes) { // Right now we're nastily obtaining the UUID from the filename string filename = assetPath.Remove(0, ArchiveConstants.ASSETS_PATH.Length); @@ -137,6 +133,12 @@ namespace OpenMetaverse.Assets case AssetType.Clothing: asset = new AssetClothing(uuid, data); break; + case AssetType.Gesture: + asset = new AssetGesture(uuid, data); + break; + case AssetType.Landmark: + asset = new AssetLandmark(uuid, data); + break; case AssetType.LSLBytecode: asset = new AssetScriptBinary(uuid, data); break; @@ -146,6 +148,9 @@ namespace OpenMetaverse.Assets case AssetType.Notecard: asset = new AssetNotecard(uuid, data); break; + case AssetType.Object: + asset = new AssetPrim(uuid, data); + break; case AssetType.Sound: asset = new AssetSound(uuid, data); break; @@ -159,7 +164,7 @@ namespace OpenMetaverse.Assets if (asset != null) { - assetCallback(asset); + assetCallback(asset, bytesRead, totalBytes); return true; } } @@ -168,7 +173,7 @@ namespace OpenMetaverse.Assets return false; } - private static bool LoadTerrain(string filePath, byte[] data, TerrainLoadedCallback terrainCallback) + private static bool LoadTerrain(string filePath, byte[] data, TerrainLoadedCallback terrainCallback, long bytesRead, long totalBytes) { float[,] terrain = new float[256, 256]; bool loaded = false; @@ -220,14 +225,13 @@ namespace OpenMetaverse.Assets } if (loaded) - terrainCallback(terrain); + terrainCallback(terrain, bytesRead, totalBytes); return loaded; } - private static void LoadObjects(byte[] objectData, AssetLoadedCallback assetCallback) + private static void LoadObjects(byte[] objectData, SceneObjectLoadedCallback objectCallback, long bytesRead, long totalBytes) { - // TODO: If we can get by without XmlDocument it will fix the memory problems when loading large XML files XmlDocument doc = new XmlDocument(); using (XmlTextReader reader = new XmlTextReader(new MemoryStream(objectData))) @@ -244,14 +248,14 @@ namespace OpenMetaverse.Assets { AssetPrim linkset = new AssetPrim(node.OuterXml); if (linkset != null) - assetCallback(linkset); + objectCallback(linkset, bytesRead, totalBytes); } } else { AssetPrim linkset = new AssetPrim(rootNode.OuterXml); if (linkset != null) - assetCallback(linkset); + objectCallback(linkset, bytesRead, totalBytes); } } diff --git a/OpenMetaverse/Assets/AssetTypes/AssetPrim.cs b/OpenMetaverse/Assets/AssetTypes/AssetPrim.cs index 61a9962a..77c7bd81 100644 --- a/OpenMetaverse/Assets/AssetTypes/AssetPrim.cs +++ b/OpenMetaverse/Assets/AssetTypes/AssetPrim.cs @@ -60,6 +60,13 @@ namespace OpenMetaverse.Assets /// Initializes a new instance of an AssetPrim object public AssetPrim() { } + /// + /// Initializes a new instance of an AssetPrim object + /// + /// A unique specific to this asset + /// A byte array containing the raw asset data + public AssetPrim(UUID assetID, byte[] assetData) : base(assetID, assetData) { } + public AssetPrim(string xmlData) { DecodeXml(xmlData); @@ -79,7 +86,7 @@ namespace OpenMetaverse.Assets /// public override void Encode() { - // FIXME: + AssetData = System.Text.Encoding.UTF8.GetBytes(EncodeXml()); } /// @@ -88,7 +95,17 @@ namespace OpenMetaverse.Assets /// public override bool Decode() { - // FIXME: + if (AssetData != null && AssetData.Length > 0) + { + try + { + string xmlData = System.Text.Encoding.UTF8.GetString(AssetData); + DecodeXml(xmlData); + return true; + } + catch { } + } + return false; } @@ -168,10 +185,49 @@ namespace OpenMetaverse.Assets obj.CreatorID = ReadUUID(reader, "CreatorID"); obj.FolderID = ReadUUID(reader, "FolderID"); obj.Inventory.Serial = reader.ReadElementContentAsInt("InventorySerial", String.Empty); - - // FIXME: Parse TaskInventory - obj.Inventory.Items = new PrimObject.InventoryBlock.ItemBlock[0]; - reader.ReadInnerXml(); + + #region Task Inventory + + List invItems = new List(); + + reader.ReadStartElement("TaskInventory", String.Empty); + while (reader.Name == "TaskInventoryItem") + { + PrimObject.InventoryBlock.ItemBlock item = new PrimObject.InventoryBlock.ItemBlock(); + reader.ReadStartElement("TaskInventoryItem", String.Empty); + + item.AssetID = ReadUUID(reader, "AssetID"); + item.PermsBase = (uint)reader.ReadElementContentAsInt("BasePermissions", String.Empty); + item.CreationDate = Utils.UnixTimeToDateTime((uint)reader.ReadElementContentAsInt("CreationDate", String.Empty)); + item.CreatorID = ReadUUID(reader, "CreatorID"); + item.Description = reader.ReadElementContentAsString("Description", String.Empty); + item.PermsEveryone = (uint)reader.ReadElementContentAsInt("EveryonePermissions", String.Empty); + item.Flags = reader.ReadElementContentAsInt("Flags", String.Empty); + item.GroupID = ReadUUID(reader, "GroupID"); + item.PermsGroup = (uint)reader.ReadElementContentAsInt("GroupPermissions", String.Empty); + item.InvType = (InventoryType)reader.ReadElementContentAsInt("InvType", String.Empty); + item.ID = ReadUUID(reader, "ItemID"); + UUID oldItemID = ReadUUID(reader, "OldItemID"); // TODO: Is this useful? + item.LastOwnerID = ReadUUID(reader, "LastOwnerID"); + item.Name = reader.ReadElementContentAsString("Name", String.Empty); + item.PermsNextOwner = (uint)reader.ReadElementContentAsInt("NextPermissions", String.Empty); + item.OwnerID = ReadUUID(reader, "OwnerID"); + item.PermsOwner = (uint)reader.ReadElementContentAsInt("CurrentPermissions", String.Empty); + UUID parentID = ReadUUID(reader, "ParentID"); + UUID parentPartID = ReadUUID(reader, "ParentPartID"); + item.PermsGranterID = ReadUUID(reader, "PermsGranter"); + item.PermsBase = (uint)reader.ReadElementContentAsInt("PermsMask", String.Empty); + item.Type = (AssetType)reader.ReadElementContentAsInt("Type", String.Empty); + + reader.ReadEndElement(); + invItems.Add(item); + } + if (reader.NodeType == XmlNodeType.EndElement) + reader.ReadEndElement(); + + obj.Inventory.Items = invItems.ToArray(); + + #endregion Task Inventory PrimFlags flags = (PrimFlags)reader.ReadElementContentAsInt("ObjectFlags", String.Empty); obj.UsePhysics = (flags & PrimFlags.Physics) != 0; @@ -185,16 +241,20 @@ namespace OpenMetaverse.Assets obj.LocalID = (uint)reader.ReadElementContentAsLong("LocalId", String.Empty); obj.Name = reader.ReadElementString("Name"); obj.Material = reader.ReadElementContentAsInt("Material", String.Empty); - - reader.ReadInnerXml(); // RegionHandle + if (reader.Name == "PassTouches") + obj.PassTouches = reader.ReadElementContentAsBoolean("PassTouches", String.Empty); + else + obj.PassTouches = false; + + obj.RegionHandle = (ulong)reader.ReadElementContentAsLong("RegionHandle", String.Empty); obj.RemoteScriptAccessPIN = reader.ReadElementContentAsInt("ScriptAccessPin", String.Empty); - Vector3 groupPosition = ReadVector(reader, "GroupPosition"); Vector3 offsetPosition = ReadVector(reader, "OffsetPosition"); obj.Rotation = ReadQuaternion(reader, "RotationOffset"); obj.Velocity = ReadVector(reader, "Velocity"); - Vector3 rotationalVelocity = ReadVector(reader, "RotationalVelocity"); + if (reader.Name == "RotationalVelocity") + ReadVector(reader, "RotationalVelocity"); obj.AngularVelocity = ReadVector(reader, "AngularVelocity"); obj.Acceleration = ReadVector(reader, "Acceleration"); obj.Description = reader.ReadElementString("Description"); @@ -609,19 +669,20 @@ namespace OpenMetaverse.Assets { public UUID ID; public string Name; - public string OwnerIdentity; - public string CreatorIdentity; - public string GroupIdentity; + public UUID OwnerID; + public UUID CreatorID; + public UUID GroupID; + public UUID LastOwnerID; + public UUID PermsGranterID; public UUID AssetID; - public string ContentType; + public AssetType Type; + public InventoryType InvType; public string Description; public uint PermsBase; public uint PermsOwner; public uint PermsGroup; public uint PermsEveryone; public uint PermsNextOwner; - public int SalePrice; - public int SaleType; public int Flags; public DateTime CreationDate; @@ -630,19 +691,20 @@ namespace OpenMetaverse.Assets OSDMap map = new OSDMap(); map["id"] = OSD.FromUUID(ID); map["name"] = OSD.FromString(Name); - map["owner_identity"] = OSD.FromString(OwnerIdentity); - map["creator_identity"] = OSD.FromString(CreatorIdentity); - map["group_identity"] = OSD.FromString(GroupIdentity); + map["owner_id"] = OSD.FromUUID(OwnerID); + map["creator_id"] = OSD.FromUUID(CreatorID); + map["group_id"] = OSD.FromUUID(GroupID); + map["last_owner_id"] = OSD.FromUUID(LastOwnerID); + map["perms_granter_id"] = OSD.FromUUID(PermsGranterID); map["asset_id"] = OSD.FromUUID(AssetID); - map["content_type"] = OSD.FromString(ContentType); + map["asset_type"] = OSD.FromInteger((int)Type); + map["inv_type"] = OSD.FromInteger((int)InvType); map["description"] = OSD.FromString(Description); map["perms_base"] = OSD.FromInteger(PermsBase); map["perms_owner"] = OSD.FromInteger(PermsOwner); map["perms_group"] = OSD.FromInteger(PermsGroup); map["perms_everyone"] = OSD.FromInteger(PermsEveryone); map["perms_next_owner"] = OSD.FromInteger(PermsNextOwner); - map["sale_price"] = OSD.FromInteger(SalePrice); - map["sale_type"] = OSD.FromInteger(SaleType); map["flags"] = OSD.FromInteger(Flags); map["creation_date"] = OSD.FromDate(CreationDate); return map; @@ -652,19 +714,20 @@ namespace OpenMetaverse.Assets { ID = map["id"].AsUUID(); Name = map["name"].AsString(); - OwnerIdentity = map["owner_identity"].AsString(); - CreatorIdentity = map["creator_identity"].AsString(); - GroupIdentity = map["group_identity"].AsString(); + OwnerID = map["owner_id"].AsUUID(); + CreatorID = map["creator_id"].AsUUID(); + GroupID = map["group_id"].AsUUID(); + LastOwnerID = map["last_owner_id"].AsUUID(); + PermsGranterID = map["perms_granter_id"].AsUUID(); AssetID = map["asset_id"].AsUUID(); - ContentType = map["content_type"].AsString(); + Type = (AssetType)map["asset_type"].AsInteger(); + InvType = (InventoryType)map["inv_type"].AsInteger(); Description = map["description"].AsString(); PermsBase = (uint)map["perms_base"].AsInteger(); PermsOwner = (uint)map["perms_owner"].AsInteger(); PermsGroup = (uint)map["perms_group"].AsInteger(); PermsEveryone = (uint)map["perms_everyone"].AsInteger(); PermsNextOwner = (uint)map["perms_next_owner"].AsInteger(); - SalePrice = map["sale_price"].AsInteger(); - SaleType = map["sale_type"].AsInteger(); Flags = map["flags"].AsInteger(); CreationDate = map["creation_date"].AsDate(); } @@ -748,6 +811,7 @@ namespace OpenMetaverse.Assets public int State; public int PCode; public int Material; + public bool PassTouches; public UUID SoundID; public float SoundGain; public float SoundRadius; @@ -819,6 +883,7 @@ namespace OpenMetaverse.Assets map["state"] = OSD.FromInteger(State); map["prim_code"] = OSD.FromInteger(PCode); map["material"] = OSD.FromInteger(Material); + map["pass_touches"] = OSD.FromBoolean(PassTouches); map["sound_id"] = OSD.FromUUID(SoundID); map["sound_gain"] = OSD.FromReal(SoundGain); map["sound_radius"] = OSD.FromReal(SoundRadius); @@ -897,6 +962,7 @@ namespace OpenMetaverse.Assets State = map["state"].AsInteger(); PCode = map["prim_code"].AsInteger(); Material = map["material"].AsInteger(); + PassTouches = map["pass_touches"].AsBoolean(); SoundID = map["sound_id"].AsUUID(); SoundGain = (float)map["sound_gain"].AsReal(); SoundRadius = (float)map["sound_radius"].AsReal(); diff --git a/OpenMetaverse/Messages/LindenMessages.cs b/OpenMetaverse/Messages/LindenMessages.cs index 27296e21..4c807ef7 100644 --- a/OpenMetaverse/Messages/LindenMessages.cs +++ b/OpenMetaverse/Messages/LindenMessages.cs @@ -1100,13 +1100,16 @@ namespace OpenMetaverse.Messages.Linden #region Inventory Messages - public class NewFileAgentInventoryMessage + public class NewFileAgentInventoryMessage : IMessage { public UUID FolderID; public AssetType AssetType; public InventoryType InventoryType; public string Name; public string Description; + public PermissionMask EveryoneMask; + public PermissionMask GroupMask; + public PermissionMask NextOwnerMask; /// /// Serialize the object @@ -1120,6 +1123,9 @@ namespace OpenMetaverse.Messages.Linden map["inventory_type"] = OSD.FromString(Utils.InventoryTypeToString(InventoryType)); map["name"] = OSD.FromString(Name); map["description"] = OSD.FromString(Description); + map["everyone_mask"] = OSD.FromInteger((int)EveryoneMask); + map["group_mask"] = OSD.FromInteger((int)GroupMask); + map["next_owner_mask"] = OSD.FromInteger((int)NextOwnerMask); return map; } @@ -1135,9 +1141,158 @@ namespace OpenMetaverse.Messages.Linden InventoryType = Utils.StringToInventoryType(map["inventory_type"].AsString()); Name = map["name"].AsString(); Description = map["description"].AsString(); + EveryoneMask = (PermissionMask)map["everyone_mask"].AsInteger(); + GroupMask = (PermissionMask)map["group_mask"].AsInteger(); + NextOwnerMask = (PermissionMask)map["next_owner_mask"].AsInteger(); } } + public class NewFileAgentInventoryReplyMessage : IMessage + { + public string State; + public Uri Uploader; + + public NewFileAgentInventoryReplyMessage() + { + State = "upload"; + } + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(); + map["state"] = OSD.FromString(State); + map["uploader"] = OSD.FromUri(Uploader); + + return map; + } + + public void Deserialize(OSDMap map) + { + State = map["state"].AsString(); + Uploader = map["uploader"].AsUri(); + } + } + + public class NewFileAgentInventoryVariablePriceMessage : IMessage + { + public UUID FolderID; + public AssetType AssetType; + public InventoryType InventoryType; + public string Name; + public string Description; + public PermissionMask EveryoneMask; + public PermissionMask GroupMask; + public PermissionMask NextOwnerMask; + // TODO: asset_resources? + + /// + /// Serialize the object + /// + /// An containing the objects data + public OSDMap Serialize() + { + OSDMap map = new OSDMap(); + map["folder_id"] = OSD.FromUUID(FolderID); + map["asset_type"] = OSD.FromString(Utils.AssetTypeToString(AssetType)); + map["inventory_type"] = OSD.FromString(Utils.InventoryTypeToString(InventoryType)); + map["name"] = OSD.FromString(Name); + map["description"] = OSD.FromString(Description); + map["everyone_mask"] = OSD.FromInteger((int)EveryoneMask); + map["group_mask"] = OSD.FromInteger((int)GroupMask); + map["next_owner_mask"] = OSD.FromInteger((int)NextOwnerMask); + + return map; + } + + /// + /// Deserialize the message + /// + /// An containing the data + public void Deserialize(OSDMap map) + { + FolderID = map["folder_id"].AsUUID(); + AssetType = Utils.StringToAssetType(map["asset_type"].AsString()); + InventoryType = Utils.StringToInventoryType(map["inventory_type"].AsString()); + Name = map["name"].AsString(); + Description = map["description"].AsString(); + EveryoneMask = (PermissionMask)map["everyone_mask"].AsInteger(); + GroupMask = (PermissionMask)map["group_mask"].AsInteger(); + NextOwnerMask = (PermissionMask)map["next_owner_mask"].AsInteger(); + } + } + + public class NewFileAgentInventoryVariablePriceReplyMessage : IMessage + { + public int ResourceCost; + public string State; + public int UploadPrice; + public Uri Rsvp; + + public NewFileAgentInventoryVariablePriceReplyMessage() + { + State = "confirm_upload"; + } + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(); + map["resource_cost"] = OSD.FromInteger(ResourceCost); + map["state"] = OSD.FromString(State); + map["upload_price"] = OSD.FromInteger(UploadPrice); + map["rsvp"] = OSD.FromUri(Rsvp); + + return map; + } + + public void Deserialize(OSDMap map) + { + ResourceCost = map["resource_cost"].AsInteger(); + State = map["state"].AsString(); + UploadPrice = map["upload_price"].AsInteger(); + Rsvp = map["rsvp"].AsUri(); + } + } + + public class NewFileAgentInventoryUploadReplyMessage : IMessage + { + public UUID NewInventoryItem; + public UUID NewAsset; + public string State; + public PermissionMask NewBaseMask; + public PermissionMask NewEveryoneMask; + public PermissionMask NewOwnerMask; + public PermissionMask NewNextOwnerMask; + + public NewFileAgentInventoryUploadReplyMessage() + { + State = "complete"; + } + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(); + map["new_inventory_item"] = OSD.FromUUID(NewInventoryItem); + map["new_asset"] = OSD.FromUUID(NewAsset); + map["state"] = OSD.FromString(State); + map["new_base_mask"] = OSD.FromInteger((int)NewBaseMask); + map["new_everyone_mask"] = OSD.FromInteger((int)NewEveryoneMask); + map["new_owner_mask"] = OSD.FromInteger((int)NewOwnerMask); + map["new_next_owner_mask"] = OSD.FromInteger((int)NewNextOwnerMask); + + return map; + } + + public void Deserialize(OSDMap map) + { + NewInventoryItem = map["new_inventory_item"].AsUUID(); + NewAsset = map["new_asset"].AsUUID(); + State = map["state"].AsString(); + NewBaseMask = (PermissionMask)map["new_base_mask"].AsInteger(); + NewEveryoneMask = (PermissionMask)map["new_everyone_mask"].AsInteger(); + NewOwnerMask = (PermissionMask)map["new_owner_mask"].AsInteger(); + NewNextOwnerMask = (PermissionMask)map["new_next_owner_mask"].AsInteger(); + } + } public class WebFetchInventoryDescendentsMessage : IMessage { @@ -1165,6 +1320,7 @@ namespace OpenMetaverse.Messages.Linden #endregion } + #endregion #region Agent Messages @@ -3685,6 +3841,298 @@ namespace OpenMetaverse.Messages.Linden #endregion + #region Object Messages + + public class UploadObjectAssetMessage : IMessage + { + public class Object + { + public class Face + { + public Bumpiness Bump; + public Color4 Color; + public bool Fullbright; + public float Glow; + public UUID ImageID; + public float ImageRot; + public int MediaFlags; + public float OffsetS; + public float OffsetT; + public float ScaleS; + public float ScaleT; + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(); + map["bump"] = OSD.FromInteger((int)Bump); + map["colors"] = OSD.FromColor4(Color); + map["fullbright"] = OSD.FromBoolean(Fullbright); + map["glow"] = OSD.FromReal(Glow); + map["imageid"] = OSD.FromUUID(ImageID); + map["imagerot"] = OSD.FromReal(ImageRot); + map["media_flags"] = OSD.FromInteger(MediaFlags); + map["offsets"] = OSD.FromReal(OffsetS); + map["offsett"] = OSD.FromReal(OffsetT); + map["scales"] = OSD.FromReal(ScaleS); + map["scalet"] = OSD.FromReal(ScaleT); + + return map; + } + + public void Deserialize(OSDMap map) + { + Bump = (Bumpiness)map["bump"].AsInteger(); + Color = map["colors"].AsColor4(); + Fullbright = map["fullbright"].AsBoolean(); + Glow = (float)map["glow"].AsReal(); + ImageID = map["imageid"].AsUUID(); + ImageRot = (float)map["imagerot"].AsReal(); + MediaFlags = map["media_flags"].AsInteger(); + OffsetS = (float)map["offsets"].AsReal(); + OffsetT = (float)map["offsett"].AsReal(); + ScaleS = (float)map["scales"].AsReal(); + ScaleT = (float)map["scalet"].AsReal(); + } + } + + public class ExtraParam + { + public ExtraParamType Type; + public byte[] ExtraParamData; + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(); + map["extra_parameter"] = OSD.FromInteger((int)Type); + map["param_data"] = OSD.FromBinary(ExtraParamData); + + return map; + } + + public void Deserialize(OSDMap map) + { + Type = (ExtraParamType)map["extra_parameter"].AsInteger(); + ExtraParamData = map["param_data"].AsBinary(); + } + } + + public Face[] Faces; + public ExtraParam[] ExtraParams; + public UUID GroupID; + public Material Material; + public string Name; + public Vector3 Position; + public Quaternion Rotation; + public Vector3 Scale; + public float PathBegin; + public int PathCurve; + public float PathEnd; + public float RadiusOffset; + public float Revolutions; + public float ScaleX; + public float ScaleY; + public float ShearX; + public float ShearY; + public float Skew; + public float TaperX; + public float TaperY; + public float Twist; + public float TwistBegin; + public float ProfileBegin; + public int ProfileCurve; + public float ProfileEnd; + public float ProfileHollow; + public UUID SculptID; + public SculptType SculptType; + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(); + + map["group-id"] = OSD.FromUUID(GroupID); + map["material"] = OSD.FromInteger((int)Material); + map["name"] = OSD.FromString(Name); + map["pos"] = OSD.FromVector3(Position); + map["rotation"] = OSD.FromQuaternion(Rotation); + map["scale"] = OSD.FromVector3(Scale); + + // Extra params + OSDArray extraParams = new OSDArray(); + if (ExtraParams != null) + { + for (int i = 0; i < ExtraParams.Length; i++) + extraParams.Add(ExtraParams[i].Serialize()); + } + map["extra_parameters"] = extraParams; + + // Faces + OSDArray faces = new OSDArray(); + if (Faces != null) + { + for (int i = 0; i < Faces.Length; i++) + faces.Add(Faces[i].Serialize()); + } + map["facelist"] = faces; + + // Shape + OSDMap shape = new OSDMap(); + OSDMap path = new OSDMap(); + path["begin"] = OSD.FromReal(PathBegin); + path["curve"] = OSD.FromInteger(PathCurve); + path["end"] = OSD.FromReal(PathEnd); + path["radius_offset"] = OSD.FromReal(RadiusOffset); + path["revolutions"] = OSD.FromReal(Revolutions); + path["scale_x"] = OSD.FromReal(ScaleX); + path["scale_y"] = OSD.FromReal(ScaleY); + path["shear_x"] = OSD.FromReal(ShearX); + path["shear_y"] = OSD.FromReal(ShearY); + path["skew"] = OSD.FromReal(Skew); + path["taper_x"] = OSD.FromReal(TaperX); + path["taper_y"] = OSD.FromReal(TaperY); + path["twist"] = OSD.FromReal(Twist); + path["twist_begin"] = OSD.FromReal(TwistBegin); + shape["path"] = path; + OSDMap profile = new OSDMap(); + profile["begin"] = OSD.FromReal(ProfileBegin); + profile["curve"] = OSD.FromInteger(ProfileCurve); + profile["end"] = OSD.FromReal(ProfileEnd); + profile["hollow"] = OSD.FromReal(ProfileHollow); + shape["profile"] = profile; + OSDMap sculpt = new OSDMap(); + sculpt["id"] = OSD.FromUUID(SculptID); + sculpt["type"] = OSD.FromInteger((int)SculptType); + shape["sculpt"] = sculpt; + map["shape"] = shape; + + return map; + } + + public void Deserialize(OSDMap map) + { + GroupID = map["group-id"].AsUUID(); + Material = (Material)map["material"].AsInteger(); + Name = map["name"].AsString(); + Position = map["pos"].AsVector3(); + Rotation = map["rotation"].AsQuaternion(); + Scale = map["scale"].AsVector3(); + + // Extra params + OSDArray extraParams = map["extra_parameters"] as OSDArray; + if (extraParams != null) + { + ExtraParams = new ExtraParam[extraParams.Count]; + for (int i = 0; i < extraParams.Count; i++) + { + ExtraParam extraParam = new ExtraParam(); + extraParam.Deserialize(extraParams[i] as OSDMap); + ExtraParams[i] = extraParam; + } + } + else + { + ExtraParams = new ExtraParam[0]; + } + + // Faces + OSDArray faces = map["facelist"] as OSDArray; + if (faces != null) + { + Faces = new Face[faces.Count]; + for (int i = 0; i < faces.Count; i++) + { + Face face = new Face(); + face.Deserialize(faces[i] as OSDMap); + Faces[i] = face; + } + } + else + { + Faces = new Face[0]; + } + + // Shape + OSDMap shape = map["shape"] as OSDMap; + OSDMap path = shape["path"] as OSDMap; + PathBegin = (float)path["begin"].AsReal(); + PathCurve = path["curve"].AsInteger(); + PathEnd = (float)path["end"].AsReal(); + RadiusOffset = (float)path["radius_offset"].AsReal(); + Revolutions = (float)path["revolutions"].AsReal(); + ScaleX = (float)path["scale_x"].AsReal(); + ScaleY = (float)path["scale_y"].AsReal(); + ShearX = (float)path["shear_x"].AsReal(); + ShearY = (float)path["shear_y"].AsReal(); + Skew = (float)path["skew"].AsReal(); + TaperX = (float)path["taper_x"].AsReal(); + TaperY = (float)path["taper_y"].AsReal(); + Twist = (float)path["twist"].AsReal(); + TwistBegin = (float)path["twist_begin"].AsReal(); + + OSDMap profile = shape["profile"] as OSDMap; + ProfileBegin = (float)profile["begin"].AsReal(); + ProfileCurve = profile["curve"].AsInteger(); + ProfileEnd = (float)profile["end"].AsReal(); + ProfileHollow = (float)profile["hollow"].AsReal(); + + OSDMap sculpt = shape["sculpt"] as OSDMap; + if (sculpt != null) + { + SculptID = sculpt["id"].AsUUID(); + SculptType = (SculptType)sculpt["type"].AsInteger(); + } + else + { + SculptID = UUID.Zero; + SculptType = 0; + } + } + } + + public Object[] Objects; + + public OSDMap Serialize() + { + OSDMap map = new OSDMap(); + OSDArray array = new OSDArray(); + + if (Objects != null) + { + for (int i = 0; i < Objects.Length; i++) + array.Add(Objects[i].Serialize()); + } + + map["objects"] = array; + return map; + } + + public void Deserialize(OSDMap map) + { + OSDArray array = map["objects"] as OSDArray; + + if (array != null) + { + Objects = new Object[array.Count]; + + for (int i = 0; i < array.Count; i++) + { + Object obj = new Object(); + OSDMap objMap = array[i] as OSDMap; + + if (objMap != null) + obj.Deserialize(objMap); + + Objects[i] = obj; + } + } + else + { + Objects = new Object[0]; + } + } + } + + #endregion Object Messages + #region Object Media Messages /// /// A message sent from the viewer to the simulator which diff --git a/OpenMetaverseTypes/Enums.cs b/OpenMetaverseTypes/Enums.cs index c91c3b05..51b85eef 100644 --- a/OpenMetaverseTypes/Enums.cs +++ b/OpenMetaverseTypes/Enums.cs @@ -124,8 +124,8 @@ namespace OpenMetaverse OutfitFolder = 47, /// Root folder for the folders of type OutfitFolder MyOutfitsFolder = 48, - /// - InboxFolder = 49, + /// Linden mesh format + Mesh = 49, } /// @@ -184,7 +184,10 @@ namespace OpenMetaverse /// Animation = 19, /// - Gesture = 20 + Gesture = 20, + + /// + Mesh = 22, } /// diff --git a/OpenMetaverseTypes/EnumsPrimitive.cs b/OpenMetaverseTypes/EnumsPrimitive.cs index 1bb56912..33076b18 100644 --- a/OpenMetaverseTypes/EnumsPrimitive.cs +++ b/OpenMetaverseTypes/EnumsPrimitive.cs @@ -265,6 +265,8 @@ namespace OpenMetaverse /// Cylinder = 4, /// + Mesh = 5, + /// Invert = 64, /// Mirror = 128 diff --git a/OpenMetaverseTypes/UtilsConversions.cs b/OpenMetaverseTypes/UtilsConversions.cs index ef4bda7b..9b720f78 100644 --- a/OpenMetaverseTypes/UtilsConversions.cs +++ b/OpenMetaverseTypes/UtilsConversions.cs @@ -37,54 +37,83 @@ namespace OpenMetaverse private static readonly string[] _AssetTypeNames = new string[] { - "texture", - "sound", - "callcard", - "landmark", - "script", - "clothing", - "object", - "notecard", - "category", - "root", - "lsltext", - "lslbyte", - "txtr_tga", - "bodypart", - "trash", - "snapshot", - "lstndfnd", - "snd_wav", - "img_tga", - "jpeg", - "animatn", - "gesture", - "simstate" + "texture", // 0 + "sound", // 1 + "callcard", // 2 + "landmark", // 3 + "script", // 4 + "clothing", // 5 + "object", // 6 + "notecard", // 7 + "category", // 8 + "root", // 9 + "lsltext", // 10 + "lslbyte", // 11 + "txtr_tga", // 12 + "bodypart", // 13 + "trash", // 14 + "snapshot", // 15 + "lstndfnd", // 16 + "snd_wav", // 17 + "img_tga", // 18 + "jpeg", // 19 + "animatn", // 20 + "gesture", // 21 + "simstate", // 22 + "favorite", // 23 + "link", // 24 + "linkfolder", // 25 + String.Empty, // 26 + String.Empty, // 27 + String.Empty, // 28 + String.Empty, // 29 + String.Empty, // 30 + String.Empty, // 31 + String.Empty, // 32 + String.Empty, // 33 + String.Empty, // 34 + String.Empty, // 35 + String.Empty, // 36 + String.Empty, // 37 + String.Empty, // 38 + String.Empty, // 39 + String.Empty, // 40 + String.Empty, // 41 + String.Empty, // 42 + String.Empty, // 43 + String.Empty, // 44 + String.Empty, // 45 + "curoutfit", // 46 + "outfit", // 47 + "myoutfits", // 48 + "mesh", // 49 }; private static readonly string[] _InventoryTypeNames = new string[] { - "texture", - "sound", - "callcard", - "landmark", - String.Empty, - String.Empty, - "object", - "notecard", - "category", - "root", - "script", - String.Empty, - String.Empty, - String.Empty, - String.Empty, - "snapshot", - String.Empty, - "attach", - "wearable", - "animation", - "gesture", + "texture", // 0 + "sound", // 1 + "callcard", // 2 + "landmark", // 3 + String.Empty, // 4 + String.Empty, // 5 + "object", // 6 + "notecard", // 7 + "category", // 8 + "root", // 9 + "script", // 10 + String.Empty, // 11 + String.Empty, // 12 + String.Empty, // 13 + String.Empty, // 14 + "snapshot", // 15 + String.Empty, // 16 + "attach", // 17 + "wearable", // 18 + "animation", // 19 + "gesture", // 20 + String.Empty, // 21 + "mesh" // 22 }; private static readonly string[] _SaleTypeNames = new string[] diff --git a/bin/log4net.dll b/bin/log4net.dll index ffc57e11254ad9530867b35d15aaf38eb4747d8d..974b4939f04a66e160ff48ef5c00d2b82cc26eb5 100644 GIT binary patch literal 241664 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 literal 270336 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