JingleTransport * jingle_transport_parse(xmlnode *transport) { const gchar *type_name = xmlnode_get_namespace(transport); GType type = jingle_get_type(type_name); if (type == G_TYPE_NONE) return NULL; return JINGLE_TRANSPORT_CLASS(g_type_class_ref(type))->parse(transport); }
JingleContent * jingle_content_parse(xmlnode *content) { const gchar *type = xmlnode_get_namespace(xmlnode_get_child(content, "description")); GType jingle_type = jingle_get_type(type); if (jingle_type != G_TYPE_NONE) { return JINGLE_CONTENT_CLASS(g_type_class_ref(jingle_type))->parse(content); } else { return NULL; } }
JingleContent * jingle_content_create(const gchar *type, const gchar *creator, const gchar *disposition, const gchar *name, const gchar *senders, JingleTransport *transport) { JingleContent *content = g_object_new(jingle_get_type(type), "creator", creator, "disposition", disposition != NULL ? disposition : "session", "name", name, "senders", senders != NULL ? senders : "both", "transport", transport, NULL); return content; }
JingleTransport * jingle_transport_parse(xmlnode *transport) { const gchar *type = xmlnode_get_namespace(transport); return JINGLE_TRANSPORT_CLASS(g_type_class_ref(jingle_get_type(type)))->parse(transport); }
JingleTransport * jingle_transport_create(const gchar *type) { return g_object_new(jingle_get_type(type), NULL); }