summaryrefslogtreecommitdiff
path: root/daemon/watchconnector.cpp
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2014-12-01 02:21:30 +0100
committerJavier <dev.git@javispedro.com>2014-12-01 02:21:30 +0100
commit1e3794c476caf5c41360c36cc13c8425ec0dd26c (patch)
treef86693c5e17671f821871f95e462f299170277e0 /daemon/watchconnector.cpp
parentcf405034b49e5e8ba7a8d22522878c8834b8d4ae (diff)
implement message passing around jskit apps and watch
Diffstat (limited to 'daemon/watchconnector.cpp')
-rw-r--r--daemon/watchconnector.cpp19
1 files changed, 11 insertions, 8 deletions
diff --git a/daemon/watchconnector.cpp b/daemon/watchconnector.cpp
index a3ea181..dd95821 100644
--- a/daemon/watchconnector.cpp
+++ b/daemon/watchconnector.cpp
@@ -89,7 +89,7 @@ QString WatchConnector::decodeEndpoint(uint val)
return endpoint ? QString(endpoint) : QString("watchUNKNOWN_%1").arg(val);
}
-void WatchConnector::setEndpointHandler(uint endpoint, EndpointHandlerFunc func)
+void WatchConnector::setEndpointHandler(uint endpoint, const EndpointHandlerFunc &func)
{
if (func) {
handlers.insert(endpoint, func);
@@ -241,6 +241,7 @@ void WatchConnector::sendData(const QByteArray &data)
reconnect();
} else if (is_connected) {
logger()->debug() << "Writing" << data.length() << "bytes to socket";
+ logger()->debug() << data.toHex();
socket->write(data);
}
}
@@ -251,7 +252,7 @@ void WatchConnector::onBytesWritten(qint64 bytes)
logger()->debug() << "Socket written" << bytes << "bytes," << writeData.length() << "left";
}
-void WatchConnector::sendMessage(uint endpoint, const QByteArray &data)
+void WatchConnector::sendMessage(uint endpoint, const QByteArray &data, const EndpointHandlerFunc &callback)
{
logger()->debug() << "sending message to endpoint" << decodeEndpoint(endpoint);
QByteArray msg;
@@ -268,6 +269,10 @@ void WatchConnector::sendMessage(uint endpoint, const QByteArray &data)
msg.append(data);
sendData(msg);
+
+ if (callback) {
+ tmpHandlers[endpoint].append(callback);
+ }
}
void WatchConnector::buildData(QByteArray &res, QStringList data)
@@ -445,9 +450,8 @@ void WatchConnector::endPhoneCall(uint cookie)
void WatchConnector::getAppbankStatus(const std::function<void(const QString &s)>& callback)
{
- sendMessage(watchAPP_MANAGER, QByteArray(1, appmgrGET_APPBANK_STATUS));
-
- tmpHandlers[watchAPP_MANAGER].append([this, callback](const QByteArray &data) {
+ sendMessage(watchAPP_MANAGER, QByteArray(1, appmgrGET_APPBANK_STATUS),
+ [this, callback](const QByteArray &data) {
if (data.at(0) != appmgrGET_APPBANK_STATUS) {
return false;
}
@@ -491,9 +495,8 @@ void WatchConnector::getAppbankStatus(const std::function<void(const QString &s)
void WatchConnector::getAppbankUuids(const function<void(const QList<QUuid> &)>& callback)
{
- sendMessage(watchAPP_MANAGER, QByteArray(1, appmgrGET_APPBANK_UUIDS));
-
- tmpHandlers[watchAPP_MANAGER].append([this, callback](const QByteArray &data) {
+ sendMessage(watchAPP_MANAGER, QByteArray(1, appmgrGET_APPBANK_UUIDS),
+ [this, callback](const QByteArray &data) {
if (data.at(0) != appmgrGET_APPBANK_UUIDS) {
return false;
}