[Telepathy-commits] [telepathy-gabble/master] GabbleChannelManager: add foreach_channel_class
Simon McVittie
simon.mcvittie at collabora.co.uk
Mon Nov 3 11:20:49 PST 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.5
More information about the Telepathy-commits
mailing list