Skip to content
Snippets Groups Projects
Commit 00b2b60a authored by Rider Linden's avatar Rider Linden
Browse files

Region debug console to coroutines.

parent e9257f03
No related branches found
No related tags found
No related merge requests found
......@@ -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);
......
......@@ -38,7 +38,7 @@ class LLTextEditor;
typedef boost::signals2::signal<
void (const std::string& output)> console_reply_signal_t;
class LLFloaterRegionDebugConsole : public LLFloater, public LLHTTPClient::Responder
class LLFloaterRegionDebugConsole : public LLFloater
{
public:
LLFloaterRegionDebugConsole(LLSD const & key);
......@@ -56,6 +56,10 @@ class LLFloaterRegionDebugConsole : public LLFloater, public LLHTTPClient::Respo
private:
void onReplyReceived(const std::string& output);
void onAsyncConsoleError(LLSD result);
void onConsoleError(LLSD result);
void onConsoleSuccess(LLSD result);
boost::signals2::connection mReplySignalConnection;
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment