mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-13 07:56:17 +01:00
GDBusProxy: add flag to control autostarting at construction time
Sometimes the application doesn't want to autostart a service when it creates a proxy, but wants the service autostarted when it makes the first method call. Allow that behavior with a new flag. https://bugzilla.gnome.org/show_bug.cgi?id=708828
This commit is contained in:
parent
c8e1dbb106
commit
32d2539295
@ -1725,7 +1725,8 @@ async_initable_init_second_async (GAsyncInitable *initable,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (proxy->priv->flags & G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START)
|
if ((proxy->priv->flags & G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START) ||
|
||||||
|
(proxy->priv->flags & G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION))
|
||||||
{
|
{
|
||||||
async_init_call_get_name_owner (data);
|
async_init_call_get_name_owner (data);
|
||||||
}
|
}
|
||||||
@ -2039,9 +2040,9 @@ initable_iface_init (GInitableIface *initable_iface)
|
|||||||
* to handle signals from the remote object.
|
* to handle signals from the remote object.
|
||||||
*
|
*
|
||||||
* If @name is a well-known name and the
|
* If @name is a well-known name and the
|
||||||
* %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag isn't set and no name
|
* %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
|
||||||
* owner currently exists, the message bus will be requested to launch
|
* flags aren't set and no name owner currently exists, the message bus
|
||||||
* a name owner for the name.
|
* will be requested to launch a name owner for the name.
|
||||||
*
|
*
|
||||||
* This is a failable asynchronous constructor - when the proxy is
|
* This is a failable asynchronous constructor - when the proxy is
|
||||||
* ready, @callback will be invoked and you can use
|
* ready, @callback will be invoked and you can use
|
||||||
@ -2136,9 +2137,9 @@ g_dbus_proxy_new_finish (GAsyncResult *res,
|
|||||||
* to handle signals from the remote object.
|
* to handle signals from the remote object.
|
||||||
*
|
*
|
||||||
* If @name is a well-known name and the
|
* If @name is a well-known name and the
|
||||||
* %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag isn't set and no name
|
* %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START and %G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION
|
||||||
* owner currently exists, the message bus will be requested to launch
|
* flags aren't set and no name owner currently exists, the message bus
|
||||||
* a name owner for the name.
|
* will be requested to launch a name owner for the name.
|
||||||
*
|
*
|
||||||
* This is a synchronous failable constructor. See g_dbus_proxy_new()
|
* This is a synchronous failable constructor. See g_dbus_proxy_new()
|
||||||
* and g_dbus_proxy_new_finish() for the asynchronous version.
|
* and g_dbus_proxy_new_finish() for the asynchronous version.
|
||||||
|
@ -950,6 +950,10 @@ typedef enum
|
|||||||
* then request the bus to launch an owner for the name if no-one owns the name. This flag can
|
* then request the bus to launch an owner for the name if no-one owns the name. This flag can
|
||||||
* only be used in proxies for well-known names.
|
* only be used in proxies for well-known names.
|
||||||
* @G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES: If set, the property value for any <emphasis>invalidated property</emphasis> will be (asynchronously) retrieved upon receiving the <ulink url="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties">PropertiesChanged</ulink> D-Bus signal and the property will not cause emission of the #GDBusProxy::g-properties-changed signal. When the value is received the #GDBusProxy::g-properties-changed signal is emitted for the property along with the retrieved value. Since 2.32.
|
* @G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES: If set, the property value for any <emphasis>invalidated property</emphasis> will be (asynchronously) retrieved upon receiving the <ulink url="http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-properties">PropertiesChanged</ulink> D-Bus signal and the property will not cause emission of the #GDBusProxy::g-properties-changed signal. When the value is received the #GDBusProxy::g-properties-changed signal is emitted for the property along with the retrieved value. Since 2.32.
|
||||||
|
* @G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION: If the proxy is for a well-known name,
|
||||||
|
* do not ask the bus to launch an owner during proxy initialization, but allow it to be
|
||||||
|
* autostarted by a method call. This flag is only meaningful in proxies for well-known names,
|
||||||
|
* and only if %G_DBUS_PROXY_FLAGS_DO_NOT_AUTOSTART is not also specified.
|
||||||
*
|
*
|
||||||
* Flags used when constructing an instance of a #GDBusProxy derived class.
|
* Flags used when constructing an instance of a #GDBusProxy derived class.
|
||||||
*
|
*
|
||||||
@ -961,7 +965,8 @@ typedef enum
|
|||||||
G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES = (1<<0),
|
G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES = (1<<0),
|
||||||
G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS = (1<<1),
|
G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS = (1<<1),
|
||||||
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START = (1<<2),
|
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START = (1<<2),
|
||||||
G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES = (1<<3)
|
G_DBUS_PROXY_FLAGS_GET_INVALIDATED_PROPERTIES = (1<<3),
|
||||||
|
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START_AT_CONSTRUCTION = (1<<4)
|
||||||
} GDBusProxyFlags;
|
} GDBusProxyFlags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user