jingle/register.h
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Fri, 11 Jun 2010 01:56:34 +0200
changeset 19 60a10ab26723
parent 18 d0ddcfd31eb8
child 20 72e53665328e
permissions -rw-r--r--
Modify the "registering" code. Use directly g_slist_foreach(..,g_free(),..) to free a list.

#ifndef __JINGLE_REGISTER_H__
#define __JINGLE_REGISTER_H__

#include <jingle/jingle.h>


#define NS_JINGLE_APP_PREFIX       "urn:xmpp:jingle:app:"
#define NS_JINGLE_TRANSPORT_PREFIX "urn:xmpp:jingle:transport:"


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;


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