summaryrefslogtreecommitdiff
path: root/indra/newview/lllandmarklist.cpp
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2024-05-14 21:02:28 -0400
committerNat Goodspeed <nat@lindenlab.com>2024-05-14 21:02:28 -0400
commit094dcc07f8c1d90ae723dbe60eddacb90a09eae8 (patch)
treee750942e5f22ed677b543bd49509c2a7cdc5ce56 /indra/newview/lllandmarklist.cpp
parentd4043d3b011c32eb503c43c551872f9c24d7344f (diff)
parent38c2a5bde985a6a8a96d912d432f8bdf7e5b60be (diff)
Merge DRTVWR-591-maint-X to main on promotion of secondlife/viewer #705: Maintenance X
Diffstat (limited to 'indra/newview/lllandmarklist.cpp')
-rw-r--r--indra/newview/lllandmarklist.cpp186
1 files changed, 93 insertions, 93 deletions
diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp
index d790c6f95e..6ec77bca86 100644
--- a/indra/newview/lllandmarklist.cpp
+++ b/indra/newview/lllandmarklist.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file lllandmarklist.cpp
* @brief Landmark asset list class
*
* $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
- *
+ *
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
- *
+ *
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
- *
+ *
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
+ *
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -44,30 +44,30 @@ LLLandmarkList gLandmarkList;
LLLandmarkList::~LLLandmarkList()
{
- std::for_each(mList.begin(), mList.end(), DeletePairedPointer());
- mList.clear();
+ std::for_each(mList.begin(), mList.end(), DeletePairedPointer());
+ mList.clear();
}
LLLandmark* LLLandmarkList::getAsset(const LLUUID& asset_uuid, loaded_callback_t cb)
{
- LLLandmark* landmark = get_ptr_in_map(mList, asset_uuid);
- if(landmark)
- {
- LLVector3d dummy;
- if(cb && !landmark->getGlobalPos(dummy))
- {
- // landmark is not completely loaded yet
- loaded_callback_map_t::value_type vt(asset_uuid, cb);
- mLoadedCallbackMap.insert(vt);
- }
- return landmark;
- }
- else
- {
- if ( mBadList.find(asset_uuid) != mBadList.end() )
- {
- return NULL;
- }
+ LLLandmark* landmark = get_ptr_in_map(mList, asset_uuid);
+ if(landmark)
+ {
+ LLVector3d dummy;
+ if(cb && !landmark->getGlobalPos(dummy))
+ {
+ // landmark is not completely loaded yet
+ loaded_callback_map_t::value_type vt(asset_uuid, cb);
+ mLoadedCallbackMap.insert(vt);
+ }
+ return landmark;
+ }
+ else
+ {
+ if ( mBadList.find(asset_uuid) != mBadList.end() )
+ {
+ return NULL;
+ }
if (cb)
{
@@ -77,40 +77,40 @@ LLLandmark* LLLandmarkList::getAsset(const LLUUID& asset_uuid, loaded_callback_t
loaded_callback_map_t::value_type vt(asset_uuid, cb);
mLoadedCallbackMap.insert(vt);
}
-
- landmark_requested_list_t::iterator iter = mRequestedList.find(asset_uuid);
- if (iter != mRequestedList.end())
- {
- const F32 rerequest_time = 30.f; // 30 seconds between requests
- if (gFrameTimeSeconds - iter->second < rerequest_time)
- {
- return NULL;
- }
- }
+
+ landmark_requested_list_t::iterator iter = mRequestedList.find(asset_uuid);
+ if (iter != mRequestedList.end())
+ {
+ const F32 rerequest_time = 30.f; // 30 seconds between requests
+ if (gFrameTimeSeconds - iter->second < rerequest_time)
+ {
+ return NULL;
+ }
+ }
mRequestedList[asset_uuid] = gFrameTimeSeconds;
// Note that getAssetData can callback immediately and cleans mRequestedList
- gAssetStorage->getAssetData(asset_uuid,
- LLAssetType::AT_LANDMARK,
- LLLandmarkList::processGetAssetReply,
- NULL);
- }
- return NULL;
+ gAssetStorage->getAssetData(asset_uuid,
+ LLAssetType::AT_LANDMARK,
+ LLLandmarkList::processGetAssetReply,
+ NULL);
+ }
+ return NULL;
}
// static
void LLLandmarkList::processGetAssetReply(
- const LLUUID& uuid,
- LLAssetType::EType type,
- void* user_data,
- S32 status,
- LLExtStat ext_status )
+ const LLUUID& uuid,
+ LLAssetType::EType type,
+ void* user_data,
+ S32 status,
+ LLExtStat ext_status )
{
- if( status == 0 )
- {
- LLFileSystem file(uuid, type);
- S32 file_length = file.getSize();
+ if( status == 0 )
+ {
+ LLFileSystem file(uuid, type);
+ S32 file_length = file.getSize();
if (file_length > 0)
{
@@ -155,40 +155,40 @@ void LLLandmarkList::processGetAssetReply(
// got a good status, but no file, shouldn't happen
gLandmarkList.eraseCallbacks(uuid);
}
- }
- else
- {
- // SJB: No use case for a notification here. Use LL_DEBUGS() instead
- if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status )
- {
- LL_WARNS("Landmarks") << "Missing Landmark" << LL_ENDL;
- //LLNotificationsUtil::add("LandmarkMissing");
- }
- else
- {
- LL_WARNS("Landmarks") << "Unable to load Landmark" << LL_ENDL;
- //LLNotificationsUtil::add("UnableToLoadLandmark");
- }
-
- gLandmarkList.mBadList.insert(uuid);
+ }
+ else
+ {
+ // SJB: No use case for a notification here. Use LL_DEBUGS() instead
+ if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status )
+ {
+ LL_WARNS("Landmarks") << "Missing Landmark" << LL_ENDL;
+ //LLNotificationsUtil::add("LandmarkMissing");
+ }
+ else
+ {
+ LL_WARNS("Landmarks") << "Unable to load Landmark" << LL_ENDL;
+ //LLNotificationsUtil::add("UnableToLoadLandmark");
+ }
+
+ gLandmarkList.mBadList.insert(uuid);
gLandmarkList.mRequestedList.erase(uuid); //mBadList effectively blocks any load, so no point keeping id in requests
gLandmarkList.eraseCallbacks(uuid);
- }
+ }
}
BOOL LLLandmarkList::isAssetInLoadedCallbackMap(const LLUUID& asset_uuid)
{
- return mLoadedCallbackMap.find(asset_uuid) != mLoadedCallbackMap.end();
+ return mLoadedCallbackMap.find(asset_uuid) != mLoadedCallbackMap.end();
}
BOOL LLLandmarkList::assetExists(const LLUUID& asset_uuid)
{
- return mList.count(asset_uuid) != 0 || mBadList.count(asset_uuid) != 0;
+ return mList.count(asset_uuid) != 0 || mBadList.count(asset_uuid) != 0;
}
void LLLandmarkList::onRegionHandle(const LLUUID& landmark_id)
{
- LLLandmark* landmark = getAsset(landmark_id);
+ LLLandmark* landmark = getAsset(landmark_id);
if (!landmark)
{
LL_WARNS() << "Got region handle but the landmark " << landmark_id << " not found." << LL_ENDL;
@@ -196,18 +196,18 @@ void LLLandmarkList::onRegionHandle(const LLUUID& landmark_id)
return;
}
- // Calculate landmark global position.
- // This should succeed since the region handle is available.
- LLVector3d pos;
- if (!landmark->getGlobalPos(pos))
- {
+ // Calculate landmark global position.
+ // This should succeed since the region handle is available.
+ LLVector3d pos;
+ if (!landmark->getGlobalPos(pos))
+ {
LL_WARNS() << "Got region handle but the landmark " << landmark_id << " global position is still unknown." << LL_ENDL;
eraseCallbacks(landmark_id);
return;
- }
+ }
// Call this even if no landmark exists to clean mLoadedCallbackMap
- makeCallbacks(landmark_id);
+ makeCallbacks(landmark_id);
}
void LLLandmarkList::eraseCallbacks(const LLUUID& landmark_id)
@@ -217,20 +217,20 @@ void LLLandmarkList::eraseCallbacks(const LLUUID& landmark_id)
void LLLandmarkList::makeCallbacks(const LLUUID& landmark_id)
{
- LLLandmark* landmark = getAsset(landmark_id);
-
- if (!landmark)
- {
- LL_WARNS() << "Landmark " << landmark_id << " to make callbacks for not found." << LL_ENDL;
- }
-
- // make all the callbacks here.
- loaded_callback_map_t::iterator it;
- while((it = mLoadedCallbackMap.find(landmark_id)) != mLoadedCallbackMap.end())
- {
- if (landmark)
- (*it).second(landmark);
-
- mLoadedCallbackMap.erase(it);
- }
+ LLLandmark* landmark = getAsset(landmark_id);
+
+ if (!landmark)
+ {
+ LL_WARNS() << "Landmark " << landmark_id << " to make callbacks for not found." << LL_ENDL;
+ }
+
+ // make all the callbacks here.
+ loaded_callback_map_t::iterator it;
+ while((it = mLoadedCallbackMap.find(landmark_id)) != mLoadedCallbackMap.end())
+ {
+ if (landmark)
+ (*it).second(landmark);
+
+ mLoadedCallbackMap.erase(it);
+ }
}