e_server_side_source_get_server
e_server_side_source_get_allow_auth_prompt
e_server_side_source_set_allow_auth_prompt
+e_server_side_source_get_exported
e_server_side_source_get_write_directory
e_server_side_source_set_write_directory
e_server_side_source_set_removable
enum {
PROP_0,
PROP_ALLOW_AUTH_PROMPT,
+ PROP_EXPORTED,
PROP_FILE,
PROP_REMOVABLE,
PROP_SERVER,
E_SERVER_SIDE_SOURCE (object)));
return;
+ case PROP_EXPORTED:
+ g_value_set_boolean (
+ value,
+ e_server_side_source_get_exported (
+ E_SERVER_SIDE_SOURCE (object)));
+ return;
+
case PROP_FILE:
g_value_set_object (
value,
g_object_class_install_property (
object_class,
+ PROP_EXPORTED,
+ g_param_spec_boolean (
+ "exported",
+ "Exported",
+ "Whether the source has been exported over D-Bus",
+ FALSE,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (
+ object_class,
PROP_FILE,
g_param_spec_object (
"file",
}
/**
+ * e_server_side_source_get_exported:
+ * @source: an #EServerSideSource
+ *
+ * Returns whether @source has been exported over D-Bus.
+ *
+ * The function returns %FALSE after @source is initially created, %TRUE
+ * after passing @source to e_source_registry_add_source() (provided that
+ * @source's #ESource:parent is also exported), and %FALSE after passing
+ * @source to e_source_registry_remove_source().
+ *
+ * Returns: whether @source has been exported
+ *
+ * Since: 3.6
+ **/
+gboolean
+e_server_side_source_get_exported (EServerSideSource *source)
+{
+ ESourceRegistryServer *server;
+ ESource *exported_source;
+ gboolean exported = FALSE;
+ const gchar *uid;
+
+ g_return_val_if_fail (E_IS_SERVER_SIDE_SOURCE (source), FALSE);
+
+ uid = e_source_get_uid (E_SOURCE (source));
+ server = e_server_side_source_get_server (source);
+
+ /* We're exported if we can look ourselves up in the registry. */
+
+ exported_source = e_source_registry_server_ref_source (server, uid);
+ if (exported_source != NULL) {
+ exported = TRUE;
+ g_object_unref (exported_source);
+ }
+
+ return exported;
+}
+
+/**
* e_server_side_source_get_write_directory:
* @source: an #EServerSideSource
*
void e_server_side_source_set_allow_auth_prompt
(EServerSideSource *source,
gboolean allow_auth_prompt);
+gboolean e_server_side_source_get_exported
+ (EServerSideSource *source);
const gchar * e_server_side_source_get_write_directory
(EServerSideSource *source);
void e_server_side_source_set_write_directory
server->priv->object_manager,
G_DBUS_OBJECT_SKELETON (dbus_object));
+ g_object_notify (G_OBJECT (source), "exported");
+
uid = e_source_get_uid (source);
g_dbus_object = G_DBUS_OBJECT (dbus_object);
g_dbus_object_manager_server_unexport (
server->priv->object_manager, object_path);
+ g_object_notify (G_OBJECT (source), "exported");
+
g_object_unref (dbus_object);
}