diff options
Diffstat (limited to 'OpenSim/Framework/Communications')
5 files changed, 60 insertions, 11 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 | } |