29 Aug 2007 zeenix   » (Journeyer)

Implementing UPnP Services just got easier

So jorn has commited my patch that implements the magic of autoconnecting action and state-variable query signals to GUPnPService. I am too lazy to write all about it so I'll just copy&paste the doc-comment:


/**
 * gupnp_service_signals_autoconnect
 * @service: A #GUPnPService
 * @user_data: the data to pass to each of the callbacks
 * @error: return location for a GError, or NULL
 *
 * A convenience function that attempts to connect all
 * possible "action-invoked" and "query-variable" signals to
 * appropriate callbacks for the service @service. It uses
 * service introspection and GModule's introspective
 * features. It is very simillar to
 * glade_xml_signal_autoconnect except that it attempts to
 * guess the names of the signal handlers on its own.
 *
 * For this function to do its magic, the application must
 * name the callback functions for "action-invoked" signals
 * by striping the CamelCase off the action names and either
 * prepend "on_" or append "_cb" to them. Same goes for
 * "query-variable" signals, except that "query_" should be
 * prepended to the variable name. For example, callback
 * function for "GetSystemUpdateID" action should be either
 * named as "get_system_update_id_cb" or
 * "on_get_system_update_id" and callback function for the
 * query of "SystemUpdateID" state variable should be named
 * "query_system_update_id_cb" or
 * "on_query_system_update_id".
 *
 * Note that this function will not work correctly if
 * GModule is not supported on the platform or introspection
 * is not available for service @service.
 *
 * WARNING: This function can not and therefore does not
 * guarantee that the resulting signal connections will be
 * correct as it depends heavily on a particular naming
 * schemes described above.
 **/

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!