## NMRemoteSettings NMRemoteSettings |

## Synopsis

    struct              NMRemoteSettings;
    void                (*NMRemoteSettingsAddConnectionFunc)
                                                            (NMRemoteSettings *settings,
                                                             NMRemoteConnection *connection,
                                                             GError *error,
                                                             gpointer user_data);
    struct              NMRemoteSettingsClass;
    enum                NMRemoteSettingsError;
    void                (*NMRemoteSettingsSaveHostnameFunc) (NMRemoteSettings *settings,
                                                             GError *error,
                                                             gpointer user_data);
    #define             NM_REMOTE_SETTINGS_BUS
    #define             NM_REMOTE_SETTINGS_CAN_MODIFY
    #define             NM_REMOTE_SETTINGS_CONNECTIONS_READ
    #define             NM_REMOTE_SETTINGS_ERROR
    #define             NM_REMOTE_SETTINGS_HOSTNAME
    #define             NM_REMOTE_SETTINGS_NEW_CONNECTION
    #define             NM_REMOTE_SETTINGS_SERVICE_RUNNING
    gboolean            nm_remote_settings_add_connection   (NMRemoteSettings *settings,
                                                             NMConnection *connection,
                                                             NMRemoteSettingsAddConnectionFunc callback,
                                                             gpointer user_data);
    GQuark              nm_remote_settings_error_quark      (void);
    NMRemoteConnection * nm_remote_settings_get_connection_by_path
                                                            (NMRemoteSettings *settings,
                                                             const char *path);
    NMRemoteConnection * nm_remote_settings_get_connection_by_uuid
                                                            (NMRemoteSettings *settings,
                                                             const char *uuid);
    GSList *            nm_remote_settings_list_connections (NMRemoteSettings *settings);
    NMRemoteSettings *  nm_remote_settings_new              (DBusGConnection *bus);
    void                nm_remote_settings_new_async        (DBusGConnection *bus,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    NMRemoteSettings *  nm_remote_settings_new_finish       (GAsyncResult *result,
                                                             GError **error);
    gboolean            nm_remote_settings_save_hostname    (NMRemoteSettings *settings,
                                                             const char *hostname,
                                                             NMRemoteSettingsSaveHostnameFunc callback,
                                                             gpointer user_data);

## Object Hierarchy

      GObject
       +----NMRemoteSettings

## Implemented Interfaces

NMRemoteSettings implements GInitable and GAsyncInitable.

## Properties

      "bus"                      DBusGConnection*      : Read / Write / Construct Only
      "can-modify"               gboolean              : Read
      "hostname"                 gchar*                : Read
      "service-running"          gboolean              : Read

## Signals

      "connections-read"                               : Run First
      "new-connection"                                 : Run First

## Description

## Details

### struct NMRemoteSettings

    struct NMRemoteSettings;

### NMRemoteSettingsAddConnectionFunc ()

    void                (*NMRemoteSettingsAddConnectionFunc)
                                                            (NMRemoteSettings *settings,
                                                             NMRemoteConnection *connection,
                                                             GError *error,
                                                             gpointer user_data);

### struct NMRemoteSettingsClass

    struct NMRemoteSettingsClass {
    	GObjectClass parent;

    	/* Signals */
    	void (*new_connection) (NMRemoteSettings *settings,
    	                        NMRemoteConnection *connection);

    	void (*connections_read) (NMRemoteSettings *settings);

    	/* Padding for future expansion */
    	void (*_reserved1) (void);
    	void (*_reserved2) (void);
    	void (*_reserved3) (void);
    	void (*_reserved4) (void);
    	void (*_reserved5) (void);
    	void (*_reserved6) (void);
    };

### enum NMRemoteSettingsError

    typedef enum {
    	NM_REMOTE_SETTINGS_ERROR_UNKNOWN = 0,            /*< nick=UnknownError >*/
    	NM_REMOTE_SETTINGS_ERROR_CONNECTION_REMOVED,     /*< nick=ConnectionRemoved >*/
    	NM_REMOTE_SETTINGS_ERROR_CONNECTION_UNAVAILABLE, /*< nick=ConnectionUnavailable >*/
    } NMRemoteSettingsError;

Describes errors that may result from operations involving a NMRemoteSettings.

`NM_REMOTE_SETTINGS_ERROR_UNKNOWN` | unknown or unclassified error
`NM_REMOTE_SETTINGS_ERROR_CONNECTION_REMOVED` | the NMRemoteConnection object was removed before it was completely initialized
`NM_REMOTE_SETTINGS_ERROR_CONNECTION_UNAVAILABLE` | the NMRemoteConnection object is not visible or otherwise unreadable

### NMRemoteSettingsSaveHostnameFunc ()

    void                (*NMRemoteSettingsSaveHostnameFunc) (NMRemoteSettings *settings,
                                                             GError *error,
                                                             gpointer user_data);

### NM_REMOTE_SETTINGS_BUS

    #define NM_REMOTE_SETTINGS_BUS             "bus"

### NM_REMOTE_SETTINGS_CAN_MODIFY

    #define NM_REMOTE_SETTINGS_CAN_MODIFY      "can-modify"

### NM_REMOTE_SETTINGS_CONNECTIONS_READ

    #define NM_REMOTE_SETTINGS_CONNECTIONS_READ  "connections-read"

### NM_REMOTE_SETTINGS_ERROR

    #define NM_REMOTE_SETTINGS_ERROR nm_remote_settings_error_quark ()

### NM_REMOTE_SETTINGS_HOSTNAME

    #define NM_REMOTE_SETTINGS_HOSTNAME        "hostname"

### NM_REMOTE_SETTINGS_NEW_CONNECTION

    #define NM_REMOTE_SETTINGS_NEW_CONNECTION    "new-connection"

### NM_REMOTE_SETTINGS_SERVICE_RUNNING

    #define NM_REMOTE_SETTINGS_SERVICE_RUNNING "service-running"

### nm_remote_settings_add_connection ()

    gboolean            nm_remote_settings_add_connection   (NMRemoteSettings *settings,
                                                             NMConnection *connection,
                                                             NMRemoteSettingsAddConnectionFunc callback,
                                                             gpointer user_data);

Requests that the remote settings service add the given settings to a new connection.

`settings` : | the `NMRemoteSettings`
`connection` : | the connection to add. Note that this object's settings will be added, not the object itself
`callback` : | callback to be called when the add operation completes. [scope async]
`user_data` : | caller-specific data passed to `callback`. [closure]
Returns : | TRUE if the request was successful, FALSE if it failed

### nm_remote_settings_error_quark ()

    GQuark              nm_remote_settings_error_quark      (void);

Registers an error quark for NMRemoteSettings if necessary.

Returns : | the error quark used for NMRemoteSettings errors.

### nm_remote_settings_get_connection_by_path ()

    NMRemoteConnection * nm_remote_settings_get_connection_by_path
                                                            (NMRemoteSettings *settings,
                                                             const char *path);

Returns the `NMRemoteConnection` representing the connection at `path`.

`settings` : | the `NMRemoteSettings`
`path` : | the D-Bus object path of the remote connection
Returns : | the remote connection object on success, or NULL if the object was not known. [transfer none]

### nm_remote_settings_get_connection_by_uuid ()

    NMRemoteConnection * nm_remote_settings_get_connection_by_uuid
                                                            (NMRemoteSettings *settings,
                                                             const char *uuid);

Returns the `NMRemoteConnection` identified by `uuid`.

`settings` : | the `NMRemoteSettings`
`uuid` : | the UUID of the remote connection
Returns : | the remote connection object on success, or NULL if the object was not known. [transfer none]

### nm_remote_settings_list_connections ()

    GSList *            nm_remote_settings_list_connections (NMRemoteSettings *settings);

`settings` : | the `NMRemoteSettings`
Returns : | a list containing all connections provided by the remote settings service. Each element of the returned list is a `NMRemoteConnection` instance, which is owned by the `NMRemoteSettings` object and should not be freed by the caller. The returned list is, however, owned by the caller and should be freed using `g_slist_free()` when no longer required. [transfer container][element-type NMClient.RemoteConnection]

### nm_remote_settings_new ()

    NMRemoteSettings *  nm_remote_settings_new              (DBusGConnection *bus);

Creates a new object representing the remote settings service.

Note that this will do blocking D-Bus calls to initialize the settings object. You can use `nm_remote_settings_new_async()` if you want to avoid that.

`bus` : | a valid and connected D-Bus connection. [allow-none]
Returns : | the new remote settings object on success, or `NULL` on failure

### nm_remote_settings_new_async ()

    void                nm_remote_settings_new_async        (DBusGConnection *bus,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Creates a new object representing the remote settings service and begins asynchronously initializing it. `callback` will be called when it is done; use `nm_remote_settings_new_finish()` to get the result.

`bus` : | a valid and connected D-Bus connection. [allow-none]
`cancellable` : | a GCancellable, or `NULL`
`callback` : | callback to call when the settings object is created
`user_data` : | data for `callback`

### nm_remote_settings_new_finish ()

    NMRemoteSettings *  nm_remote_settings_new_finish       (GAsyncResult *result,
                                                             GError **error);

Gets the result of an `nm_remote_settings_new_async()` call.

`result` : | a GAsyncResult
`error` : | location for a GError, or `NULL`
Returns : | a new NMRemoteSettings object, or `NULL` on error

### nm_remote_settings_save_hostname ()

    gboolean            nm_remote_settings_save_hostname    (NMRemoteSettings *settings,
                                                             const char *hostname,
                                                             NMRemoteSettingsSaveHostnameFunc callback,
                                                             gpointer user_data);

Requests that the machine's persistent hostname be set to the specified value or cleared.

`settings` : | the `NMRemoteSettings`
`hostname` : | the new persistent hostname to set, or NULL to clear any existing persistent hostname
`callback` : | callback to be called when the hostname operation completes. [scope async][allow-none]
`user_data` : | caller-specific data passed to `callback`. [closure]
Returns : | TRUE if the request was successful, FALSE if it failed

## Property Details

### The `"bus"` property

      "bus"                      DBusGConnection*      : Read / Write / Construct Only

DBusGConnection.

### The `"can-modify"` property

      "can-modify"               gboolean              : Read

Can modify anything (hostname, connections, etc).

Default value: FALSE

### The `"hostname"` property

      "hostname"                 gchar*                : Read

Persistent hostname.

Default value: NULL

### The `"service-running"` property

      "service-running"          gboolean              : Read

Is service running.

Default value: FALSE

## Signal Details

### The `"connections-read"` signal

    void                user_function                      (NMRemoteSettings *nmremotesettings,
                                                            gpointer          user_data)             : Run First

`nmremotesettings` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.

### The `"new-connection"` signal

    void                user_function                      (NMRemoteSettings *nmremotesettings,
                                                            GObject          *arg1,
                                                            gpointer          user_data)             : Run First

`nmremotesettings` : | the object which received the signal.
`user_data` : | user data set when the signal handler was connected.