diff options
author | Justin Clarke Casey | 2009-04-23 20:15:05 +0000 |
---|---|---|
committer | Justin Clarke Casey | 2009-04-23 20:15:05 +0000 |
commit | 1ccc99a3f9d96fbdea478be7e7df427a9e5377a7 (patch) | |
tree | 713222af91ebef24e5604efffc9e6b1c68a7700b /OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs | |
parent | * Allow interested user data plugins to store temporary user profiles (diff) | |
download | opensim-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.cs | 97 |
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; | |||
36 | using OpenMetaverse; | 36 | using OpenMetaverse; |
37 | using OpenSim.Framework; | 37 | using OpenSim.Framework; |
38 | using OpenSim.Framework.Serialization; | 38 | using OpenSim.Framework.Serialization; |
39 | using OpenSim.Framework.Serialization.External; | ||
39 | using OpenSim.Framework.Communications; | 40 | using OpenSim.Framework.Communications; |
40 | using OpenSim.Framework.Communications.Cache; | 41 | using OpenSim.Framework.Communications.Cache; |
41 | using OpenSim.Region.CoreModules.World.Archiver; | 42 | using 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 | } |