summaryrefslogtreecommitdiff
path: root/libpurple/purpleprotocolmanager.c
diff options
context:
space:
mode:
authorGary Kramlich <grim@reaperworld.com>2021-07-17 20:39:59 -0500
committerGary Kramlich <grim@reaperworld.com>2021-07-17 20:39:59 -0500
commitc0c799623128daa97325249296aa1d8c5661f47f (patch)
treed2df86d48ba8c8b8589cb1a45307a26cc994bb86 /libpurple/purpleprotocolmanager.c
parenta592644ef9984667b72b82777a0d458e5e3fc6ca (diff)
downloadpidgin-c0c799623128daa97325249296aa1d8c5661f47f.tar.gz
Add _foreach functions to PurpleConversationManager and PurpleProtocolManager
Testing Done: Compiled Reviewed at https://reviews.imfreedom.org/r/799/
Diffstat (limited to 'libpurple/purpleprotocolmanager.c')
-rw-r--r--libpurple/purpleprotocolmanager.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/libpurple/purpleprotocolmanager.c b/libpurple/purpleprotocolmanager.c
index 50649ca3fb..1157fd151f 100644
--- a/libpurple/purpleprotocolmanager.c
+++ b/libpurple/purpleprotocolmanager.c
@@ -218,6 +218,26 @@ purple_protocol_manager_find(PurpleProtocolManager *manager, const gchar *id) {
return PURPLE_PROTOCOL(value);
}
+void
+purple_protocol_manager_foreach(PurpleProtocolManager *manager,
+ PurpleProtocolManagerForeachFunc func,
+ gpointer data)
+{
+ GHashTableIter iter;
+ PurpleProtocolManagerPrivate *priv = NULL;
+ gpointer value;
+
+ 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);
+ }
+}
+
GList *
purple_protocol_manager_get_all(PurpleProtocolManager *manager) {
PurpleProtocolManagerPrivate *priv = NULL;