MAINT-7118 Swapping legacy people API with new cache

meow-7.2.2
andreykproductengine 2017-02-15 20:40:03 +02:00
parent 9c015df3fa
commit 605160d501
32 changed files with 280 additions and 148 deletions

View File

@ -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)
{

View File

@ -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,

View File

@ -478,15 +478,14 @@ void LLAvatarActions::kick(const LLUUID& id)
// static
void LLAvatarActions::freezeAvatar(const LLUUID& id)
{
std::string fullname;
gCacheName->getFullName(id, fullname);
LLAvatarName av_name;
LLSD payload;
payload["avatar_id"] = id;
if (!fullname.empty())
if (LLAvatarNameCache::get(id, &av_name))
{
LLSD args;
args["AVATAR_NAME"] = fullname;
args["AVATAR_NAME"] = av_name.getUserName();
LLNotificationsUtil::add("FreezeAvatarFullname", args, payload, handleFreezeAvatar);
}
else
@ -498,15 +497,15 @@ void LLAvatarActions::freezeAvatar(const LLUUID& id)
// static
void LLAvatarActions::ejectAvatar(const LLUUID& id, bool ban_enabled)
{
std::string fullname;
gCacheName->getFullName(id, fullname);
LLAvatarName av_name;
LLSD payload;
payload["avatar_id"] = id;
payload["ban_enabled"] = ban_enabled;
LLSD args;
if (!fullname.empty())
bool has_name = LLAvatarNameCache::get(id, &av_name);
if (has_name)
{
args["AVATAR_NAME"] = fullname;
args["AVATAR_NAME"] = av_name.getUserName();
}
if (ban_enabled)
@ -515,7 +514,7 @@ void LLAvatarActions::ejectAvatar(const LLUUID& id, bool ban_enabled)
}
else
{
if (!fullname.empty())
if (has_name)
{
LLNotificationsUtil::add("EjectAvatarFullnameNoBan", args, payload, handleEjectAvatar);
}
@ -991,10 +990,10 @@ bool LLAvatarActions::canShareSelectedItems(LLInventoryPanel* inv_panel /* = NUL
// static
void LLAvatarActions::toggleBlock(const LLUUID& id)
{
std::string name;
LLAvatarName av_name;
LLAvatarNameCache::get(id, &av_name);
gCacheName->getFullName(id, name); // needed for mute
LLMute mute(id, name, LLMute::AGENT);
LLMute mute(id, av_name.getUserName(), LLMute::AGENT);
if (LLMuteList::getInstance()->isMuted(mute.mID, mute.mName))
{
@ -1009,13 +1008,13 @@ void LLAvatarActions::toggleBlock(const LLUUID& id)
// static
void LLAvatarActions::toggleMuteVoice(const LLUUID& id)
{
std::string name;
gCacheName->getFullName(id, name); // needed for mute
LLAvatarName av_name;
LLAvatarNameCache::get(id, &av_name);
LLMuteList* mute_list = LLMuteList::getInstance();
bool is_muted = mute_list->isMuted(id, LLMute::flagVoiceChat);
LLMute mute(id, name, LLMute::AGENT);
LLMute mute(id, av_name.getUserName(), LLMute::AGENT);
if (!is_muted)
{
mute_list->add(mute, LLMute::flagVoiceChat);
@ -1329,9 +1328,9 @@ bool LLAvatarActions::isFriend(const LLUUID& id)
// static
bool LLAvatarActions::isBlocked(const LLUUID& id)
{
std::string name;
gCacheName->getFullName(id, name); // needed for mute
return LLMuteList::getInstance()->isMuted(id, name);
LLAvatarName av_name;
LLAvatarNameCache::get(id, &av_name);
return LLMuteList::getInstance()->isMuted(id, av_name.getUserName());
}
// static
@ -1343,8 +1342,10 @@ bool LLAvatarActions::isVoiceMuted(const LLUUID& id)
// static
bool LLAvatarActions::canBlock(const LLUUID& id)
{
std::string full_name;
gCacheName->getFullName(id, full_name); // needed for mute
LLAvatarName av_name;
LLAvatarNameCache::get(id, &av_name);
std::string full_name = av_name.getUserName();
bool is_linden = (full_name.find("Linden") != std::string::npos);
bool is_self = id == gAgentID;
return !is_self && !is_linden;

View File

@ -243,7 +243,6 @@ S32 LLAvatarTracker::addBuddyList(const LLAvatarTracker::buddy_map_t& buds)
using namespace std;
U32 new_buddy_count = 0;
std::string full_name;
LLUUID agent_id;
for(buddy_map_t::const_iterator itr = buds.begin(); itr != buds.end(); ++itr)
{
@ -253,8 +252,11 @@ S32 LLAvatarTracker::addBuddyList(const LLAvatarTracker::buddy_map_t& buds)
{
++new_buddy_count;
mBuddyInfo[agent_id] = (*itr).second;
// IDEVO: is this necessary? name is unused?
gCacheName->getFullName(agent_id, full_name);
// pre-request name for notifications?
LLAvatarName av_name;
LLAvatarNameCache::get(agent_id, &av_name);
addChangedMask(LLFriendObserver::ADD, agent_id);
LL_DEBUGS() << "Added buddy " << agent_id
<< ", " << (mBuddyInfo[agent_id]->isOnline() ? "Online" : "Offline")
@ -889,7 +891,9 @@ bool LLCollectMappableBuddies::operator()(const LLUUID& buddy_id, LLRelationship
bool LLCollectOnlineBuddies::operator()(const LLUUID& buddy_id, LLRelationship* buddy)
{
gCacheName->getFullName(buddy_id, mFullName);
LLAvatarName av_name;
LLAvatarNameCache::get(buddy_id, &av_name);
mFullName = av_name.getUserName();
buddy_map_t::value_type value(buddy_id, mFullName);
if(buddy->isOnline())
{

View File

@ -271,9 +271,9 @@ public:
void mute(const LLUUID& participant_id, U32 flags)
{
BOOL is_muted = LLMuteList::getInstance()->isMuted(participant_id, flags);
std::string name;
gCacheName->getFullName(participant_id, name);
LLMute mute(participant_id, name, LLMute::AGENT);
LLAvatarName av_name;
LLAvatarNameCache::get(participant_id, &av_name);
LLMute mute(participant_id, av_name.getUserName(), LLMute::AGENT);
if (!is_muted)
{

View File

@ -602,12 +602,12 @@ bool LLConversationItemParticipant::isVoiceMuted()
void LLConversationItemParticipant::muteVoice(bool mute_voice)
{
std::string name;
gCacheName->getFullName(mUUID, name);
LLAvatarName av_name;
LLAvatarNameCache::get(mUUID, &av_name);
LLMuteList * mute_listp = LLMuteList::getInstance();
bool voice_already_muted = mute_listp->isMuted(mUUID, name);
bool voice_already_muted = mute_listp->isMuted(mUUID, av_name.getUserName());
LLMute mute(mUUID, name, LLMute::AGENT);
LLMute mute(mUUID, av_name.getUserName(), LLMute::AGENT);
if (voice_already_muted && !mute_voice)
{
mute_listp->remove(mute);

View File

@ -25,6 +25,7 @@
#include "llviewerprecompiledheaders.h"
#include "llavatarnamecache.h"
#include "llconversationlog.h"
#include "llfloaterconversationpreview.h"
#include "llimview.h"
@ -220,7 +221,7 @@ void LLFloaterConversationPreview::showHistory()
else
{
std::string legacy_name = gCacheName->buildLegacyName(from);
gCacheName->getUUID(legacy_name, from_id);
from_id = LLAvatarNameCache::findIdByName(legacy_name);
}
LLChat chat;

View File

@ -2099,9 +2099,10 @@ void LLFloaterIMContainer::toggleAllowTextChat(const LLUUID& participant_uuid)
void LLFloaterIMContainer::toggleMute(const LLUUID& participant_id, U32 flags)
{
BOOL is_muted = LLMuteList::getInstance()->isMuted(participant_id, flags);
std::string name;
gCacheName->getFullName(participant_id, name);
LLMute mute(participant_id, name, LLMute::AGENT);
LLAvatarName av_name;
LLAvatarNameCache::get(participant_id, &av_name);
LLMute mute(participant_id, av_name.getUserName(), LLMute::AGENT);
if (!is_muted)
{

View File

@ -218,7 +218,7 @@ void LLFloaterIMNearbyChat::loadHistory()
else
{
std::string legacy_name = gCacheName->buildLegacyName(from);
gCacheName->getUUID(legacy_name, from_id);
from_id = LLAvatarNameCache::findIdByName(legacy_name);
}
LLChat chat;

View File

@ -30,6 +30,7 @@
#include <algorithm>
#include <functional>
#include "llcachename.h"
#include "llavatarnamecache.h"
#include "lldbstrings.h"
#include "llfloaterreg.h"
@ -274,12 +275,12 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
if (item->getCreatorUUID().notNull())
{
std::string name;
gCacheName->getFullName(item->getCreatorUUID(), name);
LLAvatarName av_name;
LLAvatarNameCache::get(item->getCreatorUUID(), &av_name);
getChildView("BtnCreator")->setEnabled(TRUE);
getChildView("LabelCreatorTitle")->setEnabled(TRUE);
getChildView("LabelCreatorName")->setEnabled(TRUE);
getChild<LLUICtrl>("LabelCreatorName")->setValue(name);
getChild<LLUICtrl>("LabelCreatorName")->setValue(av_name.getUserName());
}
else
{
@ -301,7 +302,9 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
}
else
{
gCacheName->getFullName(perm.getOwner(), name);
LLAvatarName av_name;
LLAvatarNameCache::get(perm.getOwner(), &av_name);
name = av_name.getUserName();
}
getChildView("BtnOwner")->setEnabled(TRUE);
getChildView("LabelOwnerTitle")->setEnabled(TRUE);

View File

@ -390,6 +390,14 @@ void LLPanelScriptLimitsRegionMemory::setErrorStatus(S32 status, const std::stri
LL_WARNS() << "Can't handle remote parcel request."<< " Http Status: "<< status << ". Reason : "<< reason<<LL_ENDL;
}
// callback from the name cache with an owner name to add to the list
void LLPanelScriptLimitsRegionMemory::onAvatarNameCache(
const LLUUID& id,
const LLAvatarName& av_name)
{
onNameCache(id, av_name.getUserName());
}
// callback from the name cache with an owner name to add to the list
void LLPanelScriptLimitsRegionMemory::onNameCache(
const LLUUID& id,
@ -503,7 +511,9 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
}
else
{
name_is_cached = gCacheName->getFullName(owner_id, owner_buf); // username
LLAvatarName av_name;
name_is_cached = LLAvatarNameCache::get(owner_id, &av_name);
owner_buf = av_name.getUserName();
owner_buf = LLCacheName::buildUsername(owner_buf);
}
if(!name_is_cached)
@ -511,9 +521,18 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
if(std::find(names_requested.begin(), names_requested.end(), owner_id) == names_requested.end())
{
names_requested.push_back(owner_id);
gCacheName->get(owner_id, is_group_owned, // username
boost::bind(&LLPanelScriptLimitsRegionMemory::onNameCache,
this, _1, _2));
if (is_group_owned)
{
gCacheName->getGroup(owner_id,
boost::bind(&LLPanelScriptLimitsRegionMemory::onNameCache,
this, _1, _2));
}
else
{
LLAvatarNameCache::get(owner_id,
boost::bind(&LLPanelScriptLimitsRegionMemory::onAvatarNameCache,
this, _1, _2));
}
}
}
}

View File

@ -38,6 +38,7 @@
class LLPanelScriptLimitsInfo;
class LLTabContainer;
class LLAvatarName;
class LLPanelScriptLimitsRegionMemory;
@ -116,6 +117,8 @@ public:
void checkButtonsEnabled();
private:
void onAvatarNameCache(const LLUUID& id,
const LLAvatarName& av_name);
void onNameCache(const LLUUID& id,
const std::string& name);

View File

@ -36,6 +36,7 @@
#include "llagentdata.h"
#include "llagentui.h"
#include "llagentwearables.h"
#include "llavatarnamecache.h"
#include "llfloatertools.h" // for gFloaterTool
#include "llhudeffecttrail.h"
#include "llhudmanager.h"
@ -327,12 +328,12 @@ void LLGiveInventory::logInventoryOffer(const LLUUID& to_agent, const LLUUID &im
// If this item was given by drag-and-drop on avatar while IM panel wasn't open, log this action to IM history.
else
{
std::string full_name;
if (gCacheName->getFullName(to_agent, full_name))
LLAvatarName av_name;
if (LLAvatarNameCache::get(to_agent, &av_name))
{
// Build a new format username or firstname_lastname for legacy names
// to use it for a history log filename.
full_name = LLCacheName::buildUsername(full_name);
std::string full_name = LLCacheName::buildUsername(av_name.getUserName());
LLUIString message = LLTrans::getString(message_name + "-im");
message.setArgs(args);
LLIMModel::instance().logToFile(full_name, LLTrans::getString("SECOND_LIFE"), im_session_id, message.getString());

View File

@ -38,6 +38,7 @@
#include "llappviewer.h"
#include "llagent.h"
#include "llavatarnamecache.h"
#include "llui.h"
#include "message.h"
#include "roles_constants.h"
@ -54,6 +55,7 @@
#include <boost/regex.hpp>
#include "llcorehttputil.h"
#if LL_MSVC
#pragma warning(push)
// disable boost::lexical_cast warning
@ -819,9 +821,9 @@ void LLGroupMgrGroupData::banMemberById(const LLUUID& participant_uuid)
LLGroupMgr::getInstance()->sendGroupMemberEjects(mID, ids);
LLGroupMgr::getInstance()->sendGroupMembersRequest(mID);
LLSD args;
std::string name;
gCacheName->getFullName(participant_uuid, name);
args["AVATAR_NAME"] = name;
LLAvatarName av_name;
LLAvatarNameCache::get(participant_uuid, &av_name);
args["AVATAR_NAME"] = av_name.getUserName();
args["GROUP_NAME"] = mName;
LLNotifications::instance().add(LLNotification::Params("EjectAvatarFromGroup").substitutions(args));
}

View File

@ -646,6 +646,7 @@ void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::ES
std::string you_joined_call = LLTrans::getString("you_joined_call");
std::string you_started_call = LLTrans::getString("you_started_call");
std::string other_avatar_name = "";
LLAvatarName av_name;
std::string message;
@ -655,7 +656,8 @@ void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::ES
// no text notifications
break;
case P2P_SESSION:
gCacheName->getFullName(mOtherParticipantID, other_avatar_name); // voice
LLAvatarNameCache::get(mOtherParticipantID, &av_name);
other_avatar_name = av_name.getUserName();
if(direction == LLVoiceChannel::INCOMING_CALL)
{
@ -806,7 +808,7 @@ void LLIMModel::LLIMSession::addMessagesFromHistory(const std::list<LLSD>& histo
{
// convert it to a legacy name if we have a complete name
std::string legacy_name = gCacheName->buildLegacyName(from);
gCacheName->getUUID(legacy_name, from_id);
from_id = LLAvatarNameCache::findIdByName(legacy_name);
}
std::string timestamp = msg[LL_IM_TIME];
@ -2765,10 +2767,10 @@ void LLIMMgr::addSystemMessage(const LLUUID& session_id, const std::string& mess
else
{
std::string session_name;
LLAvatarName av_name;
// since we select user to share item with - his name is already in cache
gCacheName->getFullName(args["user_id"], session_name);
session_name = LLCacheName::buildUsername(session_name);
LLAvatarNameCache::get(args["user_id"], &av_name);
std::string session_name = LLCacheName::buildUsername(av_name.getUserName());
LLIMModel::instance().logToFile(session_name, SYSTEM_FROM, LLUUID::null, message.getString());
}
}
@ -3075,8 +3077,8 @@ void LLIMMgr::inviteToSession(
{
if (caller_name.empty())
{
gCacheName->get(caller_id, false, // voice
boost::bind(&LLIMMgr::onInviteNameLookup, payload, _1, _2, _3));
LLAvatarNameCache::get(caller_id,
boost::bind(&LLIMMgr::onInviteNameLookup, payload, _1, _2));
}
else
{
@ -3095,9 +3097,9 @@ void LLIMMgr::inviteToSession(
}
}
void LLIMMgr::onInviteNameLookup(LLSD payload, const LLUUID& id, const std::string& name, bool is_group)
void LLIMMgr::onInviteNameLookup(LLSD payload, const LLUUID& id, const LLAvatarName& av_name)
{
payload["caller_name"] = name;
payload["caller_name"] = av_name.getUserName();
payload["session_name"] = payload["caller_name"].asString();
std::string notify_box_type = payload["notify_box_type"].asString();

View File

@ -473,7 +473,7 @@ private:
void processIMTypingCore(const LLIMInfo* im_info, BOOL typing);
static void onInviteNameLookup(LLSD payload, const LLUUID& id, const std::string& name, bool is_group);
static void onInviteNameLookup(LLSD payload, const LLUUID& id, const LLAvatarName& name);
void notifyObserverSessionAdded(const LLUUID& session_id, const std::string& name, const LLUUID& other_participant_id, bool has_offline_msg);
//Triggers when a session has already been added

View File

@ -34,6 +34,7 @@
#include "llagent.h"
#include "llagentwearables.h"
#include "llappearancemgr.h"
#include "llavatarnamecache.h"
#include "llclipboard.h"
#include "llinventorypanel.h"
#include "llinventorybridge.h"
@ -1022,19 +1023,19 @@ U32 LLInventoryModel::updateItem(const LLViewerInventoryItem* item, U32 mask)
{
// Valid UUID; set the item UUID and rename it
new_item->setCreator(id);
std::string avatar_name;
LLAvatarName av_name;
if (gCacheName->getFullName(id, avatar_name))
if (LLAvatarNameCache::get(id, &av_name))
{
new_item->rename(avatar_name);
new_item->rename(av_name.getUserName());
mask |= LLInventoryObserver::LABEL;
}
else
{
// Fetch the current name
gCacheName->get(id, FALSE,
LLAvatarNameCache::get(id,
boost::bind(&LLViewerInventoryItem::onCallingCardNameLookup, new_item.get(),
_1, _2, _3));
_1, _2));
}
}

View File

@ -53,6 +53,7 @@
#include "llxfermanager.h"
#include "llagent.h"
#include "llavatarnamecache.h"
#include "llviewergenericmessage.h" // for gGenericDispatcher
#include "llworld.h" //for particle system banning
#include "llimview.h"
@ -456,7 +457,7 @@ void LLMuteList::updateRemove(const LLMute& mute)
gAgent.sendReliableMessage();
}
void notify_automute_callback(const LLUUID& agent_id, const std::string& full_name, bool is_group, LLMuteList::EAutoReason reason)
void notify_automute_callback(const LLUUID& agent_id, const LLAvatarName& full_name, LLMuteList::EAutoReason reason)
{
std::string notif_name;
switch (reason)
@ -474,7 +475,7 @@ void notify_automute_callback(const LLUUID& agent_id, const std::string& full_na
}
LLSD args;
args["NAME"] = full_name;
args["NAME"] = full_name.getUserName();
LLNotificationPtr notif_ptr = LLNotifications::instance().add(notif_name, args, LLSD());
if (notif_ptr)
@ -499,17 +500,17 @@ BOOL LLMuteList::autoRemove(const LLUUID& agent_id, const EAutoReason reason)
removed = TRUE;
remove(automute);
std::string full_name;
if (gCacheName->getFullName(agent_id, full_name))
{
// name in cache, call callback directly
notify_automute_callback(agent_id, full_name, false, reason);
}
else
{
// not in cache, lookup name from cache
gCacheName->get(agent_id, false,
boost::bind(&notify_automute_callback, _1, _2, _3, reason));
LLAvatarName av_name;
if (LLAvatarNameCache::get(agent_id, &av_name))
{
// name in cache, call callback directly
notify_automute_callback(agent_id, av_name, reason);
}
else
{
// not in cache, lookup name from cache
LLAvatarNameCache::get(agent_id,
boost::bind(&notify_automute_callback, _1, _2, reason));
}
}

View File

@ -35,6 +35,7 @@
#include "lluuid.h"
#include "llcachename.h"
#include "llavatarnamecache.h"
// statics
std::set<LLNameBox*> LLNameBox::sInstances;
@ -67,7 +68,9 @@ void LLNameBox::setNameID(const LLUUID& name_id, BOOL is_group)
if (!is_group)
{
got_name = gCacheName->getFullName(name_id, name);
LLAvatarName av_name;
got_name = LLAvatarNameCache::get(name_id, &av_name);
name = av_name.getUserName();
}
else
{

View File

@ -28,6 +28,7 @@
#include "llnameeditor.h"
#include "llcachename.h"
#include "llavatarnamecache.h"
#include "llfontgl.h"
@ -65,7 +66,9 @@ void LLNameEditor::setNameID(const LLUUID& name_id, BOOL is_group)
if (!is_group)
{
gCacheName->getFullName(name_id, name);
LLAvatarName av_name;
LLAvatarNameCache::get(name_id, &av_name);
name = av_name.getUserName();
}
else
{

View File

@ -114,11 +114,11 @@ void LLHandlerUtil::logToIM(const EInstantMessage& session_type,
}
}
void log_name_callback(const std::string& full_name, const std::string& from_name,
void log_name_callback(const LLAvatarName& av_name, const std::string& from_name,
const std::string& message, const LLUUID& from_id)
{
LLHandlerUtil::logToIM(IM_NOTHING_SPECIAL, full_name, from_name, message,
LLHandlerUtil::logToIM(IM_NOTHING_SPECIAL, av_name.getUserName(), from_name, message,
from_id, LLUUID());
}
@ -141,11 +141,11 @@ void LLHandlerUtil::logToIMP2P(const LLNotificationPtr& notification, bool to_fi
if(to_file_only)
{
gCacheName->get(from_id, false, boost::bind(&log_name_callback, _2, "", notification->getMessage(), LLUUID()));
LLAvatarNameCache::get(from_id, boost::bind(&log_name_callback, _2, "", notification->getMessage(), LLUUID()));
}
else
{
gCacheName->get(from_id, false, boost::bind(&log_name_callback, _2, INTERACTIVE_SYSTEM_FROM, notification->getMessage(), from_id));
LLAvatarNameCache::get(from_id, boost::bind(&log_name_callback, _2, INTERACTIVE_SYSTEM_FROM, notification->getMessage(), from_id));
}
}
@ -167,9 +167,18 @@ void LLHandlerUtil::logGroupNoticeToIMGroup(
const std::string group_name = groupData.mName;
const std::string sender_name = payload["sender_name"].asString();
// we can't retrieve sender id from group notice system message, so try to lookup it from cache
LLUUID sender_id;
gCacheName->getUUID(sender_name, sender_id);
if (payload.has("sender_id"))
{
sender_id = payload["sender_id"].asUUID();
}
if (sender_id.notNull())
{
// Legacy support and fallback method
// if we can't retrieve sender id from group notice system message, try to lookup it from cache
sender_id = LLAvatarNameCache::findIdByName(sender_name);
}
logToIM(IM_SESSION_GROUP_START, group_name, sender_name, payload["message"],
payload["group_id"], sender_id);
@ -219,7 +228,12 @@ std::string LLHandlerUtil::getSubstitutionName(const LLNotificationPtr& notifica
{
from_id = notification->getPayload()["from_id"];
}
if(!gCacheName->getFullName(from_id, res))
LLAvatarName av_name;
if(LLAvatarNameCache::get(from_id, &av_name))
{
res = av_name.getUserName();
}
else
{
res = "";
}

View File

@ -1168,9 +1168,9 @@ void LLPanelGroupMembersSubTab::confirmEjectMembers()
if (selection_count == 1)
{
LLSD args;
std::string fullname;
gCacheName->getFullName(mMembersList->getValue(), fullname);
args["AVATAR_NAME"] = fullname;
LLAvatarName av_name;
LLAvatarNameCache::get(mMembersList->getValue(), &av_name);
args["AVATAR_NAME"] = av_name.getUserName();
LLSD payload;
LLNotificationsUtil::add("EjectGroupMemberWarning",
args,
@ -1862,9 +1862,9 @@ void LLPanelGroupMembersSubTab::confirmBanMembers()
if (selection_count == 1)
{
LLSD args;
std::string fullname;
gCacheName->getFullName(mMembersList->getValue(), fullname);
args["AVATAR_NAME"] = fullname;
LLAvatarName av_name;
LLAvatarNameCache::get(mMembersList->getValue(), &av_name);
args["AVATAR_NAME"] = av_name.getUserName();
LLSD payload;
LLNotificationsUtil::add("BanGroupMemberWarning",
args,

View File

@ -384,9 +384,9 @@ void LLPanelPicks::processProperties(void* data, EAvatarProcessorType type)
LLAvatarPicks* avatar_picks = static_cast<LLAvatarPicks*>(data);
if(avatar_picks && getAvatarId() == avatar_picks->target_id)
{
std::string full_name;
gCacheName->getFullName(getAvatarId(), full_name);
getChild<LLUICtrl>("pick_title")->setTextArg("[NAME]", full_name);
LLAvatarName av_name;
LLAvatarNameCache::get(getAvatarId(), &av_name);
getChild<LLUICtrl>("pick_title")->setTextArg("[NAME]", av_name.getUserName());
// Save selection, to be able to edit same item after saving changes. See EXT-3023.
LLUUID selected_id = mPicksList->getSelectedValue()[PICK_ID];

View File

@ -33,6 +33,7 @@
// library includes
#include "llcachename.h"
#include "llavatarnamecache.h"
#include "lldbstrings.h"
#include "lleconomy.h"
#include "llgl.h"
@ -5385,9 +5386,9 @@ void LLSelectMgr::processObjectPropertiesFamily(LLMessageSystem* msg, void** use
LLFloaterReporter *reporterp = LLFloaterReg::findTypedInstance<LLFloaterReporter>("reporter");
if (reporterp)
{
std::string fullname;
gCacheName->getFullName(owner_id, fullname);
reporterp->setPickedObjectProperties(name, fullname, owner_id);
LLAvatarName av_name;
LLAvatarNameCache::get(owner_id, &av_name);
reporterp->setPickedObjectProperties(name, av_name.getUserName(), owner_id);
}
}
else if (request_flags & OBJECT_PAY_REQUEST)

View File

@ -29,6 +29,7 @@
#include "llspeakers.h"
#include "llagent.h"
#include "llavatarnamecache.h"
#include "llappviewer.h"
#include "llimview.h"
#include "llgroupmgr.h"
@ -75,13 +76,13 @@ void LLSpeaker::lookupName()
{
if (mDisplayName.empty())
{
gCacheName->get(mID, false, boost::bind(&LLSpeaker::onNameCache, this, _1, _2, _3));
LLAvatarNameCache::get(mID, boost::bind(&LLSpeaker::onNameCache, this, _1, _2)); // todo: can be group???
}
}
void LLSpeaker::onNameCache(const LLUUID& id, const std::string& full_name, bool is_group)
void LLSpeaker::onNameCache(const LLUUID& id, const LLAvatarName& av_name)
{
mDisplayName = full_name;
mDisplayName = av_name.getUserName();
}
bool LLSpeaker::isInVoiceChannel()

View File

@ -34,6 +34,7 @@
#include "llcoros.h"
class LLSpeakerMgr;
class LLAvatarName;
// data for a given participant in a voice channel
class LLSpeaker : public LLRefCount, public LLOldEvents::LLObservable, public LLHandleProvider<LLSpeaker>, public boost::signals2::trackable
@ -61,7 +62,7 @@ public:
~LLSpeaker() {};
void lookupName();
void onNameCache(const LLUUID& id, const std::string& full_name, bool is_group);
void onNameCache(const LLUUID& id, const LLAvatarName& full_name);
bool isInVoiceChannel();

View File

@ -1584,12 +1584,12 @@ static void show_object_sharing_confirmation(const std::string name,
}
static void get_name_cb(const LLUUID& id,
const std::string& full_name,
const LLAvatarName& av_name,
LLInventoryObject* inv_obj,
const LLSD& dest,
const LLUUID& dest_agent)
{
show_object_sharing_confirmation(full_name,
show_object_sharing_confirmation(av_name.getUserName(),
inv_obj,
dest,
id,
@ -1634,17 +1634,17 @@ bool LLToolDragAndDrop::handleGiveDragAndDrop(LLUUID dest_agent, LLUUID session_
// If no IM session found get the destination agent's name by id.
if (NULL == session)
{
std::string fullname;
LLAvatarName av_name;
// If destination agent's name is found in cash proceed to showing the confirmation dialog.
// Otherwise set up a callback to show the dialog when the name arrives.
if (gCacheName->getFullName(dest_agent, fullname))
if (LLAvatarNameCache::get(dest_agent, &av_name))
{
show_object_sharing_confirmation(fullname, inv_obj, dest, dest_agent, LLUUID::null);
show_object_sharing_confirmation(av_name.getUserName(), inv_obj, dest, dest_agent, LLUUID::null);
}
else
{
gCacheName->get(dest_agent, false, boost::bind(&get_name_cb, _1, _2, inv_obj, dest, dest_agent));
LLAvatarNameCache::get(dest_agent, boost::bind(&get_name_cb, _1, _2, inv_obj, dest, dest_agent));
}
return true;

View File

@ -883,7 +883,7 @@ BOOL LLToolPie::handleTooltipLand(std::string line, std::string tooltip_msg)
}
else if (hover_parcel->getIsGroupOwned())
{
if (gCacheName->getGroupName(owner, name))
if (gCacheName->getFullName(owner, name)) //group?
{
line.append(name);
line.append(LLTrans::getString("TooltipIsGroup"));
@ -893,14 +893,19 @@ BOOL LLToolPie::handleTooltipLand(std::string line, std::string tooltip_msg)
line.append(LLTrans::getString("RetrievingData"));
}
}
else if(gCacheName->getFullName(owner, name))
{
line.append(name);
}
else
{
line.append(LLTrans::getString("RetrievingData"));
}
else
{
LLAvatarName av_name;
if (LLAvatarNameCache::get(owner, &av_name))
{
name = av_name.getUserName();
line.append(name);
}
else
{
line.append(LLTrans::getString("RetrievingData"));
}
}
}
else
{

View File

@ -1126,10 +1126,10 @@ void create_inventory_item(const LLUUID& agent_id, const LLUUID& session_id,
void create_inventory_callingcard(const LLUUID& avatar_id, const LLUUID& parent /*= LLUUID::null*/, LLPointer<LLInventoryCallback> cb/*=NULL*/)
{
std::string item_desc = avatar_id.asString();
std::string item_name;
gCacheName->getFullName(avatar_id, item_name);
LLAvatarName av_name;
LLAvatarNameCache::get(avatar_id, &av_name);
create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
parent, LLTransactionID::tnull, item_name, item_desc, LLAssetType::AT_CALLINGCARD,
parent, LLTransactionID::tnull, av_name.getUserName(), item_desc, LLAssetType::AT_CALLINGCARD,
LLInventoryType::IT_CALLINGCARD, NOT_WEARABLE, PERM_MOVE | PERM_TRANSFER, cb);
}
@ -2071,9 +2071,9 @@ PermissionMask LLViewerInventoryItem::getPermissionMask() const
//----------
void LLViewerInventoryItem::onCallingCardNameLookup(const LLUUID& id, const std::string& name, bool is_group)
void LLViewerInventoryItem::onCallingCardNameLookup(const LLUUID& id, const LLAvatarName& name)
{
rename(name);
rename(name.getUserName());
gInventory.addChangedMask(LLInventoryObserver::LABEL, getUUID());
gInventory.notifyObservers();
}

View File

@ -39,6 +39,7 @@ class LLFolderView;
class LLFolderBridge;
class LLViewerInventoryCategory;
class LLInventoryCallback;
class LLAvatarName;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLViewerInventoryItem
@ -158,7 +159,7 @@ public:
PermissionMask getPermissionMask() const;
// callback
void onCallingCardNameLookup(const LLUUID& id, const std::string& name, bool is_group);
void onCallingCardNameLookup(const LLUUID& id, const LLAvatarName& name);
// If this is a broken link, try to fix it and any other identical link.
BOOL regenerateLink();

View File

@ -6560,10 +6560,10 @@ class LLMuteParticle : public view_listener_t
if (id.notNull())
{
std::string name;
gCacheName->getFullName(id, name);
LLAvatarName av_name;
LLAvatarNameCache::get(id, &av_name);
LLMute mute(id, name, LLMute::AGENT);
LLMute mute(id, av_name.getUserName(), LLMute::AGENT);
if (LLMuteList::getInstance()->isMuted(mute.mID))
{
LLMuteList::getInstance()->remove(mute);

View File

@ -1390,6 +1390,14 @@ void inventory_offer_mute_callback(const LLUUID& blocked_id,
gSavedSettings.getString("NotificationChannelUUID")), OfferMatcher(blocked_id));
}
void inventory_offer_mute_avatar_callback(const LLUUID& blocked_id,
const LLAvatarName& av_name)
{
inventory_offer_mute_callback(blocked_id, av_name.getUserName(), false);
}
std::string LLOfferInfo::mResponderType = "offer_info";
LLOfferInfo::LLOfferInfo()
@ -1538,7 +1546,14 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
{
if (notification_ptr != NULL)
{
gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback, _1, _2, _3));
if (mFromGroup)
{
gCacheName->getGroup(mFromID, boost::bind(&inventory_offer_mute_callback, _1, _2, _3));
}
else
{
LLAvatarNameCache::get(mFromID, boost::bind(&inventory_offer_mute_avatar_callback, _1, _2));
}
}
}
@ -1695,7 +1710,14 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
llassert(notification_ptr != NULL);
if (notification_ptr != NULL)
{
gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback, _1, _2, _3));
if (mFromGroup)
{
gCacheName->getGroup(mFromID, boost::bind(&inventory_offer_mute_callback, _1, _2, _3));
}
else
{
LLAvatarNameCache::get(mFromID, boost::bind(&inventory_offer_mute_avatar_callback, _1, _2));
}
}
}
@ -1744,12 +1766,12 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
}
else
{
std::string full_name;
if (gCacheName->getFullName(mFromID, full_name))
LLAvatarName av_name;
if (LLAvatarNameCache::get(mFromID, &av_name))
{
from_string = LLTrans::getString("InvOfferAnObjectNamed") + " "+ LLTrans::getString("'") + mFromName
+ LLTrans::getString("'")+" " + LLTrans::getString("InvOfferOwnedBy") + full_name;
chatHistory_string = mFromName + " " + LLTrans::getString("InvOfferOwnedBy") + " " + full_name;
+ LLTrans::getString("'")+" " + LLTrans::getString("InvOfferOwnedBy") + av_name.getUserName();
chatHistory_string = mFromName + " " + LLTrans::getString("InvOfferOwnedBy") + " " + av_name.getUserName();
}
else
{
@ -2601,9 +2623,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
{
original_name = original_name.substr(0, index);
}
std::string legacy_name = gCacheName->buildLegacyName(original_name);
LLUUID agent_id;
gCacheName->getUUID(legacy_name, agent_id);
LLUUID agent_id = LLAvatarNameCache::findIdByName(legacy_name);
if (agent_id.isNull())
{
@ -2662,6 +2684,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
payload["subject"] = subj;
payload["message"] = mes;
payload["sender_name"] = name;
payload["sender_id"] = agent_id;
payload["group_id"] = group_id;
payload["inventory_name"] = item_name;
payload["received_time"] = LLDate::now();
@ -6183,7 +6206,7 @@ void handle_show_mean_events(void *)
//LLFloaterBump::showInstance();
}
void mean_name_callback(const LLUUID &id, const std::string& full_name, bool is_group)
void mean_name_callback(const LLUUID &id, const LLAvatarName& av_name)
{
static const U32 max_collision_list_size = 20;
if (gMeanCollisionList.size() > max_collision_list_size)
@ -6200,7 +6223,7 @@ void mean_name_callback(const LLUUID &id, const std::string& full_name, bool is_
LLMeanCollisionData *mcd = *iter;
if (mcd->mPerp == id)
{
mcd->mFullName = full_name;
mcd->mFullName = av_name.getUserName();
}
}
}
@ -6254,7 +6277,7 @@ void process_mean_collision_alert_message(LLMessageSystem *msgsystem, void **use
{
LLMeanCollisionData *mcd = new LLMeanCollisionData(gAgentID, perp, time, type, mag);
gMeanCollisionList.push_front(mcd);
gCacheName->get(perp, false, boost::bind(&mean_name_callback, _1, _2, _3));
LLAvatarNameCache::get(perp, boost::bind(&mean_name_callback, _1, _2));
}
}
LLFloaterBump* bumps_floater = LLFloaterBump::getInstance();
@ -7031,8 +7054,8 @@ void send_lures(const LLSD& notification, const LLSD& response)
// Record the offer.
{
std::string target_name;
gCacheName->getFullName(target_id, target_name); // for im log filenames
LLAvatarName av_name;
LLAvatarNameCache::get(target_id, &av_name); // for im log filenames
LLSD args;
args["TO_NAME"] = LLSLURL("agent", target_id, "completename").getSLURLString();;
@ -7117,10 +7140,10 @@ bool teleport_request_callback(const LLSD& notification, const LLSD& response)
return false;
}
std::string from_name;
gCacheName->getFullName(from_id, from_name);
LLAvatarName av_name;
LLAvatarNameCache::get(from_id, &av_name);
if(LLMuteList::getInstance()->isMuted(from_id) && !LLMuteList::getInstance()->isLinden(from_name))
if(LLMuteList::getInstance()->isMuted(from_id) && !LLMuteList::getInstance()->isLinden(av_name.getUserName()))
{
return false;
}
@ -7395,8 +7418,7 @@ bool callback_load_url(const LLSD& notification, const LLSD& response)
}
static LLNotificationFunctorRegistration callback_load_url_reg("LoadWebPage", callback_load_url);
// We've got the name of the person who owns the object hurling the url.
// We've got the name of the person or group that owns the object hurling the url.
// Display confirmation dialog.
void callback_load_url_name(const LLUUID& id, const std::string& full_name, bool is_group)
{
@ -7438,6 +7460,12 @@ void callback_load_url_name(const LLUUID& id, const std::string& full_name, bool
}
}
// We've got the name of the person who owns the object hurling the url.
void callback_load_url_avatar_name(const LLUUID& id, const LLAvatarName& av_name)
{
callback_load_url_name(id, av_name.getUserName(), false);
}
void process_load_url(LLMessageSystem* msg, void**)
{
LLUUID object_id;
@ -7475,8 +7503,14 @@ void process_load_url(LLMessageSystem* msg, void**)
// Add to list of pending name lookups
gLoadUrlList.push_back(payload);
gCacheName->get(owner_id, owner_is_group,
boost::bind(&callback_load_url_name, _1, _2, _3));
if (owner_is_group)
{
gCacheName->getGroup(owner_id, boost::bind(&callback_load_url_name, _1, _2, _3));
}
else
{
LLAvatarNameCache::get(owner_id, boost::bind(&callback_load_url_avatar_name, _1, _2));
}
}