Merge remote-tracking branch 'cros/upstream' into 'cros/master'
Contains the following commit:
0568676 libqrtr-glib: Add support for signaling addition/deletion of services. (Madhav)
Change-Id: Ie16a6b8dbc13be81f99c2e92417b80bb549e3562
diff --git a/src/libqrtr-glib/qrtr-control-socket.c b/src/libqrtr-glib/qrtr-control-socket.c
index 63cac4b..a4dad46 100644
--- a/src/libqrtr-glib/qrtr-control-socket.c
+++ b/src/libqrtr-glib/qrtr-control-socket.c
@@ -42,6 +42,8 @@
enum {
SIGNAL_NODE_ADDED,
SIGNAL_NODE_REMOVED,
+ SIGNAL_SERVICE_ADDED,
+ SIGNAL_SERVICE_REMOVED,
SIGNAL_LAST
};
@@ -77,6 +79,7 @@
}
__qrtr_node_add_service_info (node, service, port, version, instance);
+ g_signal_emit (self, signals[SIGNAL_SERVICE_ADDED], 0, node_id, service);
}
static void
@@ -96,6 +99,7 @@
}
__qrtr_node_remove_service_info (node, service, port, version, instance);
+ g_signal_emit (self, signals[SIGNAL_SERVICE_REMOVED], 0, node_id, service);
if (!qrtr_node_has_services (node)) {
g_debug ("[qrtr] removing node %u", node_id);
g_signal_emit (self, signals[SIGNAL_NODE_REMOVED], 0, node_id);
@@ -380,4 +384,48 @@
G_TYPE_NONE,
1,
G_TYPE_UINT);
+
+ /**
+ * QrtrControlSocket::qrtr-service-added:
+ * @self: the #QrtrControlSocket
+ * @node: the node ID where service is added
+ * @service: the service ID of the service that has been added
+ *
+ * The ::qrtr-service-added signal is emitted when a new service registers
+ * on the QRTR bus.
+ */
+ signals[SIGNAL_SERVICE_ADDED] =
+ g_signal_new (QRTR_CONTROL_SOCKET_SIGNAL_SERVICE_ADDED,
+ G_OBJECT_CLASS_TYPE (G_OBJECT_CLASS (klass)),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ NULL,
+ G_TYPE_NONE,
+ 2,
+ G_TYPE_UINT,
+ G_TYPE_UINT);
+
+ /**
+ * QrtrControlSocket::qrtr-service-removed:
+ * @self: the #QrtrControlSocket
+ * @node: the node ID where service is removed
+ * @service: the service ID of the service that was removed
+ *
+ * The ::qrtr-service-removed signal is emitted when a service deregisters
+ * from the QRTR bus.
+ */
+ signals[SIGNAL_SERVICE_REMOVED] =
+ g_signal_new (QRTR_CONTROL_SOCKET_SIGNAL_SERVICE_REMOVED,
+ G_OBJECT_CLASS_TYPE (G_OBJECT_CLASS (klass)),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL,
+ NULL,
+ NULL,
+ G_TYPE_NONE,
+ 2,
+ G_TYPE_UINT,
+ G_TYPE_UINT);
}
diff --git a/src/libqrtr-glib/qrtr-control-socket.h b/src/libqrtr-glib/qrtr-control-socket.h
index 9dff727..beea9b8 100644
--- a/src/libqrtr-glib/qrtr-control-socket.h
+++ b/src/libqrtr-glib/qrtr-control-socket.h
@@ -83,6 +83,20 @@
#define QRTR_CONTROL_SOCKET_SIGNAL_NODE_REMOVED "qrtr-node-removed"
/**
+ * QRTR_CONTROL_SOCKET_SIGNAL_SERVICE_ADDED:
+ *
+ * Symbol defining the #QrtrControlSocket::qrtr-service-added signal.
+ */
+#define QRTR_CONTROL_SOCKET_SIGNAL_SERVICE_ADDED "qrtr-service-added"
+
+/**
+ * QRTR_CONTROL_SOCKET_SIGNAL_SERVICE_REMOVED:
+ *
+ * Symbol defining the #QrtrControlSocket::qrtr-service-removed signal.
+ */
+#define QRTR_CONTROL_SOCKET_SIGNAL_SERVICE_REMOVED "qrtr-service-removed"
+
+/**
* qrtr_control_socket_new:
* @cancellable: optional #GCancellable object, #NULL to ignore.
* @error: Return location for error or %NULL.