jingle/register.h
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Sun, 04 Jul 2010 23:02:55 +0200
changeset 29 9215053e8fb0
parent 25 11694a99f84b
child 32 72bbe33f151a
permissions -rw-r--r--
Delete parse / use check

#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 gconstpointer (*JingleAppCheck) (JingleContent *cn, GError **err, gpointer *data);
typedef void (*JingleAppHandle) (JingleNode *jn, JingleContent *cn, gpointer *data);
typedef LmMessageNode* (*JingleAppGetLM) (gconstpointer data);

typedef gconstpointer (*JingleTransportCheck) (JingleContent *cn, GError **err, gpointer *data);
typedef void (*JingleTransportHandle) (JingleNode *jn, JingleContent *cn, gpointer *data);
typedef LmMessageNode* (*JingleTransportGetLM) (gconstpointer data);

typedef struct {
  /* check if the description of a JingleContent is correct */
  JingleAppCheck check;

  /* Give a LM from a internal struct */
  JingleAppGetLM desc;
  
  /* If we got a LM with the good xmlns */
  JingleAppHandle handle;

} JingleAppFuncs;

typedef struct {
  /* check if the transport of a JingleContent is correct */
  JingleAppCheck  check;

  JingleTransportGetLM trans;

  /* */
  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