From 00b2b60a0c495656e1b8e0a20272c449eea49b3c Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Fri, 22 May 2015 16:14:00 -0700 Subject: Region debug console to coroutines. --- indra/newview/llfloaterregiondebugconsole.cpp | 50 +++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'indra/newview/llfloaterregiondebugconsole.cpp') diff --git a/indra/newview/llfloaterregiondebugconsole.cpp b/indra/newview/llfloaterregiondebugconsole.cpp index 40757a4d04..00955ff941 100755 --- a/indra/newview/llfloaterregiondebugconsole.cpp +++ b/indra/newview/llfloaterregiondebugconsole.cpp @@ -35,6 +35,7 @@ #include "lllineeditor.h" #include "lltexteditor.h" #include "llviewerregion.h" +#include "llcorehttputil.h" // Two versions of the sim console API are supported. // @@ -68,6 +69,7 @@ namespace const std::string CONSOLE_NOT_SUPPORTED( "This region does not support the simulator console."); +#if 0 // This responder handles the initial response. Unless error() is called // we assume that the simulator has received our request. Error will be // called if this request times out. @@ -119,6 +121,7 @@ namespace public: LLTextEditor * mOutput; }; +#endif // This handles responses for console commands sent via the asynchronous // API. @@ -202,26 +205,73 @@ void LLFloaterRegionDebugConsole::onInput(LLUICtrl* ctrl, const LLSD& param) } else { +#if 1 + LLSD postData = LLSD(input->getText()); + LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpPost(url, postData, + boost::bind(&LLFloaterRegionDebugConsole::onConsoleSuccess, this, _1), + boost::bind(&LLFloaterRegionDebugConsole::onConsoleError, this, _1)); +#else // Using SimConsole (deprecated) LLHTTPClient::post( url, LLSD(input->getText()), new ConsoleResponder(mOutput)); +#endif } } else { +#if 1 + LLSD postData = LLSD(input->getText()); + LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpPost(url, postData, + NULL, + boost::bind(&LLFloaterRegionDebugConsole::onAsyncConsoleError, this, _1)); + +#else // Using SimConsoleAsync LLHTTPClient::post( url, LLSD(input->getText()), new AsyncConsoleResponder); +#endif } mOutput->appendText(text, false); input->clear(); } +void LLFloaterRegionDebugConsole::onAsyncConsoleError(LLSD result) +{ + LL_WARNS("Console") << UNABLE_TO_SEND_COMMAND << LL_ENDL; + sConsoleReplySignal(UNABLE_TO_SEND_COMMAND); +} + +void LLFloaterRegionDebugConsole::onConsoleError(LLSD result) +{ + LL_WARNS("Console") << UNABLE_TO_SEND_COMMAND << LL_ENDL; + if (mOutput) + { + mOutput->appendText( + UNABLE_TO_SEND_COMMAND + PROMPT, + false); + } + +} + +void LLFloaterRegionDebugConsole::onConsoleSuccess(LLSD result) +{ + if (mOutput) + { + LLSD response = result; + if (response.isMap() && response.has(LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS_CONTENT)) + { + response = response[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS_CONTENT]; + } + mOutput->appendText( + response.asString() + PROMPT, false); + } +} + void LLFloaterRegionDebugConsole::onReplyReceived(const std::string& output) { mOutput->appendText(output + PROMPT, false); -- cgit v1.2.3 From d784b20e2926ffcdf3d79de157b0ec0e1676bc82 Mon Sep 17 00:00:00 2001 From: Rider Linden Date: Fri, 22 May 2015 16:27:25 -0700 Subject: Clean out the dead code --- indra/newview/llfloaterregiondebugconsole.cpp | 71 --------------------------- 1 file changed, 71 deletions(-) (limited to 'indra/newview/llfloaterregiondebugconsole.cpp') diff --git a/indra/newview/llfloaterregiondebugconsole.cpp b/indra/newview/llfloaterregiondebugconsole.cpp index 00955ff941..271fb2f9a3 100755 --- a/indra/newview/llfloaterregiondebugconsole.cpp +++ b/indra/newview/llfloaterregiondebugconsole.cpp @@ -30,7 +30,6 @@ #include "llfloaterregiondebugconsole.h" #include "llagent.h" -#include "llhttpclient.h" #include "llhttpnode.h" #include "lllineeditor.h" #include "lltexteditor.h" @@ -69,60 +68,6 @@ namespace const std::string CONSOLE_NOT_SUPPORTED( "This region does not support the simulator console."); -#if 0 - // This responder handles the initial response. Unless error() is called - // we assume that the simulator has received our request. Error will be - // called if this request times out. - class AsyncConsoleResponder : public LLHTTPClient::Responder - { - LOG_CLASS(AsyncConsoleResponder); - protected: - /* virtual */ - void httpFailure() - { - LL_WARNS("Console") << dumpResponse() << LL_ENDL; - sConsoleReplySignal(UNABLE_TO_SEND_COMMAND); - } - }; - - class ConsoleResponder : public LLHTTPClient::Responder - { - LOG_CLASS(ConsoleResponder); - public: - ConsoleResponder(LLTextEditor *output) : mOutput(output) - { - } - - protected: - /*virtual*/ - void httpFailure() - { - LL_WARNS("Console") << dumpResponse() << LL_ENDL; - if (mOutput) - { - mOutput->appendText( - UNABLE_TO_SEND_COMMAND + PROMPT, - false); - } - } - - /*virtual*/ - void httpSuccess() - { - const LLSD& content = getContent(); - LL_DEBUGS("Console") << content << LL_ENDL; - if (mOutput) - { - mOutput->appendText( - content.asString() + PROMPT, false); - } - } - - public: - LLTextEditor * mOutput; - }; -#endif - // This handles responses for console commands sent via the asynchronous // API. class ConsoleResponseNode : public LLHTTPNode @@ -205,35 +150,19 @@ void LLFloaterRegionDebugConsole::onInput(LLUICtrl* ctrl, const LLSD& param) } else { -#if 1 LLSD postData = LLSD(input->getText()); LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpPost(url, postData, boost::bind(&LLFloaterRegionDebugConsole::onConsoleSuccess, this, _1), boost::bind(&LLFloaterRegionDebugConsole::onConsoleError, this, _1)); -#else - // Using SimConsole (deprecated) - LLHTTPClient::post( - url, - LLSD(input->getText()), - new ConsoleResponder(mOutput)); -#endif } } else { -#if 1 LLSD postData = LLSD(input->getText()); LLCoreHttpUtil::HttpCoroutineAdapter::callbackHttpPost(url, postData, NULL, boost::bind(&LLFloaterRegionDebugConsole::onAsyncConsoleError, this, _1)); -#else - // Using SimConsoleAsync - LLHTTPClient::post( - url, - LLSD(input->getText()), - new AsyncConsoleResponder); -#endif } mOutput->appendText(text, false); -- cgit v1.2.3