diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2011-02-18 10:56:26 -0500 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2011-02-18 10:56:26 -0500 |
commit | 4ef02bc1b6cf5e044d2cf57725eac1a4ccd7580d (patch) | |
tree | 97b7612d5467e3d206ac7b5bb04f084b644db6fd /indra/llui | |
parent | 89258376ffc3d1e6d9e40a9136e4901e643187c8 (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.cpp | 12 |
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 |