aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Communications/caches
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/Communications/caches/CachedUserInfo.cs77
-rw-r--r--OpenSim/Framework/Communications/caches/InventoryFolder.cs (renamed from OpenSim/Region/Caches/InventoryFolder.cs)2
-rw-r--r--OpenSim/Framework/Communications/caches/UserProfileCache.cs (renamed from OpenSim/Region/Caches/UserProfileCache.cs)42
3 files changed, 115 insertions, 6 deletions
diff --git a/OpenSim/Framework/Communications/caches/CachedUserInfo.cs b/OpenSim/Framework/Communications/caches/CachedUserInfo.cs
new file mode 100644
index 0000000..1c779e9
--- /dev/null
+++ b/OpenSim/Framework/Communications/caches/CachedUserInfo.cs
@@ -0,0 +1,77 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using OpenSim.Framework.Data;
5using libsecondlife;
6
7namespace OpenSim.Framework.Communications.Caches
8{
9 public class CachedUserInfo
10 {
11 public UserProfileData UserProfile;
12 //public Dictionary<LLUUID, InventoryFolder> Folders = new Dictionary<LLUUID, InventoryFolder>();
13 public InventoryFolder RootFolder;
14
15 public CachedUserInfo()
16 {
17
18 }
19
20 /// <summary>
21 ///
22 /// </summary>
23 /// <param name="userID"></param>
24 /// <param name="folderInfo"></param>
25 public void FolderReceive(LLUUID userID, InventoryFolder folderInfo)
26 {
27 if (userID == UserProfile.UUID)
28 {
29 if (this.RootFolder == null)
30 {
31 if (folderInfo.parentID == LLUUID.Zero)
32 {
33 this.RootFolder = folderInfo;
34 }
35 }
36 else
37 {
38 if (this.RootFolder.folderID == folderInfo.parentID)
39 {
40 this.RootFolder.SubFolders.Add(folderInfo.folderID, folderInfo);
41 }
42 else
43 {
44 InventoryFolder pFolder = this.RootFolder.HasSubFolder(folderInfo.parentID);
45 if (pFolder != null)
46 {
47 pFolder.SubFolders.Add(folderInfo.folderID, folderInfo);
48 }
49 }
50 }
51 }
52 }
53
54 public void ItemReceive(LLUUID userID, InventoryItemBase itemInfo)
55 {
56 if (userID == UserProfile.UUID)
57 {
58 if (this.RootFolder != null)
59 {
60 if (itemInfo.parentFolderID == this.RootFolder.folderID)
61 {
62 this.RootFolder.Items.Add(itemInfo.inventoryID, itemInfo);
63 }
64 else
65 {
66 InventoryFolder pFolder = this.RootFolder.HasSubFolder(itemInfo.parentFolderID);
67 if (pFolder != null)
68 {
69 pFolder.Items.Add(itemInfo.inventoryID, itemInfo);
70 }
71 }
72 }
73
74 }
75 }
76 }
77}
diff --git a/OpenSim/Region/Caches/InventoryFolder.cs b/OpenSim/Framework/Communications/caches/InventoryFolder.cs
index 364a184..eaddf19 100644
--- a/OpenSim/Region/Caches/InventoryFolder.cs
+++ b/OpenSim/Framework/Communications/caches/InventoryFolder.cs
@@ -4,7 +4,7 @@ using System.Text;
4using libsecondlife; 4using libsecondlife;
5using OpenSim.Framework.Data; 5using OpenSim.Framework.Data;
6 6
7namespace OpenSim.Region.Caches 7namespace OpenSim.Framework.Communications.Caches
8{ 8{
9 public class InventoryFolder : InventoryFolderBase 9 public class InventoryFolder : InventoryFolderBase
10 { 10 {
diff --git a/OpenSim/Region/Caches/UserProfileCache.cs b/OpenSim/Framework/Communications/caches/UserProfileCache.cs
index 0717e55..0ee63ba 100644
--- a/OpenSim/Region/Caches/UserProfileCache.cs
+++ b/OpenSim/Framework/Communications/caches/UserProfileCache.cs
@@ -3,16 +3,19 @@ using System.Collections.Generic;
3using System.Text; 3using System.Text;
4using libsecondlife; 4using libsecondlife;
5using OpenSim.Framework.Data; 5using OpenSim.Framework.Data;
6using OpenSim.Framework.Communications;
6 7
7namespace OpenSim.Region.Caches 8namespace OpenSim.Framework.Communications.Caches
8{ 9{
9 public class UserProfileCache 10 public class UserProfileCache
10 { 11 {
11 public Dictionary<LLUUID, CachedUserInfo> UserProfiles = new Dictionary<LLUUID, CachedUserInfo>(); 12 public Dictionary<LLUUID, CachedUserInfo> UserProfiles = new Dictionary<LLUUID, CachedUserInfo>();
12 13
13 public UserProfileCache() 14 private CommunicationsManager m_parent;
14 {
15 15
16 public UserProfileCache(CommunicationsManager parent)
17 {
18 m_parent = parent;
16 } 19 }
17 20
18 /// <summary> 21 /// <summary>
@@ -22,7 +25,36 @@ namespace OpenSim.Region.Caches
22 /// <param name="userID"></param> 25 /// <param name="userID"></param>
23 public void AddNewUser(LLUUID userID) 26 public void AddNewUser(LLUUID userID)
24 { 27 {
28 if (!this.UserProfiles.ContainsKey(userID))
29 {
30 CachedUserInfo userInfo = new CachedUserInfo();
31 userInfo.UserProfile = this.RequestUserProfileForUser(userID);
32 this.m_parent.InventoryServer.RequestInventoryForUser(userID, userInfo.FolderReceive, userInfo.ItemReceive);
33 if (userInfo.UserProfile != null)
34 {
35 this.UserProfiles.Add(userID, userInfo);
36 }
37 else
38 {
39 //no profile for this user, what do we do now?
40 }
41 }
42 else
43 {
44 //already have a cached profile for this user
45 //we should make sure its upto date with the user server version
46 }
47 }
25 48
49 /// <summary>
50 /// A new user has moved into a region in this instance
51 /// so get info from servers
52 /// </summary>
53 /// <param name="firstName"></param>
54 /// <param name="lastName"></param>
55 public void AddNewUser(string firstName, string lastName)
56 {
57
26 } 58 }
27 59
28 /// <summary> 60 /// <summary>
@@ -40,9 +72,9 @@ namespace OpenSim.Region.Caches
40 /// Request the user profile from User server 72 /// Request the user profile from User server
41 /// </summary> 73 /// </summary>
42 /// <param name="userID"></param> 74 /// <param name="userID"></param>
43 private void RequestUserProfileForUser(LLUUID userID) 75 private UserProfileData RequestUserProfileForUser(LLUUID userID)
44 { 76 {
45 77 return this.m_parent.UserServer.GetUserProfile(userID);
46 } 78 }
47 79
48 /// <summary> 80 /// <summary>