summaryrefslogtreecommitdiff
path: root/gabble
diff options
context:
space:
mode:
authorJonny Lamb <jonny.lamb@collabora.co.uk>2011-02-14 08:46:38 +0000
committerJonny Lamb <jonny.lamb@collabora.co.uk>2011-02-14 08:46:38 +0000
commitf741f748faf61342327a4814d63a376408542909 (patch)
treef58cbe3ccb3f17ca5e927466951d67515c01eccf /gabble
parent4b9c51b7e0e112b090e8700c4847301b874e00bc (diff)
plugin: add create_channel_managers function
Signed-off-by: Jonny Lamb <jonny.lamb@collabora.co.uk>
Diffstat (limited to 'gabble')
-rw-r--r--gabble/plugin.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/gabble/plugin.h b/gabble/plugin.h
index 5ed79ef93..6da99f136 100644
--- a/gabble/plugin.h
+++ b/gabble/plugin.h
@@ -53,6 +53,13 @@ typedef void (*GabblePluginCreateSidecarImpl) (
GAsyncReadyCallback callback,
gpointer user_data);
+/* The return type should be a new GPtrArray* which will be freed
+ * straight after this function is called, so the pointer array must
+ * not have a free function. */
+typedef GPtrArray * (*GabblePluginCreateChannelManagersImpl) (
+ GabblePlugin *plugin,
+ TpBaseConnection *connection);
+
struct _GabblePluginPrivacyListMap {
const gchar *presence_status_name;
const gchar *privacy_list_name;
@@ -93,6 +100,11 @@ struct _GabblePluginInterface {
* Privacy lists implementing specific statuses
*/
GabblePluginPrivacyListMap *privacy_list_map;
+
+ /**
+ * An optional callback to create additional channel managers.
+ */
+ GabblePluginCreateChannelManagersImpl create_channel_managers;
};
GType gabble_plugin_get_type (void);
@@ -132,6 +144,9 @@ const gchar *gabble_plugin_presence_status_for_privacy_list (
GabblePlugin *plugin,
const gchar *list_name);
+GPtrArray * gabble_plugin_create_channel_managers (GabblePlugin *plugin,
+ TpBaseConnection *connection);
+
/**
* gabble_plugin_create:
*