summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2011-02-18 10:56:26 -0500
committerNat Goodspeed <nat@lindenlab.com>2011-02-18 10:56:26 -0500
commit4ef02bc1b6cf5e044d2cf57725eac1a4ccd7580d (patch)
tree97b7612d5467e3d206ac7b5bb04f084b644db6fd /indra/llui
parent89258376ffc3d1e6d9e40a9136e4901e643187c8 (diff)
Introduce and use new sendReply() function for LLEventAPI methods.
Each LLEventAPI method that generates a reply needs to extract the name of the reply LLEventPump from the request, typically from a ["reply"] key, copy the ["reqid"] value from request to reply, locate the reply LLEventPump and send the enriched reply object. Encapsulate in sendReply() function before we proliferate doing all that by hand too many more times.
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llfloaterreglistener.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/indra/llui/llfloaterreglistener.cpp b/indra/llui/llfloaterreglistener.cpp
index ec2ac6834e..7525b8cab3 100644
--- a/indra/llui/llfloaterreglistener.cpp
+++ b/indra/llui/llfloaterreglistener.cpp
@@ -76,9 +76,7 @@ LLFloaterRegListener::LLFloaterRegListener():
void LLFloaterRegListener::getBuildMap(const LLSD& event) const
{
- // Honor the "reqid" convention by echoing event["reqid"] in our reply packet.
- LLReqID reqID(event);
- LLSD reply(reqID.makeResponse());
+ LLSD reply;
// Build an LLSD map that mirrors sBuildMap. Since we have no good way to
// represent a C++ callable in LLSD, the only part of BuildData we can
// store is the filename. For each LLSD map entry, it would be more
@@ -91,7 +89,7 @@ void LLFloaterRegListener::getBuildMap(const LLSD& event) const
reply[mi->first] = mi->second.mFile;
}
// Send the reply to the LLEventPump named in event["reply"].
- LLEventPumps::instance().obtain(event["reply"]).post(reply);
+ sendReply(reply, event);
}
void LLFloaterRegListener::showInstance(const LLSD& event) const
@@ -111,10 +109,8 @@ void LLFloaterRegListener::toggleInstance(const LLSD& event) const
void LLFloaterRegListener::instanceVisible(const LLSD& event) const
{
- LLReqID reqID(event);
- LLSD reply(reqID.makeResponse());
- reply["visible"] = LLFloaterReg::instanceVisible(event["name"], event["key"]);
- LLEventPumps::instance().obtain(event["reply"]).post(reply);
+ sendReply(LLSDMap("visible", LLFloaterReg::instanceVisible(event["name"], event["key"])),
+ event);
}
void LLFloaterRegListener::clickButton(const LLSD& event) const