28 using System.Reflection;
29 using System.Collections.Generic;
30 using OpenSim.Framework;
31 using OpenSim.Services.Interfaces;
35 namespace OpenSim.
Region.CoreModules.ServiceConnectorsOut.UserAccounts
39 private const double CACHE_EXPIRATION_SECONDS = 120000.0;
45 private ExpiringCache<UUID, UserAccount> m_UUIDCache;
46 private ExpiringCache<string, UUID> m_NameCache;
50 m_UUIDCache =
new ExpiringCache<UUID, UserAccount>();
51 m_NameCache =
new ExpiringCache<string, UUID>();
57 m_UUIDCache.AddOrUpdate(userID, account, CACHE_EXPIRATION_SECONDS);
59 m_NameCache.AddOrUpdate(account.Name, account.PrincipalID, CACHE_EXPIRATION_SECONDS);
66 m_UUIDCache.Remove(userID);
73 if (m_UUIDCache.TryGetValue(userID, out account))
86 if (!m_NameCache.Contains(name))
90 UUID uuid = UUID.Zero;
91 if (m_NameCache.TryGetValue(name, out uuid))
92 if (m_UUIDCache.TryGetValue(uuid, out account))
103 if (!m_NameCache.Contains(name))
106 UUID uuid = UUID.Zero;
107 if (m_NameCache.TryGetValue(name, out uuid))
109 m_NameCache.Remove(name);
110 m_UUIDCache.Remove(uuid);
UserAccount Get(string name, out bool inCache)
UserAccount Get(UUID userID, out bool inCache)
void Cache(UUID userID, UserAccount account)
void Invalidate(UUID userID)