aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts
diff options
context:
space:
mode:
authorUbitUmarov2016-08-13 05:22:29 +0100
committerUbitUmarov2016-08-13 05:22:29 +0100
commit7c1b2a5dde3b61dae4cca6bff7d2fe560be96fae (patch)
tree09a79ea66f619af6295e20b8c92b397cd90ebafc /OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts
parent add a missing cast to ulong in RegionGridLocToHandle (mantis: 7994) (diff)
downloadopensim-SC-7c1b2a5dde3b61dae4cca6bff7d2fe560be96fae.zip
opensim-SC-7c1b2a5dde3b61dae4cca6bff7d2fe560be96fae.tar.gz
opensim-SC-7c1b2a5dde3b61dae4cca6bff7d2fe560be96fae.tar.bz2
opensim-SC-7c1b2a5dde3b61dae4cca6bff7d2fe560be96fae.tar.xz
add some wiring to have GetUserAccounts for multiple IDs on a single request to grid services. Unfinished, untested
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs6
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs35
2 files changed, 41 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs
index cf9a7b4..1002b85 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/LocalUserAccountServiceConnector.cs
@@ -182,6 +182,12 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
182 return UserAccountService.GetUserAccount(scopeID, Email); 182 return UserAccountService.GetUserAccount(scopeID, Email);
183 } 183 }
184 184
185 public List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported)
186 {
187 return UserAccountService.GetUserAccounts(scopeID, IDs, out suported);
188 }
189
190
185 public List<UserAccount> GetUserAccountsWhere(UUID scopeID, string query) 191 public List<UserAccount> GetUserAccountsWhere(UUID scopeID, string query)
186 { 192 {
187 return null; 193 return null;
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs
index afbba30..fb5fae1 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/UserAccounts/RemoteUserAccountServiceConnector.cs
@@ -26,6 +26,8 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.Collections;
30using System.Collections.Generic;
29using Nini.Config; 31using Nini.Config;
30using log4net; 32using log4net;
31using Mono.Addins; 33using Mono.Addins;
@@ -158,6 +160,39 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.UserAccounts
158 return account; 160 return account;
159 } 161 }
160 162
163 public override List<UserAccount> GetUserAccounts(UUID scopeID, List<string> IDs, out bool suported)
164 {
165 suported = true;
166 List<UserAccount> accs = new List<UserAccount>();
167 List<string> missing = new List<string>();
168
169 UUID uuid = UUID.Zero;;
170 UserAccount account;
171 bool inCache = false;
172
173 foreach(string id in IDs)
174 {
175 if(UUID.TryParse(id, out uuid))
176 {
177 account = m_Cache.Get(uuid, out inCache);
178 if (inCache)
179 accs.Add(account);
180 else
181 missing.Add(id);
182 }
183 }
184
185 if(missing.Count > 0)
186 {
187 List<UserAccount> ext = base.GetUserAccounts(scopeID, missing, out suported);
188 if(suported && ext != null)
189 accs.AddRange(ext);
190 }
191
192 return accs;
193 }
194
195
161 public override bool StoreUserAccount(UserAccount data) 196 public override bool StoreUserAccount(UserAccount data)
162 { 197 {
163 // This remote connector refuses to serve this method 198 // This remote connector refuses to serve this method