--- a/libpurple/purpleconversationmanager.c Tue Jul 13 15:23:59 2021 -0500
+++ b/libpurple/purpleconversationmanager.c Sat Jul 17 20:39:59 2021 -0500
@@ -178,6 +178,23 @@
+purple_conversation_manager_foreach(PurpleConversationManager *manager, + PurpleConversationManagerForeachFunc func, + g_return_if_fail(PURPLE_IS_CONVERSATION_MANAGER(manager)); + g_return_if_fail(func != NULL); + g_hash_table_iter_init(&iter, manager->conversations); + while(g_hash_table_iter_next(&iter, &key, NULL)) { + func(PURPLE_CONVERSATION(key), data); purple_conversation_manager_get_all(PurpleConversationManager *manager) {
g_return_val_if_fail(PURPLE_IS_CONVERSATION_MANAGER(manager), NULL);
--- a/libpurple/purpleconversationmanager.h Tue Jul 13 15:23:59 2021 -0500
+++ b/libpurple/purpleconversationmanager.h Sat Jul 17 20:39:59 2021 -0500
@@ -44,6 +44,18 @@
PURPLE, CONVERSATION_MANAGER, GObject)
+ * PurpleConversationManagerForeachFunc: + * @conversation: The #PurpleConversation instance. + * @data: User supplied data. + * A function to be used as a callback with + * purple_conversation_manager_foreach(). +typedef void (*PurpleConversationManagerForeachFunc)(PurpleConversation *conversation, gpointer data); * purple_conversation_manager_get_default:
* Gets the default instance of #PurpleConversationManager. This instance
@@ -96,6 +108,18 @@
gboolean purple_conversation_manager_is_registered(PurpleConversationManager *manager, PurpleConversation *conversation);
+ * purple_conversation_manager_foreach: + * @manager: The #PurpleConversationManager instance. + * @func: (scope call): The #PurpleConversationManagerForeachFunc to call. + * @data: User data to pass to @func. + * Calls @func for each #PurpleConversation that @manager knows about. +void purple_conversation_manager_foreach(PurpleConversationManager *manager, PurpleConversationManagerForeachFunc func, gpointer data); * purple_conversation_manager_get_all:
* @manager: The #PurpleConversationManager instance.
--- a/libpurple/purpleprotocolmanager.c Tue Jul 13 15:23:59 2021 -0500
+++ b/libpurple/purpleprotocolmanager.c Sat Jul 17 20:39:59 2021 -0500
@@ -218,6 +218,26 @@
return PURPLE_PROTOCOL(value);
+purple_protocol_manager_foreach(PurpleProtocolManager *manager, + PurpleProtocolManagerForeachFunc func, + PurpleProtocolManagerPrivate *priv = NULL; + g_return_if_fail(PURPLE_IS_PROTOCOL_MANAGER(manager)); + g_return_if_fail(func != NULL); + priv = purple_protocol_manager_get_instance_private(manager); + g_hash_table_iter_init(&iter, priv->protocols); + while(g_hash_table_iter_next(&iter, NULL, &value)) { + func(PURPLE_PROTOCOL(value), data); purple_protocol_manager_get_all(PurpleProtocolManager *manager) {
PurpleProtocolManagerPrivate *priv = NULL;
--- a/libpurple/purpleprotocolmanager.h Tue Jul 13 15:23:59 2021 -0500
+++ b/libpurple/purpleprotocolmanager.h Sat Jul 17 20:39:59 2021 -0500
@@ -88,6 +88,17 @@
+ * PurpleProtocolManagerForeachFunc: + * @protocol: The #PurpleProtocol instance. + * @data: User supplied data. + * A function to be used as a callback with purple_protocol_manager_foreach(). +typedef void (*PurpleProtocolManagerForeachFunc)(PurpleProtocol *protocol, gpointer data); * purple_protocol_manager_get_default:
* Gets the default #PurpleProtocolManager instance.
@@ -142,6 +153,18 @@
PurpleProtocol *purple_protocol_manager_find(PurpleProtocolManager *manager, const gchar *id);
+ * purple_protocol_manager_foreach: + * @manager: The #PurpleProtocolManager instance. + * @func: (scope call): The #PurpleProtocolManagerForeachFunc to call. + * @data: User data to pass to @func. + * Calls @func for each #PurpleProtocol that @manager knows about. +void purple_protocol_manager_foreach(PurpleProtocolManager *manager, PurpleProtocolManagerForeachFunc func, gpointer data); * purple_protocol_manager_get_all:
* @manager: The #PurpleProtocolManager instance.