glibmm 2.31.2
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions
Gio::DBus::Proxy Class Reference

A client-side proxy. More...

#include <giomm/dbusproxy.h>

Inheritance diagram for Gio::DBus::Proxy:
Inheritance graph
[legend]

List of all members.

Public Types

typedef std::map
< Glib::ustring,
Glib::VariantBase
MapChangedProperties

Public Member Functions

virtual ~Proxy ()
GDBusProxy* gobj ()
 Provides access to the underlying C GObject.
const GDBusProxy* gobj () const
 Provides access to the underlying C GObject.
GDBusProxy* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
ProxyFlags get_flags () const
 Gets the flags that proxy was constructed with.
Glib::RefPtr< Connectionget_connection ()
 Gets the connection proxy is for.
Glib::RefPtr< const Connectionget_connection () const
 Gets the connection proxy is for.
Glib::ustring get_name () const
 Gets the name that proxy was constructed for.
Glib::ustring get_name_owner () const
 The unique name that owns the name that proxy is for or 0 if no-one currently owns that name.
Glib::ustring get_object_path () const
 Gets the object path proxy is for.
Glib::ustring get_interface_name () const
 Gets the D-Bus interface name proxy is for.
int get_default_timeout () const
 Gets the timeout to use if -1 (specifying default timeout) is passed as timeout_msec in the g_dbus_proxy_call() and g_dbus_proxy_call_sync() functions.
void set_default_timeout (int timeout_msec=-1)
 Sets the timeout to use if -1 (specifying default timeout) is passed as timeout_msec in the g_dbus_proxy_call() and g_dbus_proxy_call_sync() functions.
void get_cached_property (Glib::VariantBase& property, const Glib::ustring& property_name) const
 Looks up the value for a property from the cache.
void set_cached_property (const Glib::ustring& property_name, const Glib::VariantBase&value)
 If value is not 0, sets the cached value for the property with name property_name to the value in value.
Glib::StringArrayHandle get_cached_property_names () const
 Gets the names of all cached properties on proxy.
void set_interface_info (const Glib::RefPtr< InterfaceInfo >& info)
 Ensure that interactions with proxy conform to the given interface.
Glib::RefPtr< InterfaceInfoget_interface_info ()
 Returns the DBusInterfaceInfo, if any, specifying the minimal interface that proxy conforms to.
Glib::RefPtr< const InterfaceInfoget_interface_info () const
 Returns the DBusInterfaceInfo, if any, specifying the minimal interface that proxy conforms to.
void call (const Glib::ustring& method_name, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, const Glib::VariantContainerBase& parameters=Glib::VariantContainerBase(), int timeout_msec=-1, CallFlags flags=Gio::DBus::CALL_FLAGS_NONE)
 Asynchronously invokes the method_name method on proxy.
void call (const Glib::ustring& method_name, const SlotAsyncReady& slot, const Glib::VariantContainerBase& parameters=Glib::VariantContainerBase(), int timeout_msec=-1, CallFlags flags=Gio::DBus::CALL_FLAGS_NONE)
 A non-cancellable version of call().
Glib::VariantContainerBase call_finish (const Glib::RefPtr< AsyncResult >& res)
 Finishes an operation started with call().
Glib::VariantContainerBase call_sync (const Glib::ustring& method_name, const Glib::RefPtr< Cancellable >& cancellable, const Glib::VariantContainerBase& parameters=Glib::VariantContainerBase(), int timeout_msec=-1, CallFlags flags=Gio::DBus::CALL_FLAGS_NONE)
 Synchronously invokes the method_name method on proxy.
Glib::VariantContainerBase call_sync (const Glib::ustring& method_name, const Glib::VariantContainerBase& parameters=Glib::VariantContainerBase(), int timeout_msec=-1, CallFlags flags=Gio::DBus::CALL_FLAGS_NONE)
 A non-cancellable version of call_sync().
Glib::PropertyProxy_ReadOnly
< Glib::RefPtr< Connection > > 
property_g_connection () const
 The connection the proxy is for.
Glib::PropertyProxy< int > property_g_default_timeout ()
 Timeout for remote method invocation.
Glib::PropertyProxy_ReadOnly< int > property_g_default_timeout () const
 Timeout for remote method invocation.
Glib::PropertyProxy_ReadOnly
< ProxyFlags
property_g_flags () const
 Flags for the proxy.
Glib::PropertyProxy
< Glib::RefPtr< InterfaceInfo > > 
property_g_interface_info ()
 Interface Information.
Glib::PropertyProxy_ReadOnly
< Glib::RefPtr< InterfaceInfo > > 
property_g_interface_info () const
 Interface Information.
Glib::PropertyProxy_ReadOnly
< Glib::ustring
property_g_interface_name () const
 The D-Bus interface name the proxy is for.
Glib::PropertyProxy_ReadOnly
< Glib::ustring
property_g_name () const
 The well-known or unique name that the proxy is for.
Glib::PropertyProxy_ReadOnly
< Glib::ustring
property_g_name_owner () const
 The unique name for the owner.
Glib::PropertyProxy_ReadOnly
< Glib::ustring
property_g_object_path () const
 The object path the proxy is for.
Glib::SignalProxy2< void,
const MapChangedProperties
&, const std::vector
< Glib::ustring >& > 
signal_properties_changed ()
Glib::SignalProxy3< void,
const Glib::ustring&, const
Glib::ustring&, const
Glib::VariantContainerBase& > 
signal_signal ()

Static Public Member Functions

static void create (const Glib::RefPtr< Connection >& connection, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Creates a proxy for accessing interface_name on the remote object at object_path owned by name at connection and asynchronously loads D-Bus properties unless the DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used.
static void create (const Glib::RefPtr< Connection >& connection, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const SlotAsyncReady& slot, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Non-cancellable version of create().
static Glib::RefPtr< Proxycreate_finish (const Glib::RefPtr< AsyncResult >& result)
 Finishes creating a DBusProxy.
static Glib::RefPtr< Proxycreate_sync (const Glib::RefPtr< Connection >& connection, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const Glib::RefPtr< Cancellable >& cancellable, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Creates a proxy for accessing interface_name on the remote object at object_path owned by name at connection and synchronously loads D-Bus properties unless the DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used.
static Glib::RefPtr< Proxycreate_sync (const Glib::RefPtr< Connection >& connection, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Non-cancellable version of create_sync().
static void create_for_bus (BusType bus_type, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Like g_dbus_proxy_new() but takes a BusType instead of a DBusConnection.
static void create_for_bus (BusType bus_type, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const SlotAsyncReady& slot, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Non-cancellable version of create_for_bus().
static Glib::RefPtr< Proxycreate_for_bus_finish (const Glib::RefPtr< AsyncResult >& result)
 Finishes creating a DBusProxy.
static Glib::RefPtr< Proxycreate_for_bus_sync (BusType bus_type, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const Glib::RefPtr< Cancellable >& cancellable, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Like g_dbus_proxy_new_sync() but takes a BusType instead of a DBusConnection.
static Glib::RefPtr< Proxycreate_for_bus_sync (BusType bus_type, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Non-cancellable version of create_for_bus_sync().

Protected Member Functions

 Proxy (const Glib::RefPtr< Connection >& connection, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Proxy (const Glib::RefPtr< Connection >& connection, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const SlotAsyncReady& slot, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Proxy (const Glib::RefPtr< Connection >& connection, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const Glib::RefPtr< Cancellable >& cancellable, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Proxy (const Glib::RefPtr< Connection >& connection, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Proxy (BusType bus_type, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Proxy (BusType bus_type, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const SlotAsyncReady& slot, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Proxy (BusType bus_type, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const Glib::RefPtr< Cancellable >& cancellable, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
 Proxy (BusType bus_type, const Glib::ustring& name, const Glib::ustring& object_path, const Glib::ustring& interface_name, const Glib::RefPtr< InterfaceInfo >& info=Glib::RefPtr< InterfaceInfo >(), ProxyFlags flags=PROXY_FLAGS_NONE)
virtual void on_properties_changed (const MapChangedProperties& changed_properties, const std::vector< Glib::ustring >& invalidated_properties)
virtual void on_signal (const Glib::ustring& sender_name, const Glib::ustring& signal_name, const Glib::VariantContainerBase& parameters)

Related Functions

(Note that these are not member functions.)

Glib::RefPtr< Gio::DBus::Proxywrap (GDBusProxy* object, bool take_copy=false)
 A Glib::wrap() method for this object.

Detailed Description

A client-side proxy.

This is a base class used for proxies to access a D-Bus interface on a remote object. It can be constructed for both well-known and unique names.

By default, Proxy will cache all properties (and listen to changes) of the remote object, and proxy all signals that gets emitted. This behaviour can be changed by passing suitable ProxyFlags when the proxy is created. If the proxy is for a well-known name, the property cache is flushed when the name owner vanishes and reloaded when a name owner appears.

If a Proxy is used for a well-known name, the owner of the name is tracked and can be read from property_g_name_owner().

The generic signal_g_properties_changed() and signal_g_signal() signals are not very convenient to work with. Therefore, the recommended way of working with proxies is to subclass Proxy, and have more natural properties and signals in your derived class.

This documentation was adapted from the C API documentation. The C API docs has more information and an example.

Since glibmm 2.28:

Member Typedef Documentation


Constructor & Destructor Documentation

virtual Gio::DBus::Proxy::~Proxy ( ) [virtual]
Gio::DBus::Proxy::Proxy ( const Glib::RefPtr< Connection >&  connection,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const SlotAsyncReady slot,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [protected]
Gio::DBus::Proxy::Proxy ( const Glib::RefPtr< Connection >&  connection,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const SlotAsyncReady slot,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [protected]
Gio::DBus::Proxy::Proxy ( const Glib::RefPtr< Connection >&  connection,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [protected]
Gio::DBus::Proxy::Proxy ( const Glib::RefPtr< Connection >&  connection,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [protected]
Gio::DBus::Proxy::Proxy ( BusType  bus_type,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const SlotAsyncReady slot,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [protected]
Gio::DBus::Proxy::Proxy ( BusType  bus_type,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const SlotAsyncReady slot,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [protected]
Gio::DBus::Proxy::Proxy ( BusType  bus_type,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [protected]
Gio::DBus::Proxy::Proxy ( BusType  bus_type,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [protected]

Member Function Documentation

void Gio::DBus::Proxy::call ( const Glib::ustring method_name,
const SlotAsyncReady slot,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::VariantContainerBase parameters = Glib::VariantContainerBase(),
int  timeout_msec = -1,
CallFlags  flags = Gio::DBus::CALL_FLAGS_NONE 
)

Asynchronously invokes the method_name method on proxy.

If method_name contains any dots, then name is split into interface and method name parts. This allows using proxy for invoking methods on other interfaces.

If the DBusConnection associated with proxy is closed then the operation will fail with IO_ERROR_CLOSED. If cancellable is canceled, the operation will fail with IO_ERROR_CANCELLED. If contains a value not compatible with the D-Bus protocol, the operation fails with IO_ERROR_INVALID_ARGUMENT.

If the Variant is floating, it is consumed. This allows convenient 'inline' use of Glib::variant_new(), e.g.:

This is an asynchronous method. When the operation is finished, callback will be invoked in the thread-default main loop of the thread you are calling this method from. You can then call g_dbus_proxy_call_finish() to get the result of the operation. See g_dbus_proxy_call_sync() for the synchronous version of this method.

Since glibmm 2.26:
Parameters:
method_nameName of method to invoke.
parametersA Variant tuple with parameters for the signal or 0 if not passing parameters.
flagsFlags from the DBusCallFlags enumeration.
timeout_msecThe timeout in milliseconds (with MAXINT meaning "infinite") or -1 to use the proxy default timeout.
cancellableA Cancellable or 0.
callbackA AsyncReadyCallback to call when the request is satisfied or 0 if you don't care about the result of the method invocation.
user_dataThe data to pass to callback.
void Gio::DBus::Proxy::call ( const Glib::ustring method_name,
const SlotAsyncReady slot,
const Glib::VariantContainerBase parameters = Glib::VariantContainerBase(),
int  timeout_msec = -1,
CallFlags  flags = Gio::DBus::CALL_FLAGS_NONE 
)

A non-cancellable version of call().

Glib::VariantContainerBase Gio::DBus::Proxy::call_finish ( const Glib::RefPtr< AsyncResult >&  res)

Finishes an operation started with call().

Parameters:
resAn AsyncResult obtained from the SlotAsyncReady passed to call().
Returns:
A Variant tuple with return values.
Exceptions:
Glib::Error.
Glib::VariantContainerBase Gio::DBus::Proxy::call_sync ( const Glib::ustring method_name,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::VariantContainerBase parameters = Glib::VariantContainerBase(),
int  timeout_msec = -1,
CallFlags  flags = Gio::DBus::CALL_FLAGS_NONE 
)

Synchronously invokes the method_name method on proxy.

See call(), the asynchronous version of this method for more information.

Parameters:
method_nameName of method to invoke.
timeout_msecThe timeout in milliseconds or -1 to use the proxy default timeout.
flagsFlags from the CallFlags enumeration.
parametersA Glib::VariantContainerBase tuple with parameters for the signal.
cancellableA Cancellable.
Returns:
A Variant tuple with return values.
Exceptions:
Glib::Error.
Glib::VariantContainerBase Gio::DBus::Proxy::call_sync ( const Glib::ustring method_name,
const Glib::VariantContainerBase parameters = Glib::VariantContainerBase(),
int  timeout_msec = -1,
CallFlags  flags = Gio::DBus::CALL_FLAGS_NONE 
)

A non-cancellable version of call_sync().

static void Gio::DBus::Proxy::create ( const Glib::RefPtr< Connection >&  connection,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const SlotAsyncReady slot,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [static]

Non-cancellable version of create().

static void Gio::DBus::Proxy::create ( const Glib::RefPtr< Connection >&  connection,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const SlotAsyncReady slot,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [static]

Creates a proxy for accessing interface_name on the remote object at object_path owned by name at connection and asynchronously loads D-Bus properties unless the DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used.

Connect to the DBusProxy::g-properties-changed signal to get notified about property changes.

If the DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS flag is not set, also sets up match rules for signals. Connect to the DBusProxy::g-signal signal to handle signals from the remote object.

If name is a well-known name and the DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag isn't set and no name owner currently exists, the message bus will be requested to launch a name owner for the name.

This is a failable asynchronous constructor - when the proxy is ready, callback will be invoked and you can use g_dbus_proxy_new_finish() to get the result.

See g_dbus_proxy_new_sync() and for a synchronous version of this constructor.

See <xref linkend="gdbus-wellknown-proxy"> for an example of how DBusProxy can be used.

Since glibmm 2.26:
Parameters:
connectionA DBusConnection.
flagsFlags used when constructing the proxy.
infoA DBusInterfaceInfo specifying the minimal interface that proxy conforms to or 0.
nameA bus name (well-known or unique) or 0 if connection is not a message bus connection.
object_pathAn object path.
interface_nameA D-Bus interface name.
cancellableA Cancellable or 0.
callbackCallback function to invoke when the proxy is ready.
user_dataUser data to pass to callback.
static Glib::RefPtr<Proxy> Gio::DBus::Proxy::create_finish ( const Glib::RefPtr< AsyncResult >&  result) [static]

Finishes creating a DBusProxy.

Since glibmm 2.26:
Parameters:
resA AsyncResult obtained from the AsyncReadyCallback function passed to g_dbus_proxy_new().
Returns:
A DBusProxy or 0 if error is set. Free with Glib::object_unref().
Exceptions:
Glib::Error.

Reimplemented from Gio::AsyncInitable.

static void Gio::DBus::Proxy::create_for_bus ( BusType  bus_type,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const SlotAsyncReady slot,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [static]

Like g_dbus_proxy_new() but takes a BusType instead of a DBusConnection.

See <xref linkend="gdbus-wellknown-proxy"> for an example of how DBusProxy can be used.

Since glibmm 2.26:
Parameters:
bus_typeA BusType.
flagsFlags used when constructing the proxy.
infoA DBusInterfaceInfo specifying the minimal interface that proxy conforms to or 0.
nameA bus name (well-known or unique).
object_pathAn object path.
interface_nameA D-Bus interface name.
cancellableA Cancellable or 0.
callbackCallback function to invoke when the proxy is ready.
user_dataUser data to pass to callback.
static void Gio::DBus::Proxy::create_for_bus ( BusType  bus_type,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const SlotAsyncReady slot,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [static]

Non-cancellable version of create_for_bus().

static Glib::RefPtr<Proxy> Gio::DBus::Proxy::create_for_bus_finish ( const Glib::RefPtr< AsyncResult >&  result) [static]

Finishes creating a DBusProxy.

Since glibmm 2.26:
Parameters:
resA AsyncResult obtained from the AsyncReadyCallback function passed to g_dbus_proxy_new_for_bus().
Returns:
A DBusProxy or 0 if error is set. Free with Glib::object_unref().
Exceptions:
Glib::Error.
static Glib::RefPtr<Proxy> Gio::DBus::Proxy::create_for_bus_sync ( BusType  bus_type,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [static]

Like g_dbus_proxy_new_sync() but takes a BusType instead of a DBusConnection.

See <xref linkend="gdbus-wellknown-proxy"> for an example of how DBusProxy can be used.

Since glibmm 2.26:
Parameters:
bus_typeA BusType.
flagsFlags used when constructing the proxy.
infoA DBusInterfaceInfo specifying the minimal interface that proxy conforms to or 0.
nameA bus name (well-known or unique).
object_pathAn object path.
interface_nameA D-Bus interface name.
cancellableA Cancellable or 0.
Returns:
A DBusProxy or 0 if error is set. Free with Glib::object_unref().
static Glib::RefPtr<Proxy> Gio::DBus::Proxy::create_for_bus_sync ( BusType  bus_type,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [static]

Non-cancellable version of create_for_bus_sync().

static Glib::RefPtr<Proxy> Gio::DBus::Proxy::create_sync ( const Glib::RefPtr< Connection >&  connection,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [static]

Non-cancellable version of create_sync().

static Glib::RefPtr<Proxy> Gio::DBus::Proxy::create_sync ( const Glib::RefPtr< Connection >&  connection,
const Glib::ustring name,
const Glib::ustring object_path,
const Glib::ustring interface_name,
const Glib::RefPtr< Cancellable >&  cancellable,
const Glib::RefPtr< InterfaceInfo >&  info = Glib::RefPtrInterfaceInfo >(),
ProxyFlags  flags = PROXY_FLAGS_NONE 
) [static]

Creates a proxy for accessing interface_name on the remote object at object_path owned by name at connection and synchronously loads D-Bus properties unless the DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES flag is used.

If the DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS flag is not set, also sets up match rules for signals. Connect to the DBusProxy::g-signal signal to handle signals from the remote object.

If name is a well-known name and the DBUS_PROXY_FLAGS_DO_NOT_AUTO_START flag isn't set and no name owner currently exists, the message bus will be requested to launch a name owner for the name.

This is a synchronous failable constructor. See g_dbus_proxy_new() and g_dbus_proxy_new_finish() for the asynchronous version.

See <xref linkend="gdbus-wellknown-proxy"> for an example of how DBusProxy can be used.

Since glibmm 2.26:
Parameters:
connectionA DBusConnection.
flagsFlags used when constructing the proxy.
infoA DBusInterfaceInfo specifying the minimal interface that proxy conforms to or 0.
nameA bus name (well-known or unique) or 0 if connection is not a message bus connection.
object_pathAn object path.
interface_nameA D-Bus interface name.
cancellableA Cancellable or 0.
Returns:
A DBusProxy or 0 if error is set. Free with Glib::object_unref().
void Gio::DBus::Proxy::get_cached_property ( Glib::VariantBase property,
const Glib::ustring property_name 
) const

Looks up the value for a property from the cache.

This call does no blocking IO.

If proxy has an expected interface (see property_g_interface_info()), then property_name (for existence) is checked against it.

Parameters:
propertyAn output parameter in which to hold to the variant instance that holds the value for property_name.
property_nameProperty name.
Since glibmm 2.28:
Glib::StringArrayHandle Gio::DBus::Proxy::get_cached_property_names ( ) const

Gets the names of all cached properties on proxy.

Since glibmm 2.26:
Returns:
A 0-terminated array of strings or 0 if proxy has no cached properties. Free the returned array with Glib::strfreev().
Glib::RefPtr<const Connection> Gio::DBus::Proxy::get_connection ( ) const

Gets the connection proxy is for.

Since glibmm 2.26:
Returns:
A DBusConnection owned by proxy. Do not free.
Glib::RefPtr<Connection> Gio::DBus::Proxy::get_connection ( )

Gets the connection proxy is for.

Since glibmm 2.26:
Returns:
A DBusConnection owned by proxy. Do not free.
int Gio::DBus::Proxy::get_default_timeout ( ) const

Gets the timeout to use if -1 (specifying default timeout) is passed as timeout_msec in the g_dbus_proxy_call() and g_dbus_proxy_call_sync() functions.

See the DBusProxy:g-default-timeout property for more details.

Since glibmm 2.26:
Returns:
Timeout to use for proxy.
ProxyFlags Gio::DBus::Proxy::get_flags ( ) const

Gets the flags that proxy was constructed with.

Since glibmm 2.26:
Returns:
Flags from the DBusProxyFlags enumeration.
Glib::RefPtr<InterfaceInfo> Gio::DBus::Proxy::get_interface_info ( )

Returns the DBusInterfaceInfo, if any, specifying the minimal interface that proxy conforms to.

See the DBusProxy:g-interface-info property for more details.

Since glibmm 2.26:
Returns:
A DBusInterfaceInfo or 0. Do not unref the returned object, it is owned by proxy.
Glib::RefPtr<const InterfaceInfo> Gio::DBus::Proxy::get_interface_info ( ) const

Returns the DBusInterfaceInfo, if any, specifying the minimal interface that proxy conforms to.

See the DBusProxy:g-interface-info property for more details.

Since glibmm 2.26:
Returns:
A DBusInterfaceInfo or 0. Do not unref the returned object, it is owned by proxy.
Glib::ustring Gio::DBus::Proxy::get_interface_name ( ) const

Gets the D-Bus interface name proxy is for.

Since glibmm 2.26:
Returns:
A string owned by proxy. Do not free.
Glib::ustring Gio::DBus::Proxy::get_name ( ) const

Gets the name that proxy was constructed for.

Since glibmm 2.26:
Returns:
A string owned by proxy. Do not free.
Glib::ustring Gio::DBus::Proxy::get_name_owner ( ) const

The unique name that owns the name that proxy is for or 0 if no-one currently owns that name.

You may connect to the Object::notify signal to track changes to the DBusProxy:g-name-owner property.

Since glibmm 2.26:
Returns:
The name owner or 0 if no name owner exists. Free with Glib::free().
Glib::ustring Gio::DBus::Proxy::get_object_path ( ) const

Gets the object path proxy is for.

Since glibmm 2.26:
Returns:
A string owned by proxy. Do not free.
const GDBusProxy* Gio::DBus::Proxy::gobj ( ) const [inline]

Provides access to the underlying C GObject.

Reimplemented from Gio::AsyncInitable.

GDBusProxy* Gio::DBus::Proxy::gobj ( ) [inline]

Provides access to the underlying C GObject.

Reimplemented from Gio::AsyncInitable.

GDBusProxy* Gio::DBus::Proxy::gobj_copy ( )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

virtual void Gio::DBus::Proxy::on_properties_changed ( const MapChangedProperties changed_properties,
const std::vector< Glib::ustring >&  invalidated_properties 
) [protected, virtual]
virtual void Gio::DBus::Proxy::on_signal ( const Glib::ustring sender_name,
const Glib::ustring signal_name,
const Glib::VariantContainerBase parameters 
) [protected, virtual]
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Connection> > Gio::DBus::Proxy::property_g_connection ( ) const

The connection the proxy is for.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< int > Gio::DBus::Proxy::property_g_default_timeout ( ) const

Timeout for remote method invocation.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy< int > Gio::DBus::Proxy::property_g_default_timeout ( )

Timeout for remote method invocation.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< ProxyFlags > Gio::DBus::Proxy::property_g_flags ( ) const

Flags for the proxy.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<InterfaceInfo> > Gio::DBus::Proxy::property_g_interface_info ( ) const

Interface Information.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy< Glib::RefPtr<InterfaceInfo> > Gio::DBus::Proxy::property_g_interface_info ( )

Interface Information.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< Glib::ustring > Gio::DBus::Proxy::property_g_interface_name ( ) const

The D-Bus interface name the proxy is for.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< Glib::ustring > Gio::DBus::Proxy::property_g_name ( ) const

The well-known or unique name that the proxy is for.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< Glib::ustring > Gio::DBus::Proxy::property_g_name_owner ( ) const

The unique name for the owner.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< Glib::ustring > Gio::DBus::Proxy::property_g_object_path ( ) const

The object path the proxy is for.

You rarely need to use properties because there are get_ and set_ methods for almost all of them.

Returns:
A PropertyProxy that allows you to get or set the property of the value, or receive notification when the value of the property changes.
void Gio::DBus::Proxy::set_cached_property ( const Glib::ustring property_name,
const Glib::VariantBase value 
)

If value is not 0, sets the cached value for the property with name property_name to the value in value.

If value is 0, then the cached value is removed from the property cache.

If proxy has an expected interface (see DBusProxy:g-interface-info), then property_name (for existence) and value (for the type) is checked against it.

If the value Variant is floating, it is consumed. This allows convenient 'inline' use of Glib::variant_new(), e.g.

Normally you will not need to use this method since proxy is tracking changes using the org.freedesktop.DBus.Properties.PropertiesChanged D-Bus signal. However, for performance reasons an object may decide to not use this signal for some properties and instead use a proprietary out-of-band mechanism to transmit changes.

As a concrete example, consider an object with a property ChatroomParticipants which is an array of strings. Instead of transmitting the same (long) array every time the property changes, it is more efficient to only transmit the delta using e.g. signals ChatroomParticipantJoined(String name) and ChatroomParticipantParted(String name).

Since glibmm 2.26:
Parameters:
property_nameProperty name.
valueValue for the property or 0 to remove it from the cache.
void Gio::DBus::Proxy::set_default_timeout ( int  timeout_msec = -1)

Sets the timeout to use if -1 (specifying default timeout) is passed as timeout_msec in the g_dbus_proxy_call() and g_dbus_proxy_call_sync() functions.

See the DBusProxy:g-default-timeout property for more details.

Since glibmm 2.26:
Parameters:
timeout_msecTimeout in milliseconds.
void Gio::DBus::Proxy::set_interface_info ( const Glib::RefPtr< InterfaceInfo >&  info)

Ensure that interactions with proxy conform to the given interface.

For example, when completing a method call, if the type signature of the message isn't what's expected, the given Error is set. Signals that have a type signature mismatch are simply dropped.

See the DBusProxy:g-interface-info property for more details.

Since glibmm 2.26:
Parameters:
infoMinimum interface this proxy conforms to or 0 to unset.
Glib::SignalProxy2< void,const MapChangedProperties&,const std::vector<Glib::ustring>& > Gio::DBus::Proxy::signal_properties_changed ( )
Prototype:
void on_my_properties_changed(const MapChangedProperties& changed_properties, const std::vector<Glib::ustring>& invalidated_properties)
Glib::SignalProxy3< void,const Glib::ustring&,const Glib::ustring&,const Glib::VariantContainerBase& > Gio::DBus::Proxy::signal_signal ( )
Prototype:
void on_my_signal(const Glib::ustring& sender_name, const Glib::ustring& signal_name, const Glib::VariantContainerBase& parameters)

Friends And Related Function Documentation

Glib::RefPtr< Gio::DBus::Proxy > wrap ( GDBusProxy *  object,
bool  take_copy = false 
) [related]

A Glib::wrap() method for this object.

Parameters:
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns:
A C++ instance that wraps this C instance.