aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2009-04-23 20:15:05 +0000
committerJustin Clarke Casey2009-04-23 20:15:05 +0000
commit1ccc99a3f9d96fbdea478be7e7df427a9e5377a7 (patch)
tree713222af91ebef24e5604efffc9e6b1c68a7700b /OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
parent* Allow interested user data plugins to store temporary user profiles (diff)
downloadopensim-SC_OLD-1ccc99a3f9d96fbdea478be7e7df427a9e5377a7.zip
opensim-SC_OLD-1ccc99a3f9d96fbdea478be7e7df427a9e5377a7.tar.gz
opensim-SC_OLD-1ccc99a3f9d96fbdea478be7e7df427a9e5377a7.tar.bz2
opensim-SC_OLD-1ccc99a3f9d96fbdea478be7e7df427a9e5377a7.tar.xz
* refactor: move archive user inventory item serialization out to a separate file
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs97
1 files changed, 15 insertions, 82 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
index 8732e2e..2d6187f 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs
@@ -36,6 +36,7 @@ using log4net;
36using OpenMetaverse; 36using OpenMetaverse;
37using OpenSim.Framework; 37using OpenSim.Framework;
38using OpenSim.Framework.Serialization; 38using OpenSim.Framework.Serialization;
39using OpenSim.Framework.Serialization.External;
39using OpenSim.Framework.Communications; 40using OpenSim.Framework.Communications;
40using OpenSim.Framework.Communications.Cache; 41using OpenSim.Framework.Communications.Cache;
41using OpenSim.Region.CoreModules.World.Archiver; 42using OpenSim.Region.CoreModules.World.Archiver;
@@ -78,71 +79,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
78 this.commsManager = commsManager; 79 this.commsManager = commsManager;
79 } 80 }
80 81
81 protected InventoryItemBase LoadInvItem(string contents)
82 {
83 InventoryItemBase item = new InventoryItemBase();
84 StringReader sr = new StringReader(contents);
85 XmlTextReader reader = new XmlTextReader(sr);
86
87 if (contents.Equals("")) return null;
88
89 reader.ReadStartElement("InventoryItem");
90 reader.ReadStartElement("Name");
91 item.Name = reader.ReadString();
92 reader.ReadEndElement();
93 reader.ReadStartElement("ID");
94 item.ID = UUID.Parse(reader.ReadString());
95 reader.ReadEndElement();
96 reader.ReadStartElement("InvType");
97 item.InvType = Convert.ToInt32(reader.ReadString());
98 reader.ReadEndElement();
99 reader.ReadStartElement("CreatorUUID");
100 item.CreatorId = reader.ReadString();
101 reader.ReadEndElement();
102 reader.ReadStartElement("CreationDate");
103 item.CreationDate = Convert.ToInt32(reader.ReadString());
104 reader.ReadEndElement();
105 reader.ReadStartElement("Owner");
106 item.Owner = UUID.Parse(reader.ReadString());
107 reader.ReadEndElement();
108 reader.ReadElementString("Description");
109 reader.ReadStartElement("AssetType");
110 item.AssetType = Convert.ToInt32(reader.ReadString());
111 reader.ReadEndElement();
112 reader.ReadStartElement("AssetID");
113 item.AssetID = UUID.Parse(reader.ReadString());
114 reader.ReadEndElement();
115 reader.ReadStartElement("SaleType");
116 item.SaleType = Convert.ToByte(reader.ReadString());
117 reader.ReadEndElement();
118 reader.ReadStartElement("SalePrice");
119 item.SalePrice = Convert.ToInt32(reader.ReadString());
120 reader.ReadEndElement();
121 reader.ReadStartElement("BasePermissions");
122 item.BasePermissions = Convert.ToUInt32(reader.ReadString());
123 reader.ReadEndElement();
124 reader.ReadStartElement("CurrentPermissions");
125 item.CurrentPermissions = Convert.ToUInt32(reader.ReadString());
126 reader.ReadEndElement();
127 reader.ReadStartElement("EveryOnePermssions");
128 item.EveryOnePermissions = Convert.ToUInt32(reader.ReadString());
129 reader.ReadEndElement();
130 reader.ReadStartElement("NextPermissions");
131 item.NextPermissions = Convert.ToUInt32(reader.ReadString());
132 reader.ReadEndElement();
133 reader.ReadStartElement("Flags");
134 item.Flags = Convert.ToUInt32(reader.ReadString());
135 reader.ReadEndElement();
136 reader.ReadStartElement("GroupID");
137 item.GroupID = UUID.Parse(reader.ReadString());
138 reader.ReadEndElement();
139 reader.ReadStartElement("GroupOwned");
140 item.GroupOwned = Convert.ToBoolean(reader.ReadString());
141 reader.ReadEndElement();
142
143 return item;
144 }
145
146 /// <summary> 82 /// <summary>
147 /// Execute the request 83 /// Execute the request
148 /// </summary> 84 /// </summary>
@@ -322,27 +258,24 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
322 258
323 if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType) 259 if (TarArchiveReader.TarEntryType.TYPE_DIRECTORY != entryType)
324 { 260 {
325 InventoryItemBase item = LoadInvItem(m_asciiEncoding.GetString(data)); 261 InventoryItemBase item = UserInventoryItemSerializer.Deserialize(data);
262
263 // Don't use the item ID that's in the file
264 item.ID = UUID.Random();
326 265
327 if (item != null) 266 item.CreatorId = m_userInfo.UserProfile.ID.ToString();
328 { 267 item.Owner = m_userInfo.UserProfile.ID;
329 // Don't use the item ID that's in the file
330 item.ID = UUID.Random();
331
332 item.CreatorId = m_userInfo.UserProfile.ID.ToString();
333 item.Owner = m_userInfo.UserProfile.ID;
334 268
335 // Reset folder ID to the one in which we want to load it 269 // Reset folder ID to the one in which we want to load it
336 item.Folder = foundFolder.ID; 270 item.Folder = foundFolder.ID;
337 271
338 m_userInfo.AddItem(item); 272 m_userInfo.AddItem(item);
339 successfulItemRestores++; 273 successfulItemRestores++;
340 274
341 // If we're loading an item directly into the given destination folder then we need to record 275 // If we're loading an item directly into the given destination folder then we need to record
342 // it separately from any loaded root folders 276 // it separately from any loaded root folders
343 if (rootDestinationFolder == foundFolder) 277 if (rootDestinationFolder == foundFolder)
344 nodesLoaded.Add(item); 278 nodesLoaded.Add(item);
345 }
346 } 279 }
347 } 280 }
348 } 281 }