summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew Christian <andrew.christian@nokia.com>2012-02-01 12:02:23 -0500
committerAndrew Christian <andrew.christian@nokia.com>2012-02-02 13:01:53 +0100
commit5637f471839e02a6fc8c7eedd7e646580eee3140 (patch)
tree2cd77054f2050dd92c48a9ed09d3f3d677a05b33 /src
parentd8c4b920f1b7159ea48437a623939abfd217162e (diff)
Expose process errorstring to remote processes
Change-Id: I08f3bd3ec4740a61faf7af09c8251d9054bcf68e Reviewed-by: Chris Craig <ext-chris.craig@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/remoteprocessbackend.cpp12
-rw-r--r--src/core/remoteprocessbackend.h9
-rw-r--r--src/core/remoteprocessbackendfactory.cpp2
-rw-r--r--src/launcher/launcherclient.cpp3
4 files changed, 20 insertions, 6 deletions
diff --git a/src/core/remoteprocessbackend.cpp b/src/core/remoteprocessbackend.cpp
index ce6db11..55d19e3 100644
--- a/src/core/remoteprocessbackend.cpp
+++ b/src/core/remoteprocessbackend.cpp
@@ -202,6 +202,7 @@ void RemoteProcessBackend::stop(int timeout)
object.insert(kCommand, QLatin1String("stop"));
object.insert(kId, m_id);
object.insert(QLatin1String("timeout"), timeout);
+ m_factory->send(object);
}
}
@@ -226,6 +227,14 @@ qint64 RemoteProcessBackend::write(const char *data, qint64 maxSize)
return -1;
}
+/*!
+ Returns the most recent error string
+*/
+QString RemoteProcessBackend::errorString() const
+{
+ return m_errorString;
+}
+
/*!
Message received from the remote.
@@ -235,12 +244,13 @@ qint64 RemoteProcessBackend::write(const char *data, qint64 maxSize)
void RemoteProcessBackend::receive(const QJsonObject& message)
{
QString event = message.value("event").toString();
- qDebug() << Q_FUNC_INFO << message;
+ // qDebug() << Q_FUNC_INFO << message;
if (event == "started") {
m_pid = message.value("pid").toDouble();
emit started();
}
else if (event == "error") {
+ m_errorString = message.value("errorString").toString();
emit error(static_cast<QProcess::ProcessError>(message.value("error").toDouble()));
}
else if (event == "finished") {
diff --git a/src/core/remoteprocessbackend.h b/src/core/remoteprocessbackend.h
index 371047a..5a1f71f 100644
--- a/src/core/remoteprocessbackend.h
+++ b/src/core/remoteprocessbackend.h
@@ -70,6 +70,8 @@ public:
virtual void stop(int timeout = 500);
virtual qint64 write(const char *data, qint64 maxSize);
+ virtual QString errorString() const;
+
private:
friend class RemoteProcessBackendFactory;
void killTimeout();
@@ -78,9 +80,10 @@ private:
private:
RemoteProcessBackendFactory *m_factory;
- QProcess::ProcessState m_state;
- Q_PID m_pid;
- qint32 m_id;
+ QProcess::ProcessState m_state;
+ Q_PID m_pid;
+ qint32 m_id;
+ QString m_errorString;
};
QT_END_NAMESPACE_PROCESSMANAGER
diff --git a/src/core/remoteprocessbackendfactory.cpp b/src/core/remoteprocessbackendfactory.cpp
index 149effb..41ec4af 100644
--- a/src/core/remoteprocessbackendfactory.cpp
+++ b/src/core/remoteprocessbackendfactory.cpp
@@ -146,7 +146,7 @@ ProcessBackend * RemoteProcessBackendFactory::create(const ProcessInfo& info, QO
void RemoteProcessBackendFactory::receive(const QJsonObject& message)
{
- qDebug() << Q_FUNC_INFO << message;
+ // qDebug() << Q_FUNC_INFO << message;
int id = message.value(QLatin1String("id")).toDouble();
if (m_backendMap.contains(id))
m_backendMap.value(id)->receive(message);
diff --git a/src/launcher/launcherclient.cpp b/src/launcher/launcherclient.cpp
index e56dfd1..b29f384 100644
--- a/src/launcher/launcherclient.cpp
+++ b/src/launcher/launcherclient.cpp
@@ -66,7 +66,7 @@ LauncherClient::LauncherClient(ProcessBackendManager *manager)
void LauncherClient::receive(const QJsonObject& message)
{
- qDebug() << Q_FUNC_INFO << message;
+ // qDebug() << Q_FUNC_INFO << message;
QString cmd = message.value("command").toString();
int id = message.value("id").toDouble();
if ( cmd == "start" ) {
@@ -157,6 +157,7 @@ void LauncherClient::error(QProcess::ProcessError err)
msg.insert(kEvent, QLatin1String("error"));
msg.insert(kId, m_backendToId.value(backend));
msg.insert("error", err);
+ msg.insert("errorString", backend->errorString());
emit send(msg);
}