From 19539e3418641cd379e80a69d3243db5537e0dc3 Mon Sep 17 00:00:00 2001 From: Alvaro Soliverez Date: Wed, 14 Mar 2012 19:29:54 -0300 Subject: Move plugin library-specific code from util.c into its own file, to prevent dependency problems As part of this, a new SalutPluginContactInterface had to be created to access contact capabilities that were needed for the plugin utils. Accessing SalutContact directly would bring most of salut core in, so a GInterface is used, similar to what is done with SalutPluginConnection --- salut/Makefile.am | 1 + salut/plugin-contact.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ salut/util.h | 3 +-- 3 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 salut/plugin-contact.h (limited to 'salut') diff --git a/salut/Makefile.am b/salut/Makefile.am index 14653c1f..f9befdbe 100644 --- a/salut/Makefile.am +++ b/salut/Makefile.am @@ -6,6 +6,7 @@ salutincludedir = $(includedir)/telepathy-salut-0/salut salutinclude_HEADERS = \ plugin.h \ plugin-connection.h \ + plugin-contact.h \ protocol.h \ caps-channel-manager.h \ capabilities.h \ diff --git a/salut/plugin-contact.h b/salut/plugin-contact.h new file mode 100644 index 00000000..b9815bef --- /dev/null +++ b/salut/plugin-contact.h @@ -0,0 +1,59 @@ +/* + * plugin-contact.h — Connection API available to telepathy-salut plugins + * Copyright © 2012 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SALUT_PLUGIN_CONTACT_H +#define SALUT_PLUGIN_CONTACT_H + +#include + +#include +#include + +G_BEGIN_DECLS + +typedef struct _SalutPluginContact SalutPluginContact; +typedef struct _SalutPluginContactInterface SalutPluginContactInterface; + +#define SALUT_TYPE_PLUGIN_CONTACT (salut_plugin_contact_get_type ()) +#define SALUT_PLUGIN_CONTACT(o) \ + (G_TYPE_CHECK_INSTANCE_CAST ((o), SALUT_TYPE_PLUGIN_CONTACT, \ + SalutPluginContact)) +#define SALUT_IS_PLUGIN_CONTACT(o) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((o), SALUT_TYPE_PLUGIN_CONTACT)) +#define SALUT_PLUGIN_CONTACT_GET_IFACE(o) \ + (G_TYPE_INSTANCE_GET_INTERFACE ((o), SALUT_TYPE_PLUGIN_CONTACT, \ + SalutPluginContactInterface)) + +GType salut_plugin_contact_get_type (void) G_GNUC_CONST; + +typedef GabbleCapabilitySet * (*SalutPluginContactGetCapsFunc) ( + SalutPluginContact *plugin_contact); + +struct _SalutPluginContactInterface +{ + GTypeInterface parent; + SalutPluginContactGetCapsFunc get_caps; +}; + +GabbleCapabilitySet *salut_plugin_contact_get_caps ( + SalutPluginContact *plugin_contact); + +G_END_DECLS + +#endif diff --git a/salut/util.h b/salut/util.h index 977e0b49..379658b1 100644 --- a/salut/util.h +++ b/salut/util.h @@ -1,5 +1,5 @@ /* - * util.h - Headers for Salut utility functions + * plugin-util.h - Headers for Salut plugins utility functions * Copyright (C) 2011 Collabora Ltd. * * This library is free software; you can redistribute it and/or @@ -20,7 +20,6 @@ #ifndef SALUT_UTIL_H #define SALUT_UTIL_H -#include #include void salut_send_ll_pep_event (WockySession *session, -- cgit v1.2.1