DBus GObject related functions

## 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 ()
GType | dbus_g_object_path_get_g_type ()
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);

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);

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_path_get_g_type ()

    GType
    dbus_g_object_path_get_g_type (void);

#### Returns

### dbus_g_object_register_marshaller ()

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

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 will not be needed once GLib includes libffi.

#### 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);

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);

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