From e5a2361274bc13ac29b07d121aa5032171573c9e Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 10 Feb 2015 11:46:01 -0200 Subject: [PATCH] manager: implemented GcalManager::get_source method --- src/gcal-manager.c | 20 ++++++++++++++++++++ src/gcal-manager.h | 3 +++ 2 files changed, 23 insertions(+) diff --git a/src/gcal-manager.c b/src/gcal-manager.c index 08979b81..e44e5b50 100644 --- a/src/gcal-manager.c +++ b/src/gcal-manager.c @@ -855,6 +855,26 @@ gcal_manager_new_with_settings (GSettings *settings) return GCAL_MANAGER (g_object_new (GCAL_TYPE_MANAGER, "settings", settings, NULL)); } +/** + * gcal_manager_get_source: + * @manager: + * + * Retrieve a source according to it's UID. The source + * is referenced for thread-safety and must be unreferenced + * after user. + * + * Returns: (Transfer full) an {@link ESource}, or NULL. + **/ +ESource* +gcal_manager_get_source (GcalManager *manager, + const gchar *uid) +{ + GcalManagerPrivate *priv; + priv = gcal_manager_get_instance_private (manager); + + return e_source_registry_ref_source (priv->source_registry, uid); +} + /** * gcal_manager_get_sources: * @manager: diff --git a/src/gcal-manager.h b/src/gcal-manager.h index ff1995df..6b1bf776 100644 --- a/src/gcal-manager.h +++ b/src/gcal-manager.h @@ -63,6 +63,9 @@ GType gcal_manager_get_type (void); GcalManager* gcal_manager_new_with_settings (GSettings *settings); +ESource* gcal_manager_get_source (GcalManager *manager, + const gchar *uid); + GList* gcal_manager_get_sources (GcalManager *manager); GList* gcal_manager_get_sources_connected (GcalManager *manager);