## EggDBusIntrospectable EggDBusIntrospectable — Introspection interface |

## Synopsis

                        EggDBusIntrospectable;
                        EggDBusIntrospectableIface;
    #define             EGG_DBUS_QUERY_INTERFACE_INTROSPECTABLE(object_proxy)
    gboolean            egg_dbus_introspectable_introspect_sync
                                                            (EggDBusIntrospectable *instance,
                                                             EggDBusCallFlags call_flags,
                                                             gchar **out_xml_data,
                                                             GCancellable *cancellable,
                                                             GError **error);
    guint               egg_dbus_introspectable_introspect  (EggDBusIntrospectable *instance,
                                                             EggDBusCallFlags call_flags,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            egg_dbus_introspectable_introspect_finish
                                                            (EggDBusIntrospectable *instance,
                                                             gchar **out_xml_data,
                                                             GAsyncResult *res,
                                                             GError **error);
    void                egg_dbus_introspectable_handle_introspect_finish
                                                            (EggDBusMethodInvocation *method_invocation,
                                                             const gchar *out_xml_data);

## Object Hierarchy

      GInterface
       +----EggDBusIntrospectable

## Prerequisites

EggDBusIntrospectable requires GObject.

## Description

Introspection support.

## Details

### EggDBusIntrospectable

    typedef struct _EggDBusIntrospectable EggDBusIntrospectable;

### EggDBusIntrospectableIface

    typedef struct {
      EggDBusInterfaceIface g_iface;

      void (* handle_introspect) (
          EggDBusIntrospectable *instance,
          EggDBusMethodInvocation *method_invocation);
    } EggDBusIntrospectableIface;

Interface VTable for implementing the org.freedesktop.DBus.Introspectable D-Bus interface.

EggDBusInterfaceIface `g_iface`; | The parent interface.
`handle_introspect` () | Object instances may implement this method which returns an XML description of the object, including its interfaces (with signals, methods and properties) and objects below it in the object path tree. See the D-Bus specification for the exact format of D-Bus Introspection XML.

### EGG_DBUS_QUERY_INTERFACE_INTROSPECTABLE()

    #define EGG_DBUS_QUERY_INTERFACE_INTROSPECTABLE(object_proxy) (EGG_DBUS_INTROSPECTABLE (egg_dbus_object_proxy_query_interface (object_proxy, EGG_DBUS_TYPE_INTROSPECTABLE)))

Convenience macro to get an interface proxy for the remote object represented by `object_proxy`. See `egg_dbus_object_proxy_query_interface()` for details.

`object_proxy` : | A EggDBusObjectProxy.
Returns : | An instance derived from EggDBusInterfaceProxy that implements the EggDBusIntrospectable interface. This instance can be used to access the org.freedesktop.DBus.Introspectable D-Bus interface on the remote object represented by `object_proxy`. Do not ref or unref the returned instance, it is owned by `object_proxy`.

### egg_dbus_introspectable_introspect_sync ()

    gboolean            egg_dbus_introspectable_introspect_sync
                                                            (EggDBusIntrospectable *instance,
                                                             EggDBusCallFlags call_flags,
                                                             gchar **out_xml_data,
                                                             GCancellable *cancellable,
                                                             GError **error);

Object instances may implement this method which returns an XML description of the object, including its interfaces (with signals, methods and properties) and objects below it in the object path tree. See the D-Bus specification for the exact format of D-Bus Introspection XML.

This function synchronously invokes the Introspect() method on the org.freedesktop.DBus.Introspectable interface on the object represented by `instance`. See `egg_dbus_introspectable_introspect()` for the asynchronous version of this function.

`instance` : | A EggDBusIntrospectable.
`call_flags` : | Flags from EggDBusCallFlags detailing how the method should be invoked.
`out_xml_data` : | Valid D-Bus Introspection XML. Free with `g_free()`.
`cancellable` : | A GCancellable or `NULL`.
`error` : | Return location for error.
Returns : | `TRUE` if the method call succeeded, `FALSE` if `error` is set.

### egg_dbus_introspectable_introspect ()

    guint               egg_dbus_introspectable_introspect  (EggDBusIntrospectable *instance,
                                                             EggDBusCallFlags call_flags,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Object instances may implement this method which returns an XML description of the object, including its interfaces (with signals, methods and properties) and objects below it in the object path tree. See the D-Bus specification for the exact format of D-Bus Introspection XML.

This function asynchronously invokes the Introspect() method on the org.freedesktop.DBus.Introspectable interface on the object represented by `instance`. When the reply is ready, `callback` will be called (on the main thread). You can then call `egg_dbus_introspectable_introspect_finish()` to get the result. See `egg_dbus_introspectable_introspect_sync()` for the synchronous version of this function.

`instance` : | A EggDBusIntrospectable.
`call_flags` : | Flags from EggDBusCallFlags detailing how the method should be invoked.
`cancellable` : | A GCancellable or `NULL`.
`callback` : | Callback to invoke when the reply is ready.
`user_data` : | User data to pass to `callback`.
Returns : | A pending call id (never zero) that can be used with `egg_dbus_connection_pending_call_cancel()` or `egg_dbus_connection_pending_call_block()`.

### egg_dbus_introspectable_introspect_finish ()

    gboolean            egg_dbus_introspectable_introspect_finish
                                                            (EggDBusIntrospectable *instance,
                                                             gchar **out_xml_data,
                                                             GAsyncResult *res,
                                                             GError **error);

Finishes an asynchronous method invocation started with `egg_dbus_introspectable_introspect()`.

`instance` : | A EggDBusIntrospectable.
`out_xml_data` : | Valid D-Bus Introspection XML. Free with `g_free()`.
`res` : | A GAsyncResult obtained from the GAsyncReadyCallback function passed to `egg_dbus_introspectable_introspect()`.
`error` : | Return location for error.
Returns : | `TRUE` if the method call succeeded, `FALSE` if `error` is set.

### egg_dbus_introspectable_handle_introspect_finish ()

    void                egg_dbus_introspectable_handle_introspect_finish
                                                            (EggDBusMethodInvocation *method_invocation,
                                                             const gchar *out_xml_data);

Function to be called by implementers of the org.freedesktop.DBus.Introspectable D-Bus interface to finish handling the Introspect() method.

`xml_data` : | Valid D-Bus Introspection XML.
`method_invocation` : | A EggDBusMethodInvocation.