diff -r d0f3a028347a -r 59927b2d3b75 libtelepathy/src/tp-connmgr.c --- a/libtelepathy/src/tp-connmgr.c Tue Feb 02 01:10:06 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,217 +0,0 @@ -/* tp-connmgr.c - * - * Copyright (C) 2005 Collabora Ltd. - * - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#include "tp-connmgr.h" -#include "tp-connmgr-signals-marshal.h" -#include "tp-conn.h" -#include "tp-helpers.h" - -#ifdef EMULATOR -#include "libtelepathy_wsd_solution.h" -#endif - -#ifdef EMULATOR - - GET_STATIC_VAR_FROM_TLS(parent_class,tp_connmgr,GObjectClass *) - #define parent_class (*GET_WSD_VAR_NAME(parent_class,tp_connmgr,s)()) - - GET_STATIC_VAR_FROM_TLS(type1,tp_connmgr,GType) - #define type1 (*GET_WSD_VAR_NAME(type1,tp_connmgr,s)()) -#else - static GObjectClass *parent_class = NULL; -#endif - - -static void _tp_connmgr_register_signal_marshallers() -{ - /* Register marshaller for the NewConnection signal */ - dbus_g_object_register_marshaller(tp_connmgr_signals_marshal_VOID__STRING_OBJECT_STRING, G_TYPE_NONE, G_TYPE_STRING, DBUS_TYPE_G_OBJECT_PATH, G_TYPE_STRING, G_TYPE_INVALID); -} - -static void tp_connmgr_dispose(GObject *obj) -{ - TpConnMgr *self = TELEPATHY_CONNMGR(obj); - - if (self->first_run) - { - self->first_run = FALSE; - } - - /* Call the parent dispose method */ - if (G_OBJECT_CLASS(parent_class)->dispose) - { - G_OBJECT_CLASS(parent_class)->dispose(obj); - } - -} - - -static void tp_connmgr_finalize(GObject *obj) -{ - if(G_OBJECT_CLASS(parent_class)->finalize) - { - G_OBJECT_CLASS(parent_class)->finalize(obj); - } -} - - -static void tp_connmgr_init(GTypeInstance *instance, gpointer g_class) -{ - TpConnMgr *self = TELEPATHY_CONNMGR(instance); - - self->first_run = TRUE; -} - - -static void tp_connmgr_class_init(TpConnMgrClass *klass) -{ - GObjectClass *obj = G_OBJECT_CLASS(klass); - parent_class = g_type_class_peek_parent(klass); - - obj->set_property = parent_class->set_property; - obj->get_property = parent_class->get_property; - - obj->dispose = tp_connmgr_dispose; - obj->finalize = tp_connmgr_finalize; - - _tp_connmgr_register_signal_marshallers(); -} - - -GType tp_connmgr_get_type(void) -{ -#ifndef EMULATOR - static GType type1 = 0; -#endif - - if (type1 == 0) - { - static const GTypeInfo info = - { - sizeof(TpConnMgrClass), - NULL, - NULL, - (GClassInitFunc)tp_connmgr_class_init, - NULL, - NULL, - sizeof(TpConnMgr), - 0, - (GInstanceInitFunc)tp_connmgr_init - - }; - type1 = g_type_register_static(DBUS_TYPE_G_PROXY, - "TpConnMgr", &info, 0); - } - return type1; -} - - - - -#ifdef SYMBIAN -EXPORT_C -#endif -TpConnMgr *tp_connmgr_new(DBusGConnection *connection, - const char *bus_name, - const char *object_path, - const char *interface_name) -{ - TpConnMgr *obj; - g_return_val_if_fail(connection != NULL, NULL); - g_return_val_if_fail(bus_name != NULL, NULL); - g_return_val_if_fail(object_path, NULL); - g_return_val_if_fail(interface_name, NULL); - - obj = g_object_new(TELEPATHY_CONNMGR_TYPE, - "name", bus_name, - "path", object_path, - "interface", interface_name, - "connection", connection, NULL); - - dbus_g_proxy_add_signal(DBUS_G_PROXY(obj), - "NewConnection", - G_TYPE_STRING, DBUS_TYPE_G_OBJECT_PATH, - G_TYPE_STRING, G_TYPE_INVALID); - - return obj; -} - - -#ifdef SYMBIAN -EXPORT_C -#endif -TpConn *tp_connmgr_new_connection(TpConnMgr *self, - GHashTable *connection_parameters, - gchar *protocol) -{ - GError *error = NULL; - TpConn *tp_conn_obj = NULL; - DBusGConnection *connection = tp_get_bus (); - gchar *bus_name = NULL, *object_path = NULL; - g_return_val_if_fail(TELEPATHY_IS_CONNMGR(self), NULL); - g_return_val_if_fail(connection_parameters != NULL, NULL); - - /* Create the actual connection and acquire service and path - information that the TpConn object will need */ - - if (!tp_connmgr_request_connection(DBUS_G_PROXY(self), protocol, - connection_parameters, &bus_name, - &object_path, &error)) - { - g_warning("Connect() failed: %s\n", error -> message); - g_error_free(error); - return NULL; - } - - if (bus_name == NULL || object_path == NULL) - { - return NULL; - } - - /* Create the TpConn object */ - - tp_conn_obj = tp_conn_new(connection, bus_name, object_path); - - return tp_conn_obj; -} - - -#ifdef SYMBIAN -EXPORT_C -#endif -gboolean tp_connmgr_list_protocols(TpConnMgr *self, char *** proto) -{ - GError *error = NULL; - - return dbus_g_proxy_call (DBUS_G_PROXY(self), "ListProtocols", &error, G_TYPE_INVALID, G_TYPE_STRV, proto, G_TYPE_INVALID); -} - - -#ifdef SYMBIAN -EXPORT_C -#endif -gboolean -tp_connmgr_get_parameters (TpConnMgr *self, const char * IN_proto, GPtrArray** OUT_arg1) - -{ - return dbus_g_proxy_call (DBUS_G_PROXY(self), "GetParameters", NULL, G_TYPE_STRING, IN_proto, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_VALUE, G_TYPE_INVALID)), OUT_arg1, G_TYPE_INVALID); -} -