diff options
| author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2017-04-19 16:02:48 -0400 | 
|---|---|---|
| committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2017-04-19 16:02:48 -0400 | 
| commit | de5cbddf7918c45c46a1c3a569bdb1adaf3dde06 (patch) | |
| tree | 35a11fbfffc2d4e01d2f1f7450ea62614fc48919 /indra/llmessage | |
| parent | 8d12ef71a0de00f7bb3ecce61b7fe3a84bda1b88 (diff) | |
| parent | f62b5503285d828813d87779fa0658ee5f122ac5 (diff) | |
merge
Diffstat (limited to 'indra/llmessage')
| -rw-r--r-- | indra/llmessage/llavatarnamecache.cpp | 22 | ||||
| -rw-r--r-- | indra/llmessage/llavatarnamecache.h | 10 | ||||
| -rw-r--r-- | indra/llmessage/llexperiencecache.cpp | 26 | ||||
| -rw-r--r-- | indra/llmessage/llexperiencecache.h | 3 | ||||
| -rw-r--r-- | indra/llmessage/message_prehash.cpp | 1 | ||||
| -rw-r--r-- | indra/llmessage/message_prehash.h | 1 | 
6 files changed, 56 insertions, 7 deletions
diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp index 004db546b7..5a112b5432 100644 --- a/indra/llmessage/llavatarnamecache.cpp +++ b/indra/llmessage/llavatarnamecache.cpp @@ -755,6 +755,28 @@ void LLAvatarNameCache::insert(const LLUUID& agent_id, const LLAvatarName& av_na  	sCache[agent_id] = av_name;  } +LLUUID LLAvatarNameCache::findIdByName(const std::string& name) +{ +    std::map<LLUUID, LLAvatarName>::iterator it; +    std::map<LLUUID, LLAvatarName>::iterator end = sCache.end(); +    for (it = sCache.begin(); it != end; ++it) +    { +        if (it->second.getUserName() == name) +        { +            return it->first; +        } +    } + +    // Legacy method +    LLUUID id; +    if (gCacheName->getUUID(name, id)) +    { +        return id; +    } + +    return LLUUID::null; +} +  #if 0  F64 LLAvatarNameCache::nameExpirationFromHeaders(LLCore::HttpHeaders *headers)  { diff --git a/indra/llmessage/llavatarnamecache.h b/indra/llmessage/llavatarnamecache.h index bd2715e956..63e067c939 100644 --- a/indra/llmessage/llavatarnamecache.h +++ b/indra/llmessage/llavatarnamecache.h @@ -84,7 +84,15 @@ namespace LLAvatarNameCache  	void insert(const LLUUID& agent_id, const LLAvatarName& av_name);  	void erase(const LLUUID& agent_id); -    /// Provide some fallback for agents that return errors. +	// A way to find agent id by UUID, very slow, also unreliable +	// since it doesn't request names, just serch exsisting ones +	// that are likely not in cache. +	// +	// Todo: Find a way to remove this. +	// Curently this method is used for chat history and in some cases notices. +	LLUUID findIdByName(const std::string& name); + +	/// Provide some fallback for agents that return errors.  	void handleAgentError(const LLUUID& agent_id);  	// Compute name expiration time from HTTP Cache-Control header, diff --git a/indra/llmessage/llexperiencecache.cpp b/indra/llmessage/llexperiencecache.cpp index 779d1d9d99..aa7b3c1260 100644 --- a/indra/llmessage/llexperiencecache.cpp +++ b/indra/llmessage/llexperiencecache.cpp @@ -540,18 +540,34 @@ void LLExperienceCache::fetchAssociatedExperience(const LLUUID& objectId, const      }      LLCoprocedureManager::instance().enqueueCoprocedure("ExpCache", "Fetch Associated", -        boost::bind(&LLExperienceCache::fetchAssociatedExperienceCoro, this, _1, objectId, itemId, fn)); +        boost::bind(&LLExperienceCache::fetchAssociatedExperienceCoro, this, _1, objectId, itemId,  std::string(), fn));  } -void LLExperienceCache::fetchAssociatedExperienceCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &httpAdapter, LLUUID objectId, LLUUID itemId, ExperienceGetFn_t fn) +void LLExperienceCache::fetchAssociatedExperience(const LLUUID& objectId, const LLUUID& itemId, std::string url, ExperienceGetFn_t fn) +{ +    if (mCapability.empty()) +    { +        LL_WARNS("ExperienceCache") << "Capability query method not set." << LL_ENDL; +        return; +    } + +    LLCoprocedureManager::instance().enqueueCoprocedure("ExpCache", "Fetch Associated", +        boost::bind(&LLExperienceCache::fetchAssociatedExperienceCoro, this, _1, objectId, itemId, url, fn)); +} + +void LLExperienceCache::fetchAssociatedExperienceCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &httpAdapter, LLUUID objectId, LLUUID itemId, std::string url, ExperienceGetFn_t fn)  {      LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest()); -    std::string url = mCapability("GetMetadata");      if (url.empty())      { -        LL_WARNS("ExperienceCache") << "No Metadata capability." << LL_ENDL; -        return; +        url = mCapability("GetMetadata"); + +        if (url.empty()) +        { +            LL_WARNS("ExperienceCache") << "No Metadata capability." << LL_ENDL; +            return; +        }      }      LLSD fields; diff --git a/indra/llmessage/llexperiencecache.h b/indra/llmessage/llexperiencecache.h index 8ee7080d38..f9ff69c2b6 100644 --- a/indra/llmessage/llexperiencecache.h +++ b/indra/llmessage/llexperiencecache.h @@ -64,6 +64,7 @@ public:      //-------------------------------------------      void fetchAssociatedExperience(const LLUUID& objectId, const LLUUID& itemId, ExperienceGetFn_t fn); +    void fetchAssociatedExperience(const LLUUID& objectId, const LLUUID& itemId, std::string url, ExperienceGetFn_t fn);      void findExperienceByName(const std::string text, int page, ExperienceGetFn_t fn);      void getGroupExperiences(const LLUUID &groupId, ExperienceGetFn_t fn); @@ -148,7 +149,7 @@ private:      void requestExperiencesCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &, std::string, RequestQueue_t);      void requestExperiences(); -    void fetchAssociatedExperienceCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &, LLUUID, LLUUID, ExperienceGetFn_t); +    void fetchAssociatedExperienceCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &, LLUUID, LLUUID, std::string, ExperienceGetFn_t);      void findExperienceByNameCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &, std::string, int, ExperienceGetFn_t);      void getGroupExperiencesCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &, LLUUID , ExperienceGetFn_t);      void regionExperiencesCoro(LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t &httpAdapter, CapabilityQuery_t regioncaps, bool update, LLSD experiences, ExperienceGetFn_t fn); diff --git a/indra/llmessage/message_prehash.cpp b/indra/llmessage/message_prehash.cpp index 5c6b3d5fab..6675e12649 100644 --- a/indra/llmessage/message_prehash.cpp +++ b/indra/llmessage/message_prehash.cpp @@ -618,6 +618,7 @@ char const* const _PREHASH_GroupAccountSummaryRequest = LLMessageStringTable::ge  char const* const _PREHASH_GroupVoteHistoryRequest = LLMessageStringTable::getInstance()->getString("GroupVoteHistoryRequest");  char const* const _PREHASH_ParamValue = LLMessageStringTable::getInstance()->getString("ParamValue");  char const* const _PREHASH_MaxAgents = LLMessageStringTable::getInstance()->getString("MaxAgents"); +char const* const _PREHASH_HardMaxAgents = LLMessageStringTable::getInstance()->getString("HardMaxAgents");  char const* const _PREHASH_CreateNewOutfitAttachments = LLMessageStringTable::getInstance()->getString("CreateNewOutfitAttachments");  char const* const _PREHASH_RegionHandle = LLMessageStringTable::getInstance()->getString("RegionHandle");  char const* const _PREHASH_TeleportProgress = LLMessageStringTable::getInstance()->getString("TeleportProgress"); diff --git a/indra/llmessage/message_prehash.h b/indra/llmessage/message_prehash.h index e696c3b0ca..a510b4498f 100644 --- a/indra/llmessage/message_prehash.h +++ b/indra/llmessage/message_prehash.h @@ -618,6 +618,7 @@ extern char const* const _PREHASH_GroupAccountSummaryRequest;  extern char const* const _PREHASH_GroupVoteHistoryRequest;  extern char const* const _PREHASH_ParamValue;  extern char const* const _PREHASH_MaxAgents; +extern char const* const _PREHASH_HardMaxAgents;  extern char const* const _PREHASH_CreateNewOutfitAttachments;  extern char const* const _PREHASH_RegionHandle;  extern char const* const _PREHASH_TeleportProgress;  | 
