[Telepathy-commits] [telepathy-gabble/master] GabbleChannelManager: add foreach_channel_class

Simon McVittie simon.mcvittie at collabora.co.uk
Wed Aug 20 10:06:51 PDT 2008


20080730165502-53eee-eafb03fdd4199c5b902077c84e8a15fe918b6b7b.gz
---
 src/channel-manager.c |   18 ++++++++++++++++++
 src/channel-manager.h |   18 ++++++++++++++++++
 2 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/channel-manager.c b/src/channel-manager.c
index 1f158df..25de9ab 100644
--- a/src/channel-manager.c
+++ b/src/channel-manager.c
@@ -368,6 +368,24 @@ gabble_channel_manager_foreach_channel (GabbleChannelManager *manager,
 }
 
 
+void
+gabble_channel_manager_foreach_channel_class (GabbleChannelManager *manager,
+    GabbleChannelManagerChannelClassFunc func,
+    gpointer user_data)
+{
+  GabbleChannelManagerIface *iface = GABBLE_CHANNEL_MANAGER_GET_INTERFACE (
+      manager);
+  GabbleChannelManagerForeachChannelClassFunc method =
+      iface->foreach_channel_class;
+
+  if (method != NULL)
+    {
+      method (manager, func, user_data);
+    }
+  /* ... else assume it has no classes of requestable channel */
+}
+
+
 gboolean
 gabble_channel_manager_create_channel (GabbleChannelManager *manager,
                                        gpointer request_token,
diff --git a/src/channel-manager.h b/src/channel-manager.h
index 8036425..09f8f5d 100644
--- a/src/channel-manager.h
+++ b/src/channel-manager.h
@@ -58,6 +58,22 @@ void gabble_channel_manager_foreach_channel (GabbleChannelManager *manager,
     GabbleExportableChannelFunc func, gpointer user_data);
 
 
+typedef void (*GabbleChannelManagerChannelClassFunc) (
+    GabbleChannelManager *manager,
+    GHashTable *fixed_properties,
+    const gchar * const *required_properties,
+    const gchar * const *optional_properties,
+    gpointer user_data);
+
+typedef void (*GabbleChannelManagerForeachChannelClassFunc) (
+    GabbleChannelManager *manager, GabbleChannelManagerChannelClassFunc func,
+    gpointer user_data);
+
+void gabble_channel_manager_foreach_channel_class (
+    GabbleChannelManager *manager,
+    GabbleChannelManagerChannelClassFunc func, gpointer user_data);
+
+
 typedef gboolean (*GabbleChannelManagerRequestFunc) (
     GabbleChannelManager *manager, gpointer request_token,
     GHashTable *request_properties);
@@ -74,6 +90,8 @@ struct _GabbleChannelManagerIface {
 
     GabbleChannelManagerForeachChannelFunc foreach_channel;
 
+    GabbleChannelManagerForeachChannelClassFunc foreach_channel_class;
+
     GabbleChannelManagerRequestFunc create_channel;
     GabbleChannelManagerRequestFunc request_channel;
     /* in principle we could have EnsureChannel here too */
-- 
1.5.6.3




More information about the Telepathy-commits mailing list