diff options
Diffstat (limited to 'OpenSim/Framework')
7 files changed, 139 insertions, 15 deletions
diff --git a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs index c906b76..e12d234 100644 --- a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs +++ b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs | |||
@@ -128,7 +128,7 @@ namespace OpenSim.Framework.Communications.Caches | |||
128 | } | 128 | } |
129 | if (this.OnUpLoad != null) | 129 | if (this.OnUpLoad != null) |
130 | { | 130 | { |
131 | this.OnUpLoad(this.m_assetName, this.newAssetID, inventoryItemID, data); | 131 | this.OnUpLoad(this.m_assetName, "description", this.newAssetID, inventoryItemID, LLUUID.Zero, data); |
132 | } | 132 | } |
133 | return text; | 133 | return text; |
134 | } | 134 | } |
@@ -266,7 +266,7 @@ namespace OpenSim.Framework.Communications.Caches | |||
266 | } | 266 | } |
267 | if (this.OnUpLoad != null) | 267 | if (this.OnUpLoad != null) |
268 | { | 268 | { |
269 | this.OnUpLoad(this.m_assetName, this.newAssetID, inventoryItemID, data); | 269 | this.OnUpLoad(this.m_assetName, "description", this.newAssetID, inventoryItemID, LLUUID.Zero, data); |
270 | } | 270 | } |
271 | return text; | 271 | return text; |
272 | } | 272 | } |
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index fc2f948..123e692 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | |||
@@ -40,10 +40,16 @@ namespace OpenSim.Framework.Communications.Caches | |||
40 | { | 40 | { |
41 | public class CachedUserInfo | 41 | public class CachedUserInfo |
42 | { | 42 | { |
43 | private CommunicationsManager m_parentCommsManager; | ||
43 | // Fields | 44 | // Fields |
44 | public InventoryFolder RootFolder = null; | 45 | public InventoryFolder RootFolder = null; |
45 | public UserProfileData UserProfile = null; | 46 | public UserProfileData UserProfile = null; |
46 | 47 | ||
48 | public CachedUserInfo(CommunicationsManager commsManager) | ||
49 | { | ||
50 | m_parentCommsManager = commsManager; | ||
51 | } | ||
52 | |||
47 | // Methods | 53 | // Methods |
48 | public void FolderReceive(LLUUID userID, InventoryFolder folderInfo) | 54 | public void FolderReceive(LLUUID userID, InventoryFolder folderInfo) |
49 | { | 55 | { |
@@ -73,6 +79,7 @@ namespace OpenSim.Framework.Communications.Caches | |||
73 | 79 | ||
74 | public void ItemReceive(LLUUID userID, InventoryItemBase itemInfo) | 80 | public void ItemReceive(LLUUID userID, InventoryItemBase itemInfo) |
75 | { | 81 | { |
82 | Console.WriteLine("received new inventory item " + itemInfo.inventoryID + " with asset id of " + itemInfo.assetID); | ||
76 | if ((userID == this.UserProfile.UUID) && (this.RootFolder != null)) | 83 | if ((userID == this.UserProfile.UUID) && (this.RootFolder != null)) |
77 | { | 84 | { |
78 | if (itemInfo.parentFolderID == this.RootFolder.folderID) | 85 | if (itemInfo.parentFolderID == this.RootFolder.folderID) |
@@ -84,11 +91,23 @@ namespace OpenSim.Framework.Communications.Caches | |||
84 | InventoryFolder folder = this.RootFolder.HasSubFolder(itemInfo.parentFolderID); | 91 | InventoryFolder folder = this.RootFolder.HasSubFolder(itemInfo.parentFolderID); |
85 | if (folder != null) | 92 | if (folder != null) |
86 | { | 93 | { |
87 | folder.Items.Add(itemInfo.inventoryID, itemInfo); | 94 | folder.Items.Add(itemInfo.inventoryID, itemInfo); |
88 | } | 95 | } |
89 | } | 96 | } |
90 | } | 97 | } |
91 | } | 98 | } |
99 | |||
100 | public void AddItem(LLUUID userID, InventoryItemBase itemInfo) | ||
101 | { | ||
102 | if ((userID == this.UserProfile.UUID) && (this.RootFolder != null)) | ||
103 | { | ||
104 | this.ItemReceive(userID, itemInfo); | ||
105 | Console.WriteLine("now adding inventory item to database"); | ||
106 | this.m_parentCommsManager.InventoryServer.AddNewInventoryItem(userID, itemInfo); | ||
107 | } | ||
108 | } | ||
92 | } | 109 | } |
110 | |||
111 | |||
93 | } | 112 | } |
94 | 113 | ||
diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCache.cs b/OpenSim/Framework/Communications/Cache/UserProfileCache.cs index e65b6b2..02c5f65 100644 --- a/OpenSim/Framework/Communications/Cache/UserProfileCache.cs +++ b/OpenSim/Framework/Communications/Cache/UserProfileCache.cs | |||
@@ -61,7 +61,7 @@ namespace OpenSim.Framework.Communications.Caches | |||
61 | { | 61 | { |
62 | if (!this.UserProfiles.ContainsKey(userID)) | 62 | if (!this.UserProfiles.ContainsKey(userID)) |
63 | { | 63 | { |
64 | CachedUserInfo userInfo = new CachedUserInfo(); | 64 | CachedUserInfo userInfo = new CachedUserInfo(this.m_parent); |
65 | userInfo.UserProfile = this.RequestUserProfileForUser(userID); | 65 | userInfo.UserProfile = this.RequestUserProfileForUser(userID); |
66 | if (userInfo.UserProfile != null) | 66 | if (userInfo.UserProfile != null) |
67 | { | 67 | { |
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs index 82ef08d..eb88aa7 100644 --- a/OpenSim/Framework/Communications/Capabilities/Caps.cs +++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs | |||
@@ -35,10 +35,12 @@ using OpenSim.Framework.Servers; | |||
35 | using OpenSim.Framework.Types; | 35 | using OpenSim.Framework.Types; |
36 | using OpenSim.Framework.Utilities; | 36 | using OpenSim.Framework.Utilities; |
37 | using OpenSim.Framework.Communications.Caches; | 37 | using OpenSim.Framework.Communications.Caches; |
38 | using OpenSim.Framework.Data; | ||
38 | 39 | ||
39 | namespace OpenSim.Region.Capabilities | 40 | namespace OpenSim.Region.Capabilities |
40 | { | 41 | { |
41 | public delegate void UpLoadedTexture(string assetName, LLUUID assetID, LLUUID inventoryItem, byte[] data); | 42 | public delegate void UpLoadedTexture(string assetName, string description, LLUUID assetID, LLUUID inventoryItem, LLUUID parentFolder, byte[] data); |
43 | public delegate void NewInventoryItem(LLUUID userID, InventoryItemBase item); | ||
42 | 44 | ||
43 | public class Caps | 45 | public class Caps |
44 | { | 46 | { |
@@ -56,6 +58,7 @@ namespace OpenSim.Region.Capabilities | |||
56 | private AssetCache assetCache; | 58 | private AssetCache assetCache; |
57 | private int eventQueueCount = 1; | 59 | private int eventQueueCount = 1; |
58 | private Queue<string> CapsEventQueue = new Queue<string>(); | 60 | private Queue<string> CapsEventQueue = new Queue<string>(); |
61 | public NewInventoryItem AddNewInventoryItem = null; | ||
59 | 62 | ||
60 | public Caps(AssetCache assetCach, BaseHttpServer httpServer, string httpListen, int httpPort, string capsPath, LLUUID agent) | 63 | public Caps(AssetCache assetCach, BaseHttpServer httpServer, string httpListen, int httpPort, string capsPath, LLUUID agent) |
61 | { | 64 | { |
@@ -122,7 +125,7 @@ namespace OpenSim.Region.Capabilities | |||
122 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath; | 125 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath; |
123 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; | 126 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; |
124 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; | 127 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; |
125 | caps.UpdateNotecardAgentInventory = capsBaseUrl + m_notecardUpdatePath; | 128 | // caps.UpdateNotecardAgentInventory = capsBaseUrl + m_notecardUpdatePath; |
126 | return caps; | 129 | return caps; |
127 | } | 130 | } |
128 | 131 | ||
@@ -242,7 +245,7 @@ namespace OpenSim.Region.Capabilities | |||
242 | LLUUID newInvItem = LLUUID.Random(); | 245 | LLUUID newInvItem = LLUUID.Random(); |
243 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); | 246 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); |
244 | 247 | ||
245 | AssetUploader uploader = new AssetUploader(assetName, newAsset, newInvItem, capsBase + uploaderPath, this.httpListener); | 248 | AssetUploader uploader = new AssetUploader(assetName, "description", newAsset, newInvItem, LLUUID.Zero, "", "", capsBase + uploaderPath, this.httpListener); |
246 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); | 249 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); |
247 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; | 250 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; |
248 | 251 | ||
@@ -261,13 +264,16 @@ namespace OpenSim.Region.Capabilities | |||
261 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) | 264 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) |
262 | { | 265 | { |
263 | // Console.WriteLine("asset upload request via CAPS"); | 266 | // Console.WriteLine("asset upload request via CAPS"); |
267 | |||
264 | string assetName = llsdRequest.name; | 268 | string assetName = llsdRequest.name; |
269 | string assetDes = llsdRequest.description; | ||
265 | string capsBase = "/CAPS/" + m_capsObjectPath; | 270 | string capsBase = "/CAPS/" + m_capsObjectPath; |
266 | LLUUID newAsset = LLUUID.Random(); | 271 | LLUUID newAsset = LLUUID.Random(); |
267 | LLUUID newInvItem = LLUUID.Random(); | 272 | LLUUID newInvItem = LLUUID.Random(); |
273 | LLUUID parentFolder = llsdRequest.folder_id; | ||
268 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); | 274 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); |
269 | 275 | ||
270 | AssetUploader uploader = new AssetUploader(assetName, newAsset, newInvItem, capsBase + uploaderPath, this.httpListener); | 276 | AssetUploader uploader = new AssetUploader(assetName, assetDes, newAsset, newInvItem, parentFolder, "" , "", capsBase + uploaderPath, this.httpListener); |
271 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); | 277 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); |
272 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; | 278 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; |
273 | 279 | ||
@@ -284,7 +290,7 @@ namespace OpenSim.Region.Capabilities | |||
284 | /// <param name="assetID"></param> | 290 | /// <param name="assetID"></param> |
285 | /// <param name="inventoryItem"></param> | 291 | /// <param name="inventoryItem"></param> |
286 | /// <param name="data"></param> | 292 | /// <param name="data"></param> |
287 | public void UploadCompleteHandler(string assetName, LLUUID assetID, LLUUID inventoryItem, byte[] data) | 293 | public void UploadCompleteHandler(string assetName, string assetDescription, LLUUID assetID, LLUUID inventoryItem, LLUUID parentFolder, byte[] data) |
288 | { | 294 | { |
289 | AssetBase asset; | 295 | AssetBase asset; |
290 | asset = new AssetBase(); | 296 | asset = new AssetBase(); |
@@ -294,6 +300,25 @@ namespace OpenSim.Region.Capabilities | |||
294 | asset.Name = assetName; | 300 | asset.Name = assetName; |
295 | asset.Data = data; | 301 | asset.Data = data; |
296 | this.assetCache.AddAsset(asset); | 302 | this.assetCache.AddAsset(asset); |
303 | |||
304 | InventoryItemBase item = new InventoryItemBase(); | ||
305 | item.avatarID = agentID; | ||
306 | item.creatorsID = agentID; | ||
307 | item.inventoryID = inventoryItem; | ||
308 | item.assetID = asset.FullID; | ||
309 | item.inventoryDescription = assetDescription; | ||
310 | item.inventoryName = assetName; | ||
311 | item.assetType = 0; | ||
312 | item.invType = 0; | ||
313 | item.parentFolderID = parentFolder; | ||
314 | item.inventoryCurrentPermissions = 2147483647; | ||
315 | item.inventoryNextPermissions = 2147483647; | ||
316 | |||
317 | if (AddNewInventoryItem != null) | ||
318 | { | ||
319 | AddNewInventoryItem(agentID, item); | ||
320 | } | ||
321 | |||
297 | } | 322 | } |
298 | 323 | ||
299 | public class AssetUploader | 324 | public class AssetUploader |
@@ -303,9 +328,11 @@ namespace OpenSim.Region.Capabilities | |||
303 | private string uploaderPath = ""; | 328 | private string uploaderPath = ""; |
304 | private LLUUID newAssetID; | 329 | private LLUUID newAssetID; |
305 | private LLUUID inventoryItemID; | 330 | private LLUUID inventoryItemID; |
331 | private LLUUID parentFolder; | ||
306 | private BaseHttpServer httpListener; | 332 | private BaseHttpServer httpListener; |
307 | private bool SaveAssets = false; | 333 | private bool SaveAssets = false; |
308 | private string m_assetName = ""; | 334 | private string m_assetName = ""; |
335 | private string m_assetDes = ""; | ||
309 | 336 | ||
310 | /// <summary> | 337 | /// <summary> |
311 | /// | 338 | /// |
@@ -314,13 +341,15 @@ namespace OpenSim.Region.Capabilities | |||
314 | /// <param name="inventoryItem"></param> | 341 | /// <param name="inventoryItem"></param> |
315 | /// <param name="path"></param> | 342 | /// <param name="path"></param> |
316 | /// <param name="httpServer"></param> | 343 | /// <param name="httpServer"></param> |
317 | public AssetUploader(string assetName, LLUUID assetID, LLUUID inventoryItem, string path, BaseHttpServer httpServer) | 344 | public AssetUploader(string assetName, string description, LLUUID assetID, LLUUID inventoryItem, LLUUID parentFolderID, string invType, string assetType, string path, BaseHttpServer httpServer) |
318 | { | 345 | { |
319 | m_assetName = assetName; | 346 | m_assetName = assetName; |
347 | m_assetDes = description; | ||
320 | newAssetID = assetID; | 348 | newAssetID = assetID; |
321 | inventoryItemID = inventoryItem; | 349 | inventoryItemID = inventoryItem; |
322 | uploaderPath = path; | 350 | uploaderPath = path; |
323 | httpListener = httpServer; | 351 | httpListener = httpServer; |
352 | parentFolder = parentFolderID; | ||
324 | } | 353 | } |
325 | 354 | ||
326 | /// <summary> | 355 | /// <summary> |
@@ -348,7 +377,7 @@ namespace OpenSim.Region.Capabilities | |||
348 | 377 | ||
349 | if (OnUpLoad != null) | 378 | if (OnUpLoad != null) |
350 | { | 379 | { |
351 | OnUpLoad(m_assetName, newAssetID, inv, data); | 380 | OnUpLoad(m_assetName, m_assetDes, newAssetID, inv, parentFolder, data); |
352 | } | 381 | } |
353 | 382 | ||
354 | return res; | 383 | return res; |
diff --git a/OpenSim/Framework/Communications/IInventoryServices.cs b/OpenSim/Framework/Communications/IInventoryServices.cs index 777dbe2..6f01cf2 100644 --- a/OpenSim/Framework/Communications/IInventoryServices.cs +++ b/OpenSim/Framework/Communications/IInventoryServices.cs | |||
@@ -15,5 +15,6 @@ namespace OpenSim.Framework.Communications | |||
15 | { | 15 | { |
16 | void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, InventoryItemInfo itemCallBack); | 16 | void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, InventoryItemInfo itemCallBack); |
17 | void AddNewInventoryFolder(LLUUID userID, InventoryFolder folder); | 17 | void AddNewInventoryFolder(LLUUID userID, InventoryFolder folder); |
18 | void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); | ||
18 | } | 19 | } |
19 | } | 20 | } |
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs index 811a355..045fbee 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs | |||
@@ -91,7 +91,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
91 | data.Add("inventoryCurrentPermissions", DbType.Int32); | 91 | data.Add("inventoryCurrentPermissions", DbType.Int32); |
92 | data.Add("inventoryBasePermissions", DbType.Int32); | 92 | data.Add("inventoryBasePermissions", DbType.Int32); |
93 | data.Add("inventoryEveryOnePermissions", DbType.Int32); | 93 | data.Add("inventoryEveryOnePermissions", DbType.Int32); |
94 | 94 | ||
95 | return data; | 95 | return data; |
96 | } | 96 | } |
97 | 97 | ||
@@ -219,6 +219,44 @@ namespace OpenSim.Framework.Data.SQLite | |||
219 | row["version"] = folder.version; | 219 | row["version"] = folder.version; |
220 | } | 220 | } |
221 | 221 | ||
222 | public InventoryItemBase BuildItem(DataRow row) | ||
223 | { | ||
224 | InventoryItemBase item = new InventoryItemBase(); | ||
225 | item.inventoryID = new LLUUID((string)row["UUID"]); | ||
226 | item.assetID = new LLUUID((string)row["assetID"]); | ||
227 | item.assetType = Convert.ToInt32(row["assetType"]); | ||
228 | item.invType = Convert.ToInt32(row["invType"]); | ||
229 | item.parentFolderID = new LLUUID((string)row["parentFolderID"]); | ||
230 | item.avatarID = new LLUUID((string)row["avatarID"]); | ||
231 | item.creatorsID = new LLUUID((string)row["creatorsID"]); | ||
232 | item.inventoryName =(string) row["inventoryName"]; | ||
233 | item.inventoryDescription = (string) row["inventoryDescription"]; | ||
234 | |||
235 | item.inventoryNextPermissions = Convert.ToUInt32(row["inventoryNextPermissions"]); | ||
236 | item.inventoryCurrentPermissions = Convert.ToUInt32(row["inventoryCurrentPermissions"]); | ||
237 | item.inventoryBasePermissions = Convert.ToUInt32(row["inventoryBasePermissions"]); | ||
238 | item.inventoryEveryOnePermissions = Convert.ToUInt32(row["inventoryEveryOnePermissions"]); | ||
239 | return item; | ||
240 | } | ||
241 | |||
242 | private void fillItemRow(DataRow row, InventoryItemBase item) | ||
243 | { | ||
244 | row["UUID"] = item.inventoryID; | ||
245 | row["assetID"] = item.assetID; | ||
246 | row["assetType"] = item.assetType; | ||
247 | row["invType"] = item.invType; | ||
248 | row["parentFolderID"] = item.parentFolderID; | ||
249 | row["avatarID"] = item.avatarID; | ||
250 | row["creatorsID"] = item.creatorsID; | ||
251 | row["inventoryName"] = item.inventoryName; | ||
252 | row["inventoryDescription"] = item.inventoryDescription; | ||
253 | |||
254 | row["inventoryNextPermissions"] = item.inventoryNextPermissions; | ||
255 | row["inventoryCurrentPermissions"] = item.inventoryCurrentPermissions; | ||
256 | row["inventoryBasePermissions"] = item.inventoryBasePermissions; | ||
257 | row["inventoryEveryOnePermissions"] = item.inventoryEveryOnePermissions; | ||
258 | } | ||
259 | |||
222 | private void addFolder(InventoryFolderBase folder) | 260 | private void addFolder(InventoryFolderBase folder) |
223 | { | 261 | { |
224 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; | 262 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; |
@@ -238,6 +276,24 @@ namespace OpenSim.Framework.Data.SQLite | |||
238 | this.invFoldersDa.Update(ds, "inventoryfolders"); | 276 | this.invFoldersDa.Update(ds, "inventoryfolders"); |
239 | } | 277 | } |
240 | 278 | ||
279 | private void addItem(InventoryItemBase item) | ||
280 | { | ||
281 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; | ||
282 | |||
283 | DataRow inventoryRow = inventoryItemTable.Rows.Find(item.inventoryID); | ||
284 | if (inventoryRow == null) | ||
285 | { | ||
286 | inventoryRow = inventoryItemTable.NewRow(); | ||
287 | fillItemRow(inventoryRow, item); | ||
288 | inventoryItemTable.Rows.Add(inventoryRow); | ||
289 | } | ||
290 | else | ||
291 | { | ||
292 | fillItemRow(inventoryRow, item); | ||
293 | } | ||
294 | this.invItemsDa.Update(ds, "inventoryitems"); | ||
295 | } | ||
296 | |||
241 | public void Shutdown() | 297 | public void Shutdown() |
242 | { | 298 | { |
243 | // TODO: DataSet commit | 299 | // TODO: DataSet commit |
@@ -275,7 +331,16 @@ namespace OpenSim.Framework.Data.SQLite | |||
275 | /// <returns>A List of InventoryItemBase items</returns> | 331 | /// <returns>A List of InventoryItemBase items</returns> |
276 | public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID) | 332 | public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID) |
277 | { | 333 | { |
278 | return null; | 334 | List<InventoryItemBase> retval = new List<InventoryItemBase>(); |
335 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; | ||
336 | string selectExp = "parentFolderID = '" + folderID.ToString() + "'"; | ||
337 | DataRow[] rows = inventoryItemTable.Select(selectExp); | ||
338 | foreach (DataRow row in rows) | ||
339 | { | ||
340 | retval.Add(BuildItem(row)); | ||
341 | } | ||
342 | |||
343 | return retval; | ||
279 | } | 344 | } |
280 | 345 | ||
281 | /// <summary> | 346 | /// <summary> |
@@ -297,7 +362,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
297 | { | 362 | { |
298 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); | 363 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); |
299 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; | 364 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; |
300 | string selectExp = "agentID = '"+ user.ToString()+"' AND parentID = '"+ LLUUID.Zero.ToString()+"'"; | 365 | string selectExp = "agentID = '" + user.ToString() + "' AND parentID = '" + LLUUID.Zero.ToString() + "'"; |
301 | DataRow[] rows = inventoryFolderTable.Select(selectExp); | 366 | DataRow[] rows = inventoryFolderTable.Select(selectExp); |
302 | foreach (DataRow row in rows) | 367 | foreach (DataRow row in rows) |
303 | { | 368 | { |
@@ -339,7 +404,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
339 | { | 404 | { |
340 | folders.Add(this.buildFolder(row)); | 405 | folders.Add(this.buildFolder(row)); |
341 | } | 406 | } |
342 | // System.Console.WriteLine("found " + folders.Count + " inventory folders"); | 407 | // System.Console.WriteLine("found " + folders.Count + " inventory folders"); |
343 | return folders; | 408 | return folders; |
344 | } | 409 | } |
345 | 410 | ||
@@ -369,6 +434,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
369 | /// <param name="item">The item to be created</param> | 434 | /// <param name="item">The item to be created</param> |
370 | public void addInventoryItem(InventoryItemBase item) | 435 | public void addInventoryItem(InventoryItemBase item) |
371 | { | 436 | { |
437 | this.addItem(item); | ||
372 | } | 438 | } |
373 | 439 | ||
374 | /// <summary> | 440 | /// <summary> |
@@ -377,6 +443,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
377 | /// <param name="item">The updated item</param> | 443 | /// <param name="item">The updated item</param> |
378 | public void updateInventoryItem(InventoryItemBase item) | 444 | public void updateInventoryItem(InventoryItemBase item) |
379 | { | 445 | { |
446 | this.addItem(item); | ||
380 | } | 447 | } |
381 | 448 | ||
382 | /// <summary> | 449 | /// <summary> |
diff --git a/OpenSim/Framework/InventoryServiceBase/InventoryServiceBase.cs b/OpenSim/Framework/InventoryServiceBase/InventoryServiceBase.cs index 10da633..bc55d05 100644 --- a/OpenSim/Framework/InventoryServiceBase/InventoryServiceBase.cs +++ b/OpenSim/Framework/InventoryServiceBase/InventoryServiceBase.cs | |||
@@ -116,6 +116,14 @@ namespace OpenSim.Framework.InventoryServiceBase | |||
116 | } | 116 | } |
117 | } | 117 | } |
118 | 118 | ||
119 | public void AddItem(InventoryItemBase item) | ||
120 | { | ||
121 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) | ||
122 | { | ||
123 | plugin.Value.addInventoryItem(item); | ||
124 | } | ||
125 | } | ||
126 | |||
119 | /// <summary> | 127 | /// <summary> |
120 | /// | 128 | /// |
121 | /// </summary> | 129 | /// </summary> |