jingle/register.h
changeset 19 60a10ab26723
parent 18 d0ddcfd31eb8
child 20 72e53665328e
--- a/jingle/register.h	Wed Jun 09 22:16:21 2010 +0200
+++ b/jingle/register.h	Fri Jun 11 01:56:34 2010 +0200
@@ -8,15 +8,39 @@
 #define NS_JINGLE_TRANSPORT_PREFIX "urn:xmpp:jingle:transport:"
 
 
-typedef void (*JingleAppHandler) (JingleNode *jn, JingleContentNode *cn, gpointer *data);
-typedef void (*JingleTransportHandler) (JingleNode *jn, JingleContentNode *cn, gpointer *data);
+typedef void (*JingleAppCheck) (JingleContentNode *cn, GError **err, gpointer *data);
+typedef void (*JingleAppHandle) (JingleNode *jn, JingleContentNode *cn, gpointer *data);
+typedef void (*JingleTransportCheck) (JingleContentNode *cn, GError **err, gpointer *data);
+typedef void (*JingleTransportHandle) (JingleNode *jn, JingleContentNode *cn, gpointer *data);
+
+typedef struct {
+  /* check if the description of a JingleContentNode is correct */
+  JingleAppCheck  check;
+
+  /* */
+  JingleAppHandle handle;
+
+} JingleAppFuncs;
+
+typedef struct {
+  /* check if the transport of a JingleContentNode is correct */
+  JingleAppCheck  check;
+
+  /* */
+  JingleAppHandle handle;
+  
+} JingleTransportFuncs;
 
 
-gboolean jingle_register_app(const gchar *xmlns,
-                             JingleAppHandler func,
-                             gpointer data);
-gboolean jingle_register_transport(const gchar *xmlns,
-                                   JingleTransportHandler func,
-                                   gpointer data);
+void jingle_register_app(const gchar *xmlns,
+                         JingleAppFuncs *funcs,
+                         gpointer data);
+void jingle_register_transport(const gchar *xmlns,
+                               JingleTransportFuncs *funcs,
+                               gpointer data);
+JingleAppFuncs *jingle_get_appfuncs(const gchar *xmlns);
+JingleTransportFuncs *jingle_get_transportfuncs(const gchar *xmlns);
+void jingle_unregister_app(const gchar *xmlns);
+void jingle_unregister_transport(const gchar *xmlns);
 
 #endif