summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2010-06-13 20:59:49 +0300
committerFelipe Contreras <felipe.contreras@gmail.com>2010-06-14 03:13:33 +0300
commit19ee247852f343d5d1988cfc35420af48be82eff (patch)
tree539838d3120973c0303f11e874de904c5e50c643
parentdb88bb4291d6beb13fc8bbafc983e55be62d5548 (diff)
node: add "open" signal
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
-rw-r--r--pn_node.c9
-rw-r--r--pn_node.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/pn_node.c b/pn_node.c
index ded72eb..6d7f7ac 100644
--- a/pn_node.c
+++ b/pn_node.c
@@ -63,6 +63,10 @@ connect_cb(GObject *source,
if (socket_conn) {
priv->status = PN_NODE_STATUS_OPEN;
priv->socket_conn = socket_conn;
+
+ struct pn_node_class *class;
+ class = g_type_class_peek(PN_NODE_TYPE);
+ g_signal_emit(G_OBJECT(node), class->open_sig, 0, node);
}
else {
pn_node_close(node);
@@ -137,6 +141,11 @@ class_init(void *g_class,
parent_class = g_type_class_peek_parent(g_class);
g_type_class_add_private(g_class, sizeof(struct pn_node_priv));
+
+ node_class->open_sig = g_signal_new("open", G_TYPE_FROM_CLASS(gobject_class),
+ G_SIGNAL_RUN_FIRST, 0, NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
}
static void
diff --git a/pn_node.h b/pn_node.h
index 8c59d15..10c88ef 100644
--- a/pn_node.h
+++ b/pn_node.h
@@ -16,6 +16,8 @@ struct pn_node_class {
void (*connect) (struct pn_node *node, const char *hostname, int port);
void (*close) (struct pn_node *node);
+
+ guint open_sig;
};
#define PN_NODE_TYPE (pn_node_get_type())