summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermessage.cpp
diff options
context:
space:
mode:
authorLoren Shih <seraph@lindenlab.com>2010-04-06 14:47:20 -0400
committerLoren Shih <seraph@lindenlab.com>2010-04-06 14:47:20 -0400
commitcdbdb1168694bcbfc58208f2941f513b556a0d6e (patch)
tree3b024976b8254c11ecb2a11db8929ff035cff446 /indra/newview/llviewermessage.cpp
parentec5bd9c857b4d817685b09f9a10da7434ebbb816 (diff)
EXT-4151 : Immediately check if a fetchObserver filter is done, else add to observer list automatically
FetchObservers now take in a list of IDs to check against. Made some naming changes.
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
-rw-r--r--indra/newview/llviewermessage.cpp29
1 files changed, 17 insertions, 12 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index a471876ce1..6f39de996e 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -700,10 +700,13 @@ static LLNotificationFunctorRegistration jgr_3("JoinGroupCanAfford", join_group_
//-----------------------------------------------------------------------------
// Instant Message
//-----------------------------------------------------------------------------
-class LLOpenAgentOffer : public LLInventoryFetchObserver
+class LLOpenAgentOffer : public LLInventoryFetchItemsObserver
{
public:
- LLOpenAgentOffer(const std::string& from_name) : mFromName(from_name) {}
+ LLOpenAgentOffer(const uuid_vec_t& ids,
+ const std::string& from_name) :
+ LLInventoryFetchItemsObserver(ids),
+ mFromName(from_name) {}
/*virtual*/ void done()
{
open_inventory_offer(mComplete, mFromName);
@@ -1206,8 +1209,8 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
// so we can fetch it out of our inventory.
uuid_vec_t items;
items.push_back(mObjectID);
- LLOpenAgentOffer* open_agent_offer = new LLOpenAgentOffer(from_string);
- open_agent_offer->fetch(items);
+ LLOpenAgentOffer* open_agent_offer = new LLOpenAgentOffer(items, from_string);
+ open_agent_offer->startFetch();
if(catp || (itemp && itemp->isComplete()))
{
open_agent_offer->done();
@@ -1270,7 +1273,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
items.push_back(mObjectID);
LLDiscardAgentOffer* discard_agent_offer;
discard_agent_offer = new LLDiscardAgentOffer(mFolderID, mObjectID);
- discard_agent_offer->fetch(folders, items);
+ discard_agent_offer->startFetch(folders, items);
if(catp || (itemp && itemp->isComplete()))
{
discard_agent_offer->done();
@@ -1604,8 +1607,8 @@ void inventory_offer_handler(LLOfferInfo* info)
// Prefetch the item into your local inventory.
uuid_vec_t items;
items.push_back(info->mObjectID);
- LLInventoryFetchObserver* fetch_item = new LLInventoryFetchObserver();
- fetch_item->fetch(items);
+ LLInventoryFetchItemsObserver* fetch_item = new LLInventoryFetchItemsObserver(items);
+ fetch_item->startFetch();
if(fetch_item->isEverythingComplete())
{
fetch_item->done();
@@ -2123,8 +2126,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
// Prefetch the offered item so that it can be discarded by the appropriate observer. (EXT-4331)
uuid_vec_t items;
items.push_back(info->mObjectID);
- LLInventoryFetchObserver* fetch_item = new LLInventoryFetchObserver();
- fetch_item->fetch(items);
+ LLInventoryFetchItemsObserver* fetch_item = new LLInventoryFetchItemsObserver(items);
+ fetch_item->startFetch();
delete fetch_item;
// Same as closing window
@@ -2844,7 +2847,9 @@ void process_teleport_progress(LLMessageSystem* msg, void**)
class LLFetchInWelcomeArea : public LLInventoryFetchDescendentsObserver
{
public:
- LLFetchInWelcomeArea() {}
+ LLFetchInWelcomeArea(const uuid_vec_t &ids) :
+ LLInventoryFetchDescendentsObserver(ids)
+ {}
virtual void done()
{
LLIsType is_landmark(LLAssetType::AT_LANDMARK);
@@ -2926,8 +2931,8 @@ BOOL LLPostTeleportNotifiers::tick()
folders.push_back(folder_id);
if(!folders.empty())
{
- LLFetchInWelcomeArea* fetcher = new LLFetchInWelcomeArea;
- fetcher->fetch(folders);
+ LLFetchInWelcomeArea* fetcher = new LLFetchInWelcomeArea(folders);
+ fetcher->startFetch();
if(fetcher->isEverythingComplete())
{
fetcher->done();