aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs34
1 files changed, 34 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs
index 7d61b20..13acdf2 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs
@@ -34,6 +34,8 @@ using OpenSim.Region.Framework.Scenes;
34using OpenSim.Services.Interfaces; 34using OpenSim.Services.Interfaces;
35using OpenSim.Services.Connectors; 35using OpenSim.Services.Connectors;
36 36
37using OpenMetaverse;
38
37namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts 39namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
38{ 40{
39 public class RemoteUserAccountServicesConnector : UserAccountServicesConnector, 41 public class RemoteUserAccountServicesConnector : UserAccountServicesConnector,
@@ -44,6 +46,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
44 MethodBase.GetCurrentMethod().DeclaringType); 46 MethodBase.GetCurrentMethod().DeclaringType);
45 47
46 private bool m_Enabled = false; 48 private bool m_Enabled = false;
49 private UserAccountCache m_Cache;
47 50
48 public Type ReplaceableInterface 51 public Type ReplaceableInterface
49 { 52 {
@@ -73,6 +76,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
73 m_Enabled = true; 76 m_Enabled = true;
74 77
75 base.Initialise(source); 78 base.Initialise(source);
79 m_Cache = new UserAccountCache();
76 80
77 m_log.Info("[USER CONNECTOR]: Remote users enabled"); 81 m_log.Info("[USER CONNECTOR]: Remote users enabled");
78 } 82 }
@@ -110,5 +114,35 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
110 if (!m_Enabled) 114 if (!m_Enabled)
111 return; 115 return;
112 } 116 }
117
118 #region Overwritten methods from IUserAccountService
119
120 public override UserAccount GetUserAccount(UUID scopeID, UUID userID)
121 {
122 UserAccount account = m_Cache.Get(userID);
123 if (account != null)
124 return account;
125
126 account = base.GetUserAccount(scopeID, userID);
127 if (account != null)
128 m_Cache.Cache(account);
129
130 return account;
131 }
132
133 public override UserAccount GetUserAccount(UUID scopeID, string firstName, string lastName)
134 {
135 UserAccount account = m_Cache.Get(firstName + " " + lastName);
136 if (account != null)
137 return account;
138
139 account = base.GetUserAccount(scopeID, firstName, lastName);
140 if (account != null)
141 m_Cache.Cache(account);
142
143 return account;
144 }
145
146 #endregion
113 } 147 }
114} 148}