diff options
author | Sjoerd Simons <sjoerd.simons@collabora.co.uk> | 2009-08-29 07:01:47 +0800 |
---|---|---|
committer | Sjoerd Simons <sjoerd.simons@collabora.co.uk> | 2009-08-31 00:28:46 +0800 |
commit | b3acc55a8c6401de41cfc320081e1aa0be17c27a (patch) | |
tree | 26d37041c5e8fab5ace650d4d9a4421ac233d126 /libempathy/empathy-handler.h | |
parent | 943dbb3303c06cfa35d0d89a5765ce5430dfba69 (diff) | |
download | gsoc2013-empathy-b3acc55a8c6401de41cfc320081e1aa0be17c27a.tar gsoc2013-empathy-b3acc55a8c6401de41cfc320081e1aa0be17c27a.tar.gz gsoc2013-empathy-b3acc55a8c6401de41cfc320081e1aa0be17c27a.tar.bz2 gsoc2013-empathy-b3acc55a8c6401de41cfc320081e1aa0be17c27a.tar.lz gsoc2013-empathy-b3acc55a8c6401de41cfc320081e1aa0be17c27a.tar.xz gsoc2013-empathy-b3acc55a8c6401de41cfc320081e1aa0be17c27a.tar.zst gsoc2013-empathy-b3acc55a8c6401de41cfc320081e1aa0be17c27a.zip |
Add a simple abstraction for implementing handlers
Implement an EmpathyHandler object which can be used to easily add extra
Client.Handler heads on D-Bus.
Diffstat (limited to 'libempathy/empathy-handler.h')
-rw-r--r-- | libempathy/empathy-handler.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/libempathy/empathy-handler.h b/libempathy/empathy-handler.h new file mode 100644 index 000000000..684ec0cc9 --- /dev/null +++ b/libempathy/empathy-handler.h @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2007-2009 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 + * + * Authors: Sjoerd Simons <sjoerd.simons@collabora.co.uk> + */ + +#ifndef __EMPATHY_HANDLER_H__ +#define __EMPATHY_HANDLER_H__ + +#include <glib.h> + +#include <telepathy-glib/channel.h> +#include <telepathy-glib/dbus-properties-mixin.h> + +G_BEGIN_DECLS + +#define EMPATHY_TYPE_HANDLER (empathy_handler_get_type ()) +#define EMPATHY_HANDLER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), \ + EMPATHY_TYPE_HANDLER, EmpathyHandler)) +#define EMPATHY_HANDLER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), \ + EMPATHY_TYPE_HANDLER, EmpathyHandlerClass)) +#define EMPATHY_IS_HANDLER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), \ + EMPATHY_TYPE_HANDLER)) +#define EMPATHY_IS_HANDLER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), \ + EMPATHY_TYPE_HANDLER)) +#define EMPATHY_HANDLER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), \ + EMPATHY_TYPE_HANDLER, EmpathyHandlerClass)) + +GType empathy_handler_get_type (void) G_GNUC_CONST; + +typedef struct _EmpathyHandler EmpathyHandler; +typedef struct _EmpathyHandlerClass EmpathyHandlerClass; + +struct _EmpathyHandler +{ + GObject parent; + gpointer priv; +}; + +struct _EmpathyHandlerClass +{ + GObjectClass parent_class; + TpDBusPropertiesMixinClass dbus_props_class; +}; + + +EmpathyHandler * empathy_handler_new (const gchar *name, + GPtrArray *filters, + GStrv capabilities); + +typedef gboolean (EmpathyHandlerHandleChannelsFunc) (EmpathyHandler *handler, + const gchar *account_path, + const gchar *connection_path, + const GPtrArray *channels, + const GPtrArray *requests_satisfied, + guint64 timestamp, + GHashTable *handler_info, + gpointer user_data, + GError **error); + +void empathy_handler_set_handle_channels_func (EmpathyHandler *handler, + EmpathyHandlerHandleChannelsFunc *func, + gpointer user_data); + +typedef GList * (EmpathyHandlerChannelsFunc) ( + EmpathyHandler *handler, + gpointer user_data); + +void empathy_handler_set_channels_func (EmpathyHandler *handler, + EmpathyHandlerChannelsFunc func, + gpointer user_data); + +G_END_DECLS + +#endif /* __EMPATHY_HANDLER_H__ */ |