jingle/register.h
author Nicolas Cornu <nicolas.cornu@ensi-bourges.fr>
Tue, 06 Jul 2010 16:57:11 +0200
changeset 33 92e92ce901e7
parent 32 72bbe33f151a
child 37 fce6bdc1ff46
permissions -rw-r--r--
a function to find a sessioncontent

#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);
typedef void (*JingleAppHandle) (JingleNode *jn, JingleContent *cn);
typedef LmMessageNode* (*JingleAppGetLM) (gconstpointer data);
typedef gboolean (*JingleAppCmp) (gconstpointer data, gconstpointer data2);

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

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;
  
  JingleAppCmp cmp;

} JingleAppFuncs;

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

  JingleTransportGetLM trans;

  /* */
  JingleAppHandle handle;
  
  JingleTransportCmp cmp;
  
} JingleTransportFuncs;


void jingle_register_app(const gchar *xmlns, JingleAppFuncs *funcs);
void jingle_register_transport(const gchar *xmlns, JingleTransportFuncs *funcs);
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