## DBus GObject related functions DBus GObject related functions — Exporting a GObject remotely |

## Stability Level

Stable, unless otherwise indicated

## Functions

void | dbus_g_object_type_install_info ()
void | dbus_g_object_type_register_shadow_property ()
void | dbus_g_object_register_marshaller ()
void | dbus_g_object_register_marshaller_array ()
void | dbus_glib_global_set_disable_legacy_property_access ()

## Types and Values

struct | DBusGObjectInfo

## Includes

    #include <dbus/dbus-glib.h>

## Description

FIXME

## Functions

### dbus_g_object_type_install_info ()

    void
    dbus_g_object_type_install_info (GType object_type,
                                     const DBusGObjectInfo *info);

`dbus_g_object_type_install_info` is deprecated and should not be used in newly-written code.

New code should use GDBus instead. There is no direct equivalent for this function.

Install introspection information about the given object GType sufficient to allow methods on the object to be invoked by name. The introspection information is normally generated by dbus-glib-tool, then this function is called in the `class_init()` for the object class.

Once introspection information has been installed, instances of the object registered with `dbus_g_connection_register_g_object()` can have their methods invoked remotely.

#### Parameters

object_type | GType for the object |
info | introspection data generated by dbus-glib-tool |

### dbus_g_object_type_register_shadow_property ()

    void
    dbus_g_object_type_register_shadow_property
                                   (GType iface_type,
                                    const char *dbus_prop_name,
                                    const char *shadow_prop_name);

`dbus_g_object_type_register_shadow_property` is deprecated and should not be used in newly-written code.

New code should use GDBus instead. There is no equivalent for this function, because GDBus does not conflate GObject and D-Bus property names in the same way.

Registers a new property name `shadow_prop_name` that overrides the `dbus_prop_name` in D-Bus property get/set requests. Since all properties for all interfaces implemented by a GObject exist in the same namespace, this allows implementations to use the same property name in two or more D-Bus interfaces implemented by the same GObject, as long as one of those D-Bus interface properties is registered with a shadow property name.

For example, if both org.foobar.Baz.InterfaceA and org.foobar.Baz.InterfaceB have a D-Bus property called "Bork", the developer assigns a shadow property name to the conflicting property name in one or both of these GInterfaces to resolve the conflict. Assume the GInterface implementing org.foobar.Baz.InterfaceA registers a shadow property called "a-bork", while the GInterface implementing org.foobar.Baz.InterfaceB registers a shadow property called "b-bork". The GObject implementing both these GInterfaces would then use ``g_object_class_override_property()`` to implement both "a-bork" and "b-bork" and D-Bus requests for "Bork" on either D-Bus interface will not conflict.

#### Parameters

iface_type | GType for the GInterface |
dbus_prop_name | D-Bus property name (as specified in the introspection data) to override with the shadow property name (as specified in the GType's initialization function, ie glib-style) |
shadow_prop_name | property name which should override the shadow property |

### dbus_g_object_register_marshaller ()

    void
    dbus_g_object_register_marshaller (GClosureMarshal marshaller,
                                       GType rettype,
                                       ...);

`dbus_g_object_register_marshaller` is deprecated and should not be used in newly-written code.

New code should use GDBus instead.

Register a GClosureMarshal to be used for signal invocations, giving its return type and a list of parameter types, followed by `G_TYPE_INVALID`.

This function is no longer useful, and is only provided for compatibility with older dbus-glib. The GClosureMarshal will not be called.

#### Parameters

marshaller | a GClosureMarshal to be used for invocation |
rettype | a GType for the return type of the function |
... | The parameter GTypes, followed by `G_TYPE_INVALID` |

### dbus_g_object_register_marshaller_array ()

    void
    dbus_g_object_register_marshaller_array
                                   (GClosureMarshal marshaller,
                                    GType rettype,
                                    guint n_types,
                                    const GType *types);

`dbus_g_object_register_marshaller_array` is deprecated and should not be used in newly-written code.

New code should use GDBus instead.

Register a GClosureMarshal to be used for signal invocations. `see_also` `dbus_g_object_register_marshaller()`

#### Parameters

marshaller | a GClosureMarshal to be used for invocation |
rettype | a GType for the return type of the function |
n_types | number of function parameters |
types | a C array of GTypes values |

### dbus_glib_global_set_disable_legacy_property_access ()

    void
    dbus_glib_global_set_disable_legacy_property_access
                                   (void);

`dbus_glib_global_set_disable_legacy_property_access` is deprecated and should not be used in newly-written code.

New code should use GDBus instead. There is no equivalent for this function.

For historical reasons, DBus-GLib will allow read-only access to every GObject property of an object exported to the bus, regardless of whether or not the property is listed in the type info installed with `dbus_g_object_type_install_info()`. (Write access is denied however).

If you wish to restrict even read-only access, you can call this method to globally change the behavior for the entire process.

Since: 0.88

## Types and Values

### struct DBusGObjectInfo

    struct DBusGObjectInfo {
      int   format_version;

      const DBusGMethodInfo *method_infos;
      int   n_method_infos;

      const char *data;

      const char *exported_signals;

      const char *exported_properties;

    };

Introspection data for a GObject, normally autogenerated by a tool such as dbus-binding-tool.

#### Members

int `format_version`; | Allows us to change the rest of this struct by adding DBusGObjectInfo2, DBusGObjectInfo3, etc. |
const DBusGMethodInfo *`method_infos`; | Array of method pointers |
int `n_method_infos`; | Length of the infos array |
const char *`data`; | Introspection data |
const char *`exported_signals`; | Exported signals |
const char *`exported_properties`; | Exported properties |

## See Also

GObject