## UDisksDaemon UDisksDaemon — Main daemon object |

## Synopsis

                        UDisksDaemon;
    UDisksDaemon *      udisks_daemon_new                   (GDBusConnection *connection);
    GDBusConnection *   udisks_daemon_get_connection        (UDisksDaemon *daemon);
    GDBusObjectManagerServer * udisks_daemon_get_object_manager
                                                            (UDisksDaemon *daemon);
    UDisksMountMonitor * udisks_daemon_get_mount_monitor    (UDisksDaemon *daemon);
    UDisksFstabMonitor * udisks_daemon_get_fstab_monitor    (UDisksDaemon *daemon);
    UDisksCrypttabMonitor * udisks_daemon_get_crypttab_monitor
                                                            (UDisksDaemon *daemon);
    UDisksLinuxProvider * udisks_daemon_get_linux_provider  (UDisksDaemon *daemon);
    PolkitAuthority *   udisks_daemon_get_authority         (UDisksDaemon *daemon);
    UDisksState *       udisks_daemon_get_state             (UDisksDaemon *daemon);
    UDisksObject *      (*UDisksDaemonWaitFunc)             (UDisksDaemon *daemon,
                                                             gpointer user_data);
    UDisksObject *      udisks_daemon_wait_for_object_sync  (UDisksDaemon *daemon,
                                                             UDisksDaemonWaitFunc wait_func,
                                                             gpointer user_data,
                                                             GDestroyNotify user_data_free_func,
                                                             guint timeout_seconds,
                                                             GError **error);
    GList *             udisks_daemon_get_objects           (UDisksDaemon *daemon);
    UDisksObject *      udisks_daemon_find_object           (UDisksDaemon *daemon,
                                                             const gchar *object_path);
    UDisksObject *      udisks_daemon_find_block            (UDisksDaemon *daemon,
                                                             dev_t block_device_number);
    UDisksObject *      udisks_daemon_find_block_by_device_file
                                                            (UDisksDaemon *daemon,
                                                             const gchar *device_file);
    UDisksObject *      udisks_daemon_find_block_by_sysfs_path
                                                            (UDisksDaemon *daemon,
                                                             const gchar *sysfs_path);
    UDisksBaseJob *     udisks_daemon_launch_simple_job     (UDisksDaemon *daemon,
                                                             UDisksObject *object,
                                                             const gchar *job_operation,
                                                             uid_t job_started_by_uid,
                                                             GCancellable *cancellable);
    UDisksBaseJob *     udisks_daemon_launch_spawned_job    (UDisksDaemon *daemon,
                                                             UDisksObject *object,
                                                             const gchar *job_operation,
                                                             uid_t job_started_by_uid,
                                                             GCancellable *cancellable,
                                                             uid_t run_as_uid,
                                                             uid_t run_as_euid,
                                                             const gchar *input_string,
                                                             const gchar *command_line_format,
                                                             ...);
    gboolean            udisks_daemon_launch_spawned_job_sync
                                                            (UDisksDaemon *daemon,
                                                             UDisksObject *object,
                                                             const gchar *job_operation,
                                                             uid_t job_started_by_uid,
                                                             GCancellable *cancellable,
                                                             uid_t run_as_uid,
                                                             uid_t run_as_euid,
                                                             gint *out_status,
                                                             gchar **out_message,
                                                             const gchar *input_string,
                                                             const gchar *command_line_format,
                                                             ...);
    UDisksBaseJob *     udisks_daemon_launch_threaded_job   (UDisksDaemon *daemon,
                                                             UDisksObject *object,
                                                             const gchar *job_operation,
                                                             uid_t job_started_by_uid,
                                                             UDisksThreadedJobFunc job_func,
                                                             gpointer user_data,
                                                             GDestroyNotify user_data_free_func,
                                                             GCancellable *cancellable);

## Object Hierarchy

      GObject
       +----UDisksDaemon

## Properties

      "connection"               GDBusConnection*      : Read / Write / Construct Only
      "mount-monitor"            UDisksMountMonitor*   : Read
      "object-manager"           GDBusObjectManagerServer*  : Read

## Description

Object holding all global state.

## Details

### UDisksDaemon

    typedef struct _UDisksDaemon UDisksDaemon;

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

### udisks_daemon_new ()

    UDisksDaemon *      udisks_daemon_new                   (GDBusConnection *connection);

Create a new daemon object for exporting objects on `connection`.

`connection` : | A GDBusConnection.
Returns : | A UDisksDaemon object. Free with `g_object_unref()`.

### udisks_daemon_get_connection ()

    GDBusConnection *   udisks_daemon_get_connection        (UDisksDaemon *daemon);

Gets the D-Bus connection used by `daemon`.

`daemon` : | A UDisksDaemon.
Returns : | A GDBusConnection. Do not free, the object is owned by `daemon`.

### udisks_daemon_get_object_manager ()

    GDBusObjectManagerServer * udisks_daemon_get_object_manager
                                                            (UDisksDaemon *daemon);

Gets the D-Bus object manager used by `daemon`.

`daemon` : | A UDisksDaemon.
Returns : | A GDBusObjectManagerServer. Do not free, the object is owned by `daemon`.

### udisks_daemon_get_mount_monitor ()

    UDisksMountMonitor * udisks_daemon_get_mount_monitor    (UDisksDaemon *daemon);

Gets the mount monitor used by `daemon`.

`daemon` : | A UDisksDaemon
Returns : | A UDisksMountMonitor. Do not free, the object is owned by `daemon`.

### udisks_daemon_get_fstab_monitor ()

    UDisksFstabMonitor * udisks_daemon_get_fstab_monitor    (UDisksDaemon *daemon);

Gets the fstab monitor used by `daemon`.

`daemon` : | A UDisksDaemon
Returns : | A UDisksFstabMonitor. Do not free, the object is owned by `daemon`.

### udisks_daemon_get_crypttab_monitor ()

    UDisksCrypttabMonitor * udisks_daemon_get_crypttab_monitor
                                                            (UDisksDaemon *daemon);

Gets the crypttab monitor used by `daemon`.

`daemon` : | A UDisksDaemon
Returns : | A UDisksCrypttabMonitor. Do not free, the object is owned by `daemon`.

### udisks_daemon_get_linux_provider ()

    UDisksLinuxProvider * udisks_daemon_get_linux_provider  (UDisksDaemon *daemon);

Gets the Linux Provider, if any.

`daemon` : | A UDisksDaemon.
Returns : | A UDisksLinuxProvider or `NULL`. Do not free, the object is owned by `daemon`.

### udisks_daemon_get_authority ()

    PolkitAuthority *   udisks_daemon_get_authority         (UDisksDaemon *daemon);

Gets the PolicyKit authority used by `daemon`.

`daemon` : | A UDisksDaemon.
Returns : | A PolkitAuthority instance or `NULL` if the polkit authority is not available. Do not free, the object is owned by `daemon`.

### udisks_daemon_get_state ()

    UDisksState *       udisks_daemon_get_state             (UDisksDaemon *daemon);

Gets the state object used by `daemon`.

`daemon` : | A UDisksDaemon.
Returns : | A UDisksState instance. Do not free, the object is owned by `daemon`.

### UDisksDaemonWaitFunc ()

    UDisksObject *      (*UDisksDaemonWaitFunc)             (UDisksDaemon *daemon,
                                                             gpointer user_data);

Type for callback function used with `udisks_daemon_wait_for_object_sync()`.

`daemon` : | A UDisksDaemon.
`user_data` : | The gpointer passed to `udisks_daemon_wait_for_object_sync()`.
Returns : | `NULL` if the object to wait for was not found, otherwise a full reference to a UDisksObject. [transfer full]

### udisks_daemon_wait_for_object_sync ()

    UDisksObject *      udisks_daemon_wait_for_object_sync  (UDisksDaemon *daemon,
                                                             UDisksDaemonWaitFunc wait_func,
                                                             gpointer user_data,
                                                             GDestroyNotify user_data_free_func,
                                                             guint timeout_seconds,
                                                             GError **error);

Blocks the calling thread until an object picked by `wait_func` is available or until `timeout_seconds` has passed (in which case the function fails with `UDISKS_ERROR_TIMED_OUT`).

Note that `wait_func` will be called from time to time - for example if there is a device event.

`daemon` : | A UDisksDaemon.
`wait_func` : | Function to check for desired object.
`user_data` : | User data to pass to `wait_func`.
`user_data_free_func` : | Function to free `user_data` or `NULL`. [allow-none]
`timeout_seconds` : | Maximum time to wait for the object (in seconds) or 0 to never wait.
`error` : | Return location for error or `NULL`. [allow-none]
Returns : | The object picked by `wait_func` or `NULL` if `error` is set. [transfer full]

### udisks_daemon_get_objects ()

    GList *             udisks_daemon_get_objects           (UDisksDaemon *daemon);

Gets all D-Bus objects exported by `daemon`.

`daemon` : | A UDisksDaemon.
Returns : | A list of UDisksObject instaces. The returned list should be freed with `g_list_free()` after each element has been freed with `g_object_unref()`. [transfer full][element-type UDisksObject]

### udisks_daemon_find_object ()

    UDisksObject *      udisks_daemon_find_object           (UDisksDaemon *daemon,
                                                             const gchar *object_path);

Finds an exported object with the object path given by `object_path`.

`daemon` : | A UDisksDaemon.
`object_path` : | A dev_t with the device number to find.
Returns : | A UDisksObject or `NULL` if not found. Free with `g_object_unref()`. [transfer full]

### udisks_daemon_find_block ()

    UDisksObject *      udisks_daemon_find_block            (UDisksDaemon *daemon,
                                                             dev_t block_device_number);

Finds a block device with the number given by `block_device_number`.

`daemon` : | A UDisksDaemon.
`block_device_number` : | A dev_t with the device number to find.
Returns : | A UDisksObject or `NULL` if not found. Free with `g_object_unref()`. [transfer full]

### udisks_daemon_find_block_by_device_file ()

    UDisksObject *      udisks_daemon_find_block_by_device_file
                                                            (UDisksDaemon *daemon,
                                                             const gchar *device_file);

Finds a block device with device file given by `device_file`.

`daemon` : | A UDisksDaemon.
`device_file` : | A device file.
Returns : | A UDisksObject or `NULL` if not found. Free with `g_object_unref()`. [transfer full]

### udisks_daemon_find_block_by_sysfs_path ()

    UDisksObject *      udisks_daemon_find_block_by_sysfs_path
                                                            (UDisksDaemon *daemon,
                                                             const gchar *sysfs_path);

Finds a block device with a sysfs path given by `sysfs_path`.

`daemon` : | A UDisksDaemon.
`sysfs_path` : | A sysfs path.
Returns : | A UDisksObject or `NULL` if not found. Free with `g_object_unref()`. [transfer full]

### udisks_daemon_launch_simple_job ()

    UDisksBaseJob *     udisks_daemon_launch_simple_job     (UDisksDaemon *daemon,
                                                             UDisksObject *object,
                                                             const gchar *job_operation,
                                                             uid_t job_started_by_uid,
                                                             GCancellable *cancellable);

Launches a new simple job.

The job is started immediately - When the job is done, call `udisks_simple_job_complete()` on the returned object. Long-running jobs should periodically check `cancellable` to see if they have been cancelled.

The returned object will be exported on the bus until the "completed" signal is emitted on the object. It is not valid to use the returned object after this signal fires.

`daemon` : | A UDisksDaemon.
`object` : | A UDisksObject to add to the job or `NULL`. [allow-none]
`job_operation` : | The operation for the job.
`job_started_by_uid` : | The user who started the job.
`cancellable` : | A GCancellable or `NULL`.
Returns : | A UDisksSimpleJob object. Do not free, the object belongs to `manager`.

### udisks_daemon_launch_spawned_job ()

    UDisksBaseJob *     udisks_daemon_launch_spawned_job    (UDisksDaemon *daemon,
                                                             UDisksObject *object,
                                                             const gchar *job_operation,
                                                             uid_t job_started_by_uid,
                                                             GCancellable *cancellable,
                                                             uid_t run_as_uid,
                                                             uid_t run_as_euid,
                                                             const gchar *input_string,
                                                             const gchar *command_line_format,
                                                             ...);

Launches a new job for `command_line_format`.

The job is started immediately - connect to the "spawned-job-completed" or "completed" signals to get notified when the job is done.

The returned object will be exported on the bus until the "completed" signal is emitted on the object. It is not valid to use the returned object after this signal fires.

`daemon` : | A UDisksDaemon.
`object` : | A UDisksObject to add to the job or `NULL`. [allow-none]
`job_operation` : | The operation for the job.
`job_started_by_uid` : | The user who started the job.
`cancellable` : | A GCancellable or `NULL`.
`run_as_uid` : | The uid_t to run the command as.
`run_as_euid` : | The effective uid_t to run the command as.
`input_string` : | A string to write to stdin of the spawned program or `NULL`.
`command_line_format` : | printf()-style format for the command line to spawn.
`...` : | Arguments for `command_line_format`.
Returns : | A UDisksSpawnedJob object. Do not free, the object belongs to `manager`.

### udisks_daemon_launch_spawned_job_sync ()

    gboolean            udisks_daemon_launch_spawned_job_sync
                                                            (UDisksDaemon *daemon,
                                                             UDisksObject *object,
                                                             const gchar *job_operation,
                                                             uid_t job_started_by_uid,
                                                             GCancellable *cancellable,
                                                             uid_t run_as_uid,
                                                             uid_t run_as_euid,
                                                             gint *out_status,
                                                             gchar **out_message,
                                                             const gchar *input_string,
                                                             const gchar *command_line_format,
                                                             ...);

Like `udisks_daemon_launch_spawned_job()` but blocks the calling thread until the job completes.

`daemon` : | A UDisksDaemon.
`object` : | A UDisksObject to add to the job or `NULL`. [allow-none]
`job_operation` : | The operation for the job.
`job_started_by_uid` : | The user who started the job.
`cancellable` : | A GCancellable or `NULL`.
`run_as_uid` : | The uid_t to run the command as.
`run_as_euid` : | The effective uid_t to run the command as.
`out_status` : | Return location for the `status` parameter of the "spawned-job-completed" signal.
`out_message` : | Return location for the `message` parameter of the "completed" signal.
`input_string` : | A string to write to stdin of the spawned program or `NULL`.
`command_line_format` : | printf()-style format for the command line to spawn.
`...` : | Arguments for `command_line_format`.
Returns : | The `success` parameter of the "completed" signal.

### udisks_daemon_launch_threaded_job ()

    UDisksBaseJob *     udisks_daemon_launch_threaded_job   (UDisksDaemon *daemon,
                                                             UDisksObject *object,
                                                             const gchar *job_operation,
                                                             uid_t job_started_by_uid,
                                                             UDisksThreadedJobFunc job_func,
                                                             gpointer user_data,
                                                             GDestroyNotify user_data_free_func,
                                                             GCancellable *cancellable);

Launches a new job by running `job_func` in a new dedicated thread.

The job is started immediately - connect to the "threaded-job-completed" or "completed" signals to get notified when the job is done.

Long-running jobs should periodically check `cancellable` to see if they have been cancelled.

The returned object will be exported on the bus until the "completed" signal is emitted on the object. It is not valid to use the returned object after this signal fires.

`daemon` : | A UDisksDaemon.
`object` : | A UDisksObject to add to the job or `NULL`. [allow-none]
`job_operation` : | The operation for the job.
`job_started_by_uid` : | The user who started the job.
`job_func` : | The function to run in another thread.
`user_data` : | User data to pass to `job_func`.
`user_data_free_func` : | Function to free `user_data` with or `NULL`.
`cancellable` : | A GCancellable or `NULL`.
Returns : | A UDisksThreadedJob object. Do not free, the object belongs to `manager`.

## Property Details

### The `"connection"` property

      "connection"               GDBusConnection*      : Read / Write / Construct Only

The GDBusConnection the daemon is for.

### The `"mount-monitor"` property

      "mount-monitor"            UDisksMountMonitor*   : Read

The UDisksMountMonitor used by the daemon

### The `"object-manager"` property

      "object-manager"           GDBusObjectManagerServer*  : Read

The GDBusObjectManager used by the daemon