Loading...
Searching...
No Matches
Sofia-SIP su-glib Module

# Module Meta Information

The su-glib module provides an interface to connect Sofia-SIP event loop to an existing glib main loop. Without this interface, a glib based application would have to create a separate thread for running the Sofia-SIP event loop.

Contact:\n Pekka Pessi <Pekka.Pessi@nokia-email.address.hidden>

Status:\n Core library

License:\n LGPL

# Contents of su-glib Module

The su-glib module contains the public header files as follows:

- <su_glib.h> the public API of the module
- <su_source.h> deprecated API (1.12.1 and earlier)

# Examples of use

Below is a simple example of how to use su-glib:

#include <glib.h>
#include <sofia-sip/su_glib.h>
/* ... */
GMainLoop *ptr = g_main_loop_new(NULL, FALSE);
GSource *gsource;
su_root_t *sofia_event_loop;
su_timer_t *timer;
/* create a sofia event loop using su-glib function su_glib_root_source_create() */
sofia_event_loop = su_glib_root_create(NULL);
/* attach the created GSource to glib event loop */
gsource = su_glib_root_gsource(sofia_event_loop);
g_source_attach(gsource, g_main_loop_get_context(ptr));
/* use the sofia event loop with libsofia-sip-ua modules */
timer = su_timer_create(su_root_task(sofia_event_loop), 200L);
/* ... initialize other Sofia-SIP modules/functrions */
/* run the glib mainloop */
g_main_loop_run(ptr);
su_glib.h
su_glib_root_gsource
GSource * su_glib_root_gsource(su_root_t *root)
Returns a GSource object for the root.
Definition su_source.c:267
su_glib_root_create
su_root_t * su_glib_root_create(su_root_magic_t *magic)
Create a root that uses GSource as reactor.
Definition su_source.c:247
su_root_task
su_task_r su_root_task(su_root_t const *root)
su_root_t
struct su_root_t su_root_t
su_timer_create
su_timer_t * su_timer_create(su_task_r const, su_duration_t msec))
su_timer_t
struct su_timer_s su_timer_t

# Todo

- see sourceforge.net issue tracker for sofia-sip (-> http://sofia-sip.sourceforge.net/development.html )

Sofia-SIP 1.12.11devel - Copyright (C) 2006 Nokia Corporation. All rights reserved. Licensed under the terms of the GNU Lesser General Public License.