## GDBusObjectSkeleton

GDBusObjectSkeleton — Service-side D-Bus object

## Synopsis

    #include <gio/gio.h>

                        GDBusObjectSkeleton;
    struct              GDBusObjectSkeletonClass;
    GDBusObjectSkeleton * g_dbus_object_skeleton_new        (const gchar *object_path);
    void                g_dbus_object_skeleton_flush        (GDBusObjectSkeleton *object);
    void                g_dbus_object_skeleton_add_interface
                                                            (GDBusObjectSkeleton *object,
                                                             GDBusInterfaceSkeleton *interface_);
    void                g_dbus_object_skeleton_remove_interface
                                                            (GDBusObjectSkeleton *object,
                                                             GDBusInterfaceSkeleton *interface_);
    void                g_dbus_object_skeleton_remove_interface_by_name
                                                            (GDBusObjectSkeleton *object,
                                                             const gchar *interface_name);
    void                g_dbus_object_skeleton_set_object_path
                                                            (GDBusObjectSkeleton *object,
                                                             const gchar *object_path);

## Object Hierarchy

      GObject
       +----GDBusObjectSkeleton

## Implemented Interfaces

GDBusObjectSkeleton implements GDBusObject.

## Properties

      "g-object-path"            gchar*                : Read / Write / Construct

## Signals

      "authorize-method"                               : Run Last

## Description

A GDBusObjectSkeleton instance is essentially a group of D-Bus interfaces. The set of exported interfaces on the object may be dynamic and change at runtime.

This type is intended to be used with GDBusObjectManager.

## Details

### GDBusObjectSkeleton

    typedef struct _GDBusObjectSkeleton GDBusObjectSkeleton;

The GDBusObjectSkeleton structure contains private data and should only be accessed using the provided API.

Since 2.30

### struct GDBusObjectSkeletonClass

    struct GDBusObjectSkeletonClass {
      GObjectClass parent_class;

      /* Signals */
      gboolean (*authorize_method) (GDBusObjectSkeleton       *object,
                                    GDBusInterfaceSkeleton    *interface_,
                                    GDBusMethodInvocation *invocation);
    };

Class structure for GDBusObjectSkeleton.

GObjectClass `parent_class`; | The parent class.
`authorize_method` () | Signal class handler for the "authorize-method" signal.

Since 2.30

### g_dbus_object_skeleton_new ()

    GDBusObjectSkeleton * g_dbus_object_skeleton_new        (const gchar *object_path);

Creates a new GDBusObjectSkeleton.

`object_path` : | An object path.
Returns : | A GDBusObjectSkeleton. Free with `g_object_unref()`.

Since 2.30

### g_dbus_object_skeleton_flush ()

    void                g_dbus_object_skeleton_flush        (GDBusObjectSkeleton *object);

This method simply calls `g_dbus_interface_skeleton_flush()` on all interfaces belonging to `object`. See that method for when flushing is useful.

`object` : | A GDBusObjectSkeleton.

Since 2.30

### g_dbus_object_skeleton_add_interface ()

    void                g_dbus_object_skeleton_add_interface
                                                            (GDBusObjectSkeleton *object,
                                                             GDBusInterfaceSkeleton *interface_);

Adds `interface_` to `object`.

If `object` already contains a GDBusInterfaceSkeleton with the same interface name, it is removed before `interface_` is added.

Note that `object` takes its own reference on `interface_` and holds it until removed.

`object` : | A GDBusObjectSkeleton.
`interface_` : | A GDBusInterfaceSkeleton.

Since 2.30

### g_dbus_object_skeleton_remove_interface ()

    void                g_dbus_object_skeleton_remove_interface
                                                            (GDBusObjectSkeleton *object,
                                                             GDBusInterfaceSkeleton *interface_);

Removes `interface_` from `object`.

`object` : | A GDBusObjectSkeleton.
`interface_` : | A GDBusInterfaceSkeleton.

Since 2.30

### g_dbus_object_skeleton_remove_interface_by_name ()

    void                g_dbus_object_skeleton_remove_interface_by_name
                                                            (GDBusObjectSkeleton *object,
                                                             const gchar *interface_name);

Removes the GDBusInterface with `interface_name` from `object`.

If no D-Bus interface of the given interface exists, this function does nothing.

`object` : | A GDBusObjectSkeleton.
`interface_name` : | A D-Bus interface name.

Since 2.30

### g_dbus_object_skeleton_set_object_path ()

    void                g_dbus_object_skeleton_set_object_path
                                                            (GDBusObjectSkeleton *object,
                                                             const gchar *object_path);

Sets the object path for `object`.

`object` : | A GDBusObjectSkeleton.
`object_path` : | A valid D-Bus object path.

Since 2.30

## Property Details

### The `"g-object-path"` property

      "g-object-path"            gchar*                : Read / Write / Construct

The object path where the object is exported.

Default value: NULL

Since 2.30

## Signal Details

### The `"authorize-method"` signal

    gboolean            user_function                      (GDBusObjectSkeleton    *object,
                                                            GDBusInterfaceSkeleton *interface,
                                                            GDBusMethodInvocation  *invocation,
                                                            gpointer                user_data)       : Run Last

Emitted when a method is invoked by a remote caller and used to determine if the method call is authorized.

This signal is like GDBusInterfaceSkeleton's "g-authorize-method" signal, except that it is for the enclosing object.

The default class handler just returns `TRUE`.

`object` : | The GDBusObjectSkeleton emitting the signal.
`interface` : | The GDBusInterfaceSkeleton that `invocation` is for.
`invocation` : | A GDBusMethodInvocation.
`user_data` : | user data set when the signal handler was connected.
Returns : | `TRUE` if the call is authorized, `FALSE` otherwise.

Since 2.30