// This the viewer process (the parent process). // // This function is called when a message is received from a plugin. // It parses the message and passes it on to LLPluginProcessParent::receiveMessage. void LLPluginProcessParent::receiveMessageRaw(const std::string &message) { LL_DEBUGS("PluginRaw") << "Received: " << message << LL_ENDL; LLPluginMessage parsed; if(parsed.parse(message) != -1) { if(parsed.hasValue("blocking_request")) { mBlocked = true; } if(parsed.hasValue("perseus")) { mBlocked = false; // reset the heartbeat timer, since there will have been no heartbeats while the plugin was blocked. mHeartbeat.setTimerExpirySec(mPluginLockupTimeout); } if(mPolledInput) { // This is being called on the polling thread -- only do minimal processing/queueing. receiveMessageEarly(parsed); } else { // This is not being called on the polling thread -- do full message processing at this time. receiveMessage(parsed); } } }
void LLPluginProcessParent::receiveMessageRaw(const std::string &message) { LL_DEBUGS("Plugin") << "Received: " << message << LL_ENDL; LLPluginMessage parsed; if(LLSDParser::PARSE_FAILURE != parsed.parse(message)) { if(parsed.hasValue("blocking_request")) { mBlocked = true; } if(mPolledInput) { // This is being called on the polling thread -- only do minimal processing/queueing. receiveMessageEarly(parsed); } else { // This is not being called on the polling thread -- do full message processing at this time. receiveMessage(parsed); } } }