utils-jbus: adds closure
[src/app-framework-main.git] / src / utils-jbus.h
index 218c21d..11cb8ed 100644 (file)
 struct jreq;
 struct jbus;
 
-extern struct jbus *create_jbus(int session, const char *path);
+extern struct jbus *create_jbus(const char *path, int session);
+extern struct jbus *create_jbus_session(const char *path);
+extern struct jbus *create_jbus_system(const char *path);
+
 extern void jbus_addref(struct jbus *jbus);
 extern void jbus_unref(struct jbus *jbus);
 
+struct pollfd;
+extern int jbus_fill_pollfds(struct jbus **jbuses, int njbuses, struct pollfd *fds);
+extern int jbus_dispatch_pollfds(struct jbus **jbuses, int njbuses, struct pollfd *fds, int maxcount);
+extern int jbus_read_write_dispatch_multiple(struct jbus **jbuses, int njbuses, int toms, int maxcount);
+extern int jbus_dispatch_multiple(struct jbus **jbuses, int njbuses, int maxcount);
+
 extern int jbus_read_write_dispatch(struct jbus *jbus, int toms);
 
 /* verbs for the clients */
@@ -37,8 +46,8 @@ extern char *jbus_call_js_sync(struct jbus *jbus, const char *method, struct jso
 extern struct json_object *jbus_call_sj_sync(struct jbus *jbus, const char *method, const char *query);
 extern struct json_object *jbus_call_jj_sync(struct jbus *jbus, const char *method, struct json_object *query);
 
-extern int jbus_on_signal_s(struct jbus *jbus, const char *name, void (*onsignal)(const char *));
-extern int jbus_on_signal_j(struct jbus *jbus, const char *name, void (*onsignal)(struct json_object *));
+extern int jbus_on_signal_s(struct jbus *jbus, const char *name, void (*onsignal)(const char *, void *), void *data);
+extern int jbus_on_signal_j(struct jbus *jbus, const char *name, void (*onsignal)(struct json_object *, void *), void *data);
 
 /* verbs for servers */
 extern int jbus_reply_s(struct jreq *jreq, const char *reply);
@@ -46,9 +55,10 @@ extern int jbus_reply_j(struct jreq *jreq, struct json_object *reply);
 extern int jbus_reply_error_s(struct jreq *jreq, const char *reply);
 extern int jbus_reply_error_j(struct jreq *jreq, struct json_object *reply);
 
-extern int jbus_add_service_s(struct jbus *jbus, const char *method, void (*oncall)(struct jreq *, const char *));
-extern int jbus_add_service_j(struct jbus *jbus, const char *method, void (*oncall)(struct jreq *, struct json_object *));
+extern int jbus_add_service_s(struct jbus *jbus, const char *method, void (*oncall)(struct jreq *, const char *, void *), void *data);
+extern int jbus_add_service_j(struct jbus *jbus, const char *method, void (*oncall)(struct jreq *, struct json_object *, void *), void *data);
 extern int jbus_start_serving(struct jbus *jbus);
 extern int jbus_send_signal_s(struct jbus *jbus, const char *name, const char *content);
 extern int jbus_send_signal_j(struct jbus *jbus, const char *name, struct json_object *content);
 
+