diff options
| author | Andrew Christian <andrew.christian@nokia.com> | 2012-02-01 12:02:23 -0500 |
|---|---|---|
| committer | Andrew Christian <andrew.christian@nokia.com> | 2012-02-02 13:01:53 +0100 |
| commit | 5637f471839e02a6fc8c7eedd7e646580eee3140 (patch) | |
| tree | 2cd77054f2050dd92c48a9ed09d3f3d677a05b33 /src | |
| parent | d8c4b920f1b7159ea48437a623939abfd217162e (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.cpp | 12 | ||||
| -rw-r--r-- | src/core/remoteprocessbackend.h | 9 | ||||
| -rw-r--r-- | src/core/remoteprocessbackendfactory.cpp | 2 | ||||
| -rw-r--r-- | src/launcher/launcherclient.cpp | 3 |
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); } |
