summaryrefslogtreecommitdiff
path: root/indra/llmessage
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llmessage')
-rw-r--r--indra/llmessage/llavatarnamecache.cpp147
-rw-r--r--indra/llmessage/llcachename.cpp83
-rw-r--r--indra/llmessage/llcachename.h5
3 files changed, 80 insertions, 155 deletions
diff --git a/indra/llmessage/llavatarnamecache.cpp b/indra/llmessage/llavatarnamecache.cpp
index 16bfa37b0e..610bc58057 100644
--- a/indra/llmessage/llavatarnamecache.cpp
+++ b/indra/llmessage/llavatarnamecache.cpp
@@ -38,6 +38,11 @@
#include <cctype> // tolower()
+namespace LLAvatarNameCache
+{
+ std::map<LLUUID, LLAvatarName> sCache;
+}
+
static std::string slid_from_full_name(const std::string& full_name)
{
std::string id = full_name;
@@ -52,64 +57,67 @@ static std::string slid_from_full_name(const std::string& full_name)
return id;
}
-static std::map<LLUUID, std::string> sDisplayNames;
-
-// JAMESDEBUG HACK temporary IDEVO code
-static std::string get_display_name(const LLUUID& id)
-{
- if (sDisplayNames.empty())
- {
- LLUUID id;
- const unsigned char miyazaki_hayao_san[]
- = { 0xE5, 0xAE, 0xAE, 0xE5, 0xB4, 0x8E,
- 0xE9, 0xA7, 0xBF,
- 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x93, '\0' };
- id.set("27888d5f-4ddb-4df3-ad36-a1483ce0b3d9"); // miyazaki23
- sDisplayNames[id] = (const char*)miyazaki_hayao_san;
-
- id.set("3e5bf676-3577-c9ee-9fac-10df430015a1"); // Jim Linden
- sDisplayNames[id] = "Jim Jenkins";
-
- const unsigned char jose_sanchez[] =
- { 'J','o','s',0xC3,0xA9,' ','S','a','n','c','h','e','z', '\0' };
- id.set("a2e76fcd-9360-4f6d-a924-938f923df11a"); // James Linden
- sDisplayNames[id] = (const char*)jose_sanchez;
-
- id.set("a23fff6c-80ae-4997-9253-48272fd01d3c"); // bobsmith123
- sDisplayNames[id] = (const char*)jose_sanchez;
-
- id.set("3f7ced39-5e38-4fdd-90f2-423560b1e6e2"); // Hamilton Linden
- sDisplayNames[id] = "Hamilton Hitchings";
-
- id.set("537da1e1-a89f-4f9b-9056-b1f0757ccdd0"); // Rome Linden
- sDisplayNames[id] = "Rome Portlock";
-
- id.set("244195d6-c9b7-4fd6-9229-c3a8b2e60e81"); // M Linden
- sDisplayNames[id] = "Mark Kingdon";
-
- id.set("49856302-98d4-4e32-b5e9-035e5b4e83a4"); // T Linden
- sDisplayNames[id] = "Tom Hale";
-
- id.set("e6ed7825-708f-4c6b-b6a7-f3fe921a9176"); // Callen Linden
- sDisplayNames[id] = "Christina Allen";
-
- id.set("a7f0ac18-205f-41d2-b5b4-f75f096ae511"); // Crimp Linden
- sDisplayNames[id] = "Chris Rimple";
- }
-
- std::map<LLUUID,std::string>::iterator it = sDisplayNames.find(id);
- if (it != sDisplayNames.end())
- {
- return it->second;
- }
- else
- {
- return std::string();
- }
-}
-
void LLAvatarNameCache::initClass()
{
+ // HACK - prepopulate the cache
+ LLAvatarName name;
+ LLUUID id;
+
+ name.mSLID = "miyazaki23";
+ const unsigned char miyazaki_hayao_san[]
+ = { 0xE5, 0xAE, 0xAE, 0xE5, 0xB4, 0x8E,
+ 0xE9, 0xA7, 0xBF,
+ 0xE3, 0x81, 0x95, 0xE3, 0x82, 0x93, '\0' };
+ name.mDisplayName = (const char*)miyazaki_hayao_san;
+ name.mBadge = "Person_Check";
+ sCache[LLUUID("27888d5f-4ddb-4df3-ad36-a1483ce0b3d9")] = name;
+
+ name.mSLID = "jim.linden";
+ name.mDisplayName = "Jim Jenkins";
+ name.mBadge = "Person_Star";
+ sCache[LLUUID("3e5bf676-3577-c9ee-9fac-10df430015a1")] = name;
+
+ name.mSLID = "james.linden";
+ const unsigned char jose_sanchez[] =
+ { 'J','o','s',0xC3,0xA9,' ','S','a','n','c','h','e','z', '\0' };
+ name.mDisplayName = (const char*)jose_sanchez;
+ name.mBadge = "35f217a3-f618-49cf-bbca-c86d486551a9"; // IMG_SHOT
+ sCache[LLUUID("a2e76fcd-9360-4f6d-a924-938f923df11a")] = name;
+
+ name.mSLID = "bobsmith123";
+ name.mDisplayName = (const char*)jose_sanchez;
+ name.mBadge = "";
+ sCache[LLUUID("a23fff6c-80ae-4997-9253-48272fd01d3c")] = name;
+
+ name.mSLID = "hamilton.linden";
+ name.mDisplayName = "Hamilton Hitchings";
+ name.mBadge = "Person_Star";
+ sCache[LLUUID("3f7ced39-5e38-4fdd-90f2-423560b1e6e2")] = name;
+
+ name.mSLID = "rome.linden";
+ name.mDisplayName = "Rome Portlock";
+ name.mBadge = "Person_Star";
+ sCache[LLUUID("537da1e1-a89f-4f9b-9056-b1f0757ccdd0")] = name;
+
+ name.mSLID = "m.linden";
+ name.mDisplayName = "Mark Kingdon";
+ name.mBadge = "Person_Star";
+ sCache[LLUUID("244195d6-c9b7-4fd6-9229-c3a8b2e60e81")] = name;
+
+ name.mSLID = "t.linden";
+ name.mDisplayName = "Tom Hale";
+ name.mBadge = "Person_Star";
+ sCache[LLUUID("49856302-98d4-4e32-b5e9-035e5b4e83a4")] = name;
+
+ name.mSLID = "callen.linden";
+ name.mDisplayName = "Christina Allen";
+ name.mBadge = "Person_Star";
+ sCache[LLUUID("e6ed7825-708f-4c6b-b6a7-f3fe921a9176")] = name;
+
+ name.mSLID = "crimp.linden";
+ name.mDisplayName = "Chris Rimple";
+ name.mBadge = "Person_Star";
+ sCache[LLUUID("a7f0ac18-205f-41d2-b5b4-f75f096ae511")] = name;
}
void LLAvatarNameCache::cleanupClass()
@@ -130,24 +138,23 @@ void LLAvatarNameCache::idle()
bool LLAvatarNameCache::get(const LLUUID& agent_id, LLAvatarName *av_name)
{
+ std::map<LLUUID,LLAvatarName>::iterator it = sCache.find(agent_id);
+ if (it != sCache.end())
+ {
+ *av_name = it->second;
+ return true;
+ }
+
std::string full_name;
- bool found = gCacheName->getFullName(agent_id, full_name);
- if (found)
+ if (gCacheName->getFullName(agent_id, full_name))
{
av_name->mSLID = slid_from_full_name(full_name);
-
- std::string display_name = get_display_name(agent_id);
- if (!display_name.empty())
- {
- av_name->mDisplayName = display_name;
- }
- else
- {
- // ...no explicit display name, use legacy name
- av_name->mDisplayName = full_name;
- }
+ av_name->mDisplayName = full_name;
+ av_name->mBadge = "Generic_Person";
+ return true;
}
- return found;
+
+ return false;
}
void LLAvatarNameCache::get(const LLUUID& agent_id, name_cache_callback_t callback)
diff --git a/indra/llmessage/llcachename.cpp b/indra/llmessage/llcachename.cpp
index 4e3c3630ab..b94788bd0c 100644
--- a/indra/llmessage/llcachename.cpp
+++ b/indra/llmessage/llcachename.cpp
@@ -308,89 +308,10 @@ boost::signals2::connection LLCacheName::addObserver(const LLCacheNameCallback&
return impl.mSignal.connect(callback);
}
-void LLCacheName::importFile(LLFILE* fp)
-{
- S32 count = 0;
-
- const S32 BUFFER_SIZE = 1024;
- char buffer[BUFFER_SIZE]; /*Flawfinder: ignore*/
-
- // *NOTE: These buffer sizes are hardcoded into sscanf() below
- char id_string[MAX_STRING]; /*Flawfinder: ignore*/
- char firstname[MAX_STRING]; /*Flawfinder: ignore*/
- char lastname[MAX_STRING]; /*Flawfinder: ignore*/
- U32 create_time;
-
- // This is OK if the first line is actually a name. We just don't load it.
- char* valid = fgets(buffer, BUFFER_SIZE, fp);
- if (!valid) return;
-
- // *NOTE: This buffer size is hardcoded into sscanf() below
- char version_string[BUFFER_SIZE]; /*Flawfinder: ignore*/
- S32 version = 0;
- S32 match = sscanf( /* Flawfinder: ignore */
- buffer,
- "%1023s %d",
- version_string, &version);
- if ( match != 2
- || strcmp(version_string, "version")
- || version != CN_FILE_VERSION)
- {
- llwarns << "Ignoring old cache name file format" << llendl;
- return;
- }
-
- // We'll expire entries more than a week old
- U32 now = (U32)time(NULL);
- const U32 SECS_PER_DAY = 60 * 60 * 24;
- U32 delete_before_time = now - (7 * SECS_PER_DAY);
-
- while(!feof(fp))
- {
- valid = fgets(buffer, BUFFER_SIZE, fp);
- if (!valid) break;
-
- match = sscanf( /* Flawfinder: ignore */
- buffer,
- "%254s %u %254s %254s",
- id_string,
- &create_time,
- firstname,
- lastname);
- if (4 != match) continue;
-
- LLUUID id(id_string);
- if (id.isNull()) continue;
-
- // undo trivial XOR
- S32 i;
- for (i = 0; i < UUID_BYTES; i++)
- {
- id.mData[i] ^= 0x33;
- }
-
- // Don't load entries that are more than a week old
- if (create_time < delete_before_time) continue;
-
- LLCacheNameEntry* entry = new LLCacheNameEntry();
- entry->mIsGroup = false;
- entry->mCreateTime = create_time;
- entry->mFirstName = firstname;
- entry->mLastName = lastname;
- impl.mCache[id] = entry;
- std::string fullname = entry->mFirstName + " " + entry->mLastName;
- impl.mReverseCache[fullname] = id;
-
- count++;
- }
-
- llinfos << "LLCacheName loaded " << count << " names" << llendl;
-}
-
bool LLCacheName::importFile(std::istream& istr)
{
LLSD data;
- if(LLSDSerialize::fromXML(data, istr) < 1)
+ if(LLSDSerialize::fromXMLDocument(data, istr) < 1)
return false;
// We'll expire entries more than a week old
@@ -512,7 +433,7 @@ BOOL LLCacheName::Impl::getName(const LLUUID& id, std::string& first, std::strin
}
// static
-void LLCacheName::LocalizeCacheName(std::string key, std::string value)
+void LLCacheName::localizeCacheName(std::string key, std::string value)
{
if (key!="" && value!= "" )
sCacheName[key]=value;
diff --git a/indra/llmessage/llcachename.h b/indra/llmessage/llcachename.h
index 322ca4aa1a..8d8e172c08 100644
--- a/indra/llmessage/llcachename.h
+++ b/indra/llmessage/llcachename.h
@@ -70,9 +70,6 @@ public:
boost::signals2::connection addObserver(const LLCacheNameCallback& callback);
- // janky old format. Remove after a while. Phoenix. 2008-01-30
- void importFile(LLFILE* fp);
-
// storing cache on disk; for viewer, in name.cache
bool importFile(std::istream& istr);
void exportFile(std::ostream& ostr);
@@ -116,7 +113,7 @@ public:
void dumpStats(); // Dumps the sizes of the cache and associated queues.
static std::string getDefaultName();
- static void LocalizeCacheName(std::string key, std::string value);
+ static void localizeCacheName(std::string key, std::string value);
static std::map<std::string, std::string> sCacheName;
private: