private void doUUIDNameRequest(UUID uuid, NameFoundCallback callBack, bool async)
        {
            string[] returnstring = new string[0];
            bool     doLookup     = false;

            lock (m_nameRequestCache)
            {
                if (m_nameRequestCache.ContainsKey(uuid))
                {
                    returnstring = m_nameRequestCache[uuid];
                }
                else
                {
                    // we don't want to lock the dictionary while we're doing the lookup
                    doLookup = true;
                }
            }

            if (!doLookup)
            {
                callBack(returnstring);
                return;
            }
            else
            {
                if (async)
                {
                    Util.FireAndForget(Util.PoolSelection.LongIO, delegate(object obj)
                    {
                        doUUIDSyncRequest(uuid, callBack);
                    });
                }
                else
                {
                    doUUIDSyncRequest(uuid, callBack);
                }

                return;
            }
        }
        private void doUUIDSyncRequest(UUID uuid, NameFoundCallback callBack)
        {
            string[] returnstring = new string[0];

            string firstName;
            string lastName;

            if (m_userService.Key2Names(uuid, false, out firstName, out lastName))
            {
                returnstring = new string[2];
                // UUID profileId = profileData.ID;
                returnstring[0] = firstName;
                returnstring[1] = lastName;
                lock (m_nameRequestCache)
                {
                    if (!m_nameRequestCache.ContainsKey(uuid))
                    {
                        m_nameRequestCache.Add(uuid, returnstring);
                    }
                }
            }

            callBack(returnstring);
        }
예제 #3
0
        private void doUUIDNameRequest(UUID uuid, NameFoundCallback callBack, bool async)
        {
            string[] returnstring = new string[0];
            bool doLookup = false;

            lock (m_nameRequestCache)
            {
                if (m_nameRequestCache.ContainsKey(uuid))
                {
                    returnstring = m_nameRequestCache[uuid];
                }
                else
                {
                    // we don't want to lock the dictionary while we're doing the lookup
                    doLookup = true;
                }
            }

            if (!doLookup)
            {
                callBack(returnstring);
                return;
            }
            else
            {
                if (async)
                {
                    Util.FireAndForget(Util.PoolSelection.LongIO, delegate(object obj)
                    {
                        doUUIDSyncRequest(uuid, callBack);
                    });
                }
                else
                {
                    doUUIDSyncRequest(uuid, callBack);
                }

                return;
            }
        }
예제 #4
0
        private void doUUIDSyncRequest(UUID uuid, NameFoundCallback callBack)
        {
            string[] returnstring = new string[0];

            string firstName;
            string lastName;
            if (m_userService.Key2Names(uuid, false, out firstName, out lastName))
            {
                returnstring = new string[2];
                // UUID profileId = profileData.ID;
                returnstring[0] = firstName;
                returnstring[1] = lastName;
                lock (m_nameRequestCache)
                {
                    if (!m_nameRequestCache.ContainsKey(uuid))
                        m_nameRequestCache.Add(uuid, returnstring);
                }
            }

            callBack(returnstring);
        }
예제 #5
0
        private void doUUIDSyncRequest(UUID uuid, NameFoundCallback callBack)
        {
            string[] returnstring = new string[0];

            //first see if by chance we have this is the profile cache
            CachedUserInfo uInfo = m_userProfileCacheService.GetUserDetails(uuid);
            UserProfileData profileData = (uInfo != null) ? uInfo.UserProfile : null;

            if (profileData != null)
            {
                returnstring = new string[2];
                // UUID profileId = profileData.ID;
                returnstring[0] = profileData.FirstName;
                returnstring[1] = profileData.SurName;
                lock (m_nameRequestCache)
                {
                    if (!m_nameRequestCache.ContainsKey(uuid))
                        m_nameRequestCache.Add(uuid, returnstring);
                }
            }

            callBack(returnstring);
        }