/* Signal handlers for the send queues */
static GSList *_sig_handlers = NULL;
+/* will modest shut down when window list and mail op queue are empty? */
+static gboolean _allow_shutdown = FALSE;
+
/*
* private functions declared in modest-runtime-priv.h -
* only to be called from modest-init.c
g_printerr ("modest: modest_runtime_init can only be run once\n");
return FALSE;
}
-
+
_singletons = modest_singletons_new ();
if (!_singletons) {
g_printerr ("modest: failed to create singletons\n");
return FALSE;
}
-
+
return TRUE;
}
return TRUE; /* uninit maybe called if runtime_init failed */
g_return_val_if_fail (MODEST_IS_SINGLETONS(_singletons), FALSE);
-
+
g_debug ("%s: cleaning up", __FUNCTION__);
+ if (_sig_handlers) {
+ modest_signal_mgr_disconnect_all_and_destroy (_sig_handlers);
+ _sig_handlers = NULL;
+ }
+
+ g_debug ("%s: cleaned up signal manager", __FUNCTION__);
+
MODEST_DEBUG_VERIFY_OBJECT_LAST_REF(_singletons,"");
g_object_unref(_singletons);
_singletons = NULL;
g_debug ("%s: cleaned up the account store", __FUNCTION__);
- if (_sig_handlers) {
- modest_signal_mgr_disconnect_all_and_destroy (_sig_handlers);
- _sig_handlers = NULL;
- }
-
g_debug ("%s: all cleaned up", __FUNCTION__);
return modest_singletons_get_account_mgr (_singletons);
}
+TnyStreamCache*
+modest_runtime_get_images_cache (void)
+{
+ g_return_val_if_fail (_singletons, NULL);
+ return modest_singletons_get_images_cache (_singletons);
+}
+
ModestEmailClipboard*
modest_runtime_get_email_clipboard (void)
{
ModestTnyAccountStore*
modest_runtime_get_account_store (void)
{
- // we get the account store here instead of in Singletons
- // as it leads to various chicken & problems with initialization
- g_return_val_if_fail (_singletons, NULL);
+ g_return_val_if_fail (_singletons, NULL);
+ /* we get the account store here instead of in Singletons as
+ it leads to various chicken & egg problems with
+ initialization */
if (!_account_store) {
_account_store = modest_tny_account_store_new (modest_runtime_get_account_mgr(),
modest_runtime_get_device());
g_hash_table_insert (send_queue_cache,
g_object_ref (account),
- g_object_ref (send_queue));
+ send_queue);
}
}
return modest_singletons_get_window_mgr (_singletons);
}
+ModestPluginFactory *
+modest_runtime_get_plugin_factory (void)
+{
+ g_return_val_if_fail (_singletons, NULL);
+ return modest_singletons_get_plugin_factory (_singletons);
+}
+
+ModestProtocolRegistry *
+modest_runtime_get_protocol_registry (void)
+{
+ g_return_val_if_fail (_singletons, NULL);
+ return modest_singletons_get_protocol_registry (_singletons);
+}
+
/* http://primates.ximian.com/~federico/news-2006-04.html#memory-debugging-infrastructure*/
ModestRuntimeDebugFlags
modest_runtime_get_debug_flags ()
return debug_flags;
}
+gboolean
+modest_runtime_get_allow_shutdown (void)
+{
+ return _allow_shutdown;
+}
-
-
+void
+modest_runtime_set_allow_shutdown (gboolean allow)
+{
+ _allow_shutdown = allow;
+}