From 8d304725518424131fa42dce1515137e0bb1eada Mon Sep 17 00:00:00 2001 From: Mike Mazur Date: Mon, 16 Feb 2009 02:25:25 +0000 Subject: Rename NewAssetServer AssetInventoryServer and fully qualify with OpenSim.Grid.AssetInventoryServer. --- OpenSim/Grid/AssetInventoryServer/Metadata.cs | 85 +++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 OpenSim/Grid/AssetInventoryServer/Metadata.cs (limited to 'OpenSim/Grid/AssetInventoryServer/Metadata.cs') diff --git a/OpenSim/Grid/AssetInventoryServer/Metadata.cs b/OpenSim/Grid/AssetInventoryServer/Metadata.cs new file mode 100644 index 0000000..3735ea4 --- /dev/null +++ b/OpenSim/Grid/AssetInventoryServer/Metadata.cs @@ -0,0 +1,85 @@ +using System; +using System.Collections.Generic; +using System.Xml; +using OpenMetaverse; +using OpenMetaverse.StructuredData; + +namespace OpenSim.Grid.AssetInventoryServer +{ + public class Metadata + { + public UUID ID; + public string Name; + public string Description; + public DateTime CreationDate; + public string ContentType; + public byte[] SHA1; + public bool Temporary; + public Dictionary Methods = new Dictionary(); + public OSDMap ExtraData; + + public OSDMap SerializeToOSD() + { + OSDMap osdata = new OSDMap(); + + if (ID != UUID.Zero) osdata["id"] = OSD.FromUUID(ID); + osdata["name"] = OSD.FromString(Name); + osdata["description"] = OSD.FromString(Description); + osdata["creation_date"] = OSD.FromDate(CreationDate); + osdata["type"] = OSD.FromString(ContentType); + osdata["sha1"] = OSD.FromBinary(SHA1); + osdata["temporary"] = OSD.FromBoolean(Temporary); + + OSDMap methods = new OSDMap(Methods.Count); + foreach (KeyValuePair kvp in Methods) + methods.Add(kvp.Key, OSD.FromUri(kvp.Value)); + osdata["methods"] = methods; + + if (ExtraData != null) osdata["extra_data"] = ExtraData; + + return osdata; + } + + public byte[] SerializeToBytes() + { + LitJson.JsonData jsonData = OSDParser.SerializeJson(SerializeToOSD()); + return System.Text.Encoding.UTF8.GetBytes(jsonData.ToJson()); + } + + public void Deserialize(byte[] data) + { + OSD osdata = OSDParser.DeserializeJson(System.Text.Encoding.UTF8.GetString(data)); + Deserialize(osdata); + } + + public void Deserialize(string data) + { + OSD osdata = OSDParser.DeserializeJson(data); + Deserialize(osdata); + } + + public void Deserialize(OSD osdata) + { + if (osdata.Type == OSDType.Map) + { + OSDMap map = (OSDMap)osdata; + ID = map["id"].AsUUID(); + Name = map["name"].AsString(); + Description = map["description"].AsString(); + CreationDate = map["creation_date"].AsDate(); + ContentType = map["type"].AsString(); + SHA1 = map["sha1"].AsBinary(); + Temporary = map["temporary"].AsBoolean(); + + OSDMap methods = map["methods"] as OSDMap; + if (methods != null) + { + foreach (KeyValuePair kvp in methods) + Methods.Add(kvp.Key, kvp.Value.AsUri()); + } + + ExtraData = map["extra_data"] as OSDMap; + } + } + } +} -- cgit v1.1