## NMClient NMClient |

## Synopsis

                        NMClient;
    void                (*NMClientActivateFn)               (NMClient *client,
                                                             NMActiveConnection *active_connection,
                                                             GError *error,
                                                             gpointer user_data);
    void                (*NMClientAddActivateFn)            (NMClient *client,
                                                             NMActiveConnection *connection,
                                                             const char *new_connection_path,
                                                             GError *error,
                                                             gpointer user_data);
                        NMClientClass;
    enum                NMClientPermission;
    enum                NMClientPermissionResult;
    #define             NM_CLIENT_ACTIVE_CONNECTIONS
    #define             NM_CLIENT_MANAGER_RUNNING
    #define             NM_CLIENT_NETWORKING_ENABLED
    #define             NM_CLIENT_STATE
    #define             NM_CLIENT_VERSION
    #define             NM_CLIENT_WIMAX_ENABLED
    #define             NM_CLIENT_WIMAX_HARDWARE_ENABLED
    #define             NM_CLIENT_WIRELESS_ENABLED
    #define             NM_CLIENT_WIRELESS_HARDWARE_ENABLED
    #define             NM_CLIENT_WWAN_ENABLED
    #define             NM_CLIENT_WWAN_HARDWARE_ENABLED
    void                nm_client_activate_connection       (NMClient *client,
                                                             NMConnection *connection,
                                                             NMDevice *device,
                                                             const char *specific_object,
                                                             NMClientActivateFn callback,
                                                             gpointer user_data);
    void                nm_client_add_and_activate_connection
                                                            (NMClient *client,
                                                             NMConnection *partial,
                                                             NMDevice *device,
                                                             const char *specific_object,
                                                             NMClientAddActivateFn callback,
                                                             gpointer user_data);
    void                nm_client_deactivate_connection     (NMClient *client,
                                                             NMActiveConnection *active);
    const GPtrArray *   nm_client_get_active_connections    (NMClient *client);
    NMDevice *          nm_client_get_device_by_iface       (NMClient *client,
                                                             const char *iface);
    NMDevice *          nm_client_get_device_by_path        (NMClient *client,
                                                             const char *object_path);
    const GPtrArray *   nm_client_get_devices               (NMClient *client);
    gboolean            nm_client_get_manager_running       (NMClient *client);
    NMClientPermissionResult nm_client_get_permission_result
                                                            (NMClient *client,
                                                             NMClientPermission permission);
    NMState             nm_client_get_state                 (NMClient *client);
    const char *        nm_client_get_version               (NMClient *client);
    gboolean            nm_client_networking_get_enabled    (NMClient *client);
    void                nm_client_networking_set_enabled    (NMClient *client,
                                                             gboolean enabled);
    NMClient *          nm_client_new                       (void);
    void                nm_client_new_async                 (GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    NMClient *          nm_client_new_finish                (GAsyncResult *result,
                                                             GError **error);
    void                nm_client_sleep                     (NMClient *client,
                                                             gboolean sleep_);
    gboolean            nm_client_wimax_get_enabled         (NMClient *client);
    gboolean            nm_client_wimax_hardware_get_enabled
                                                            (NMClient *client);
    void                nm_client_wimax_set_enabled         (NMClient *client,
                                                             gboolean enabled);
    gboolean            nm_client_wireless_get_enabled      (NMClient *client);
    gboolean            nm_client_wireless_hardware_get_enabled
                                                            (NMClient *client);
    void                nm_client_wireless_set_enabled      (NMClient *client,
                                                             gboolean enabled);
    gboolean            nm_client_wwan_get_enabled          (NMClient *client);
    gboolean            nm_client_wwan_hardware_get_enabled (NMClient *client);
    void                nm_client_wwan_set_enabled          (NMClient *client,
                                                             gboolean enabled);

## Object Hierarchy

      GObject
       +----NMObject
             +----NMClient

## Implemented Interfaces

NMClient implements GInitable and GAsyncInitable.

## Properties

      "active-connections"       NMObjectArray*        : Read
      "manager-running"          gboolean              : Read
      "networking-enabled"       gboolean              : Read / Write
      "state"                    guint                 : Read
      "version"                  gchar*                : Read
      "wimax-enabled"            gboolean              : Read / Write
      "wimax-hardware-enabled"   gboolean              : Read
      "wireless-enabled"         gboolean              : Read / Write
      "wireless-hardware-enabled" gboolean              : Read
      "wwan-enabled"             gboolean              : Read / Write
      "wwan-hardware-enabled"    gboolean              : Read

## Signals

      "device-added"                                   : Run First
      "device-removed"                                 : Run First
      "permission-changed"                             : Run First

## Description

## Details

### NMClient

    typedef struct _NMClient NMClient;

### NMClientActivateFn ()

    void                (*NMClientActivateFn)               (NMClient *client,
                                                             NMActiveConnection *active_connection,
                                                             GError *error,
                                                             gpointer user_data);

### NMClientAddActivateFn ()

    void                (*NMClientAddActivateFn)            (NMClient *client,
                                                             NMActiveConnection *connection,
                                                             const char *new_connection_path,
                                                             GError *error,
                                                             gpointer user_data);

### NMClientClass

    typedef struct {
    	NMObjectClass parent;

    	/* Signals */
    	void (*device_added) (NMClient *client, NMDevice *device);
    	void (*device_removed) (NMClient *client, NMDevice *device);
    	void (*permission_changed) (NMClient *client,
    	                            NMClientPermission permission,
    	                            NMClientPermissionResult result);

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

### enum NMClientPermission

    typedef enum {
    	NM_CLIENT_PERMISSION_NONE = 0,
    	NM_CLIENT_PERMISSION_ENABLE_DISABLE_NETWORK = 1,
    	NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIFI = 2,
    	NM_CLIENT_PERMISSION_ENABLE_DISABLE_WWAN = 3,
    	NM_CLIENT_PERMISSION_ENABLE_DISABLE_WIMAX = 4,
    	NM_CLIENT_PERMISSION_SLEEP_WAKE = 5,
    	NM_CLIENT_PERMISSION_NETWORK_CONTROL = 6,
    	NM_CLIENT_PERMISSION_WIFI_SHARE_PROTECTED = 7,
    	NM_CLIENT_PERMISSION_WIFI_SHARE_OPEN = 8,
    	NM_CLIENT_PERMISSION_SETTINGS_MODIFY_SYSTEM = 9,
    	NM_CLIENT_PERMISSION_SETTINGS_MODIFY_OWN = 10,
    	NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME = 11,

    	NM_CLIENT_PERMISSION_LAST = NM_CLIENT_PERMISSION_SETTINGS_MODIFY_HOSTNAME
    } NMClientPermission;

### enum NMClientPermissionResult

    typedef enum {
    	NM_CLIENT_PERMISSION_RESULT_UNKNOWN = 0,
    	NM_CLIENT_PERMISSION_RESULT_YES,
    	NM_CLIENT_PERMISSION_RESULT_AUTH,
    	NM_CLIENT_PERMISSION_RESULT_NO
    } NMClientPermissionResult;

### NM_CLIENT_ACTIVE_CONNECTIONS

    #define NM_CLIENT_ACTIVE_CONNECTIONS "active-connections"

### NM_CLIENT_MANAGER_RUNNING

    #define NM_CLIENT_MANAGER_RUNNING "manager-running"

### NM_CLIENT_NETWORKING_ENABLED

    #define NM_CLIENT_NETWORKING_ENABLED "networking-enabled"

### NM_CLIENT_STATE

    #define NM_CLIENT_STATE "state"

### NM_CLIENT_VERSION

    #define NM_CLIENT_VERSION "version"

### NM_CLIENT_WIMAX_ENABLED

    #define NM_CLIENT_WIMAX_ENABLED "wimax-enabled"

### NM_CLIENT_WIMAX_HARDWARE_ENABLED

    #define NM_CLIENT_WIMAX_HARDWARE_ENABLED "wimax-hardware-enabled"

### NM_CLIENT_WIRELESS_ENABLED

    #define NM_CLIENT_WIRELESS_ENABLED "wireless-enabled"

### NM_CLIENT_WIRELESS_HARDWARE_ENABLED

    #define NM_CLIENT_WIRELESS_HARDWARE_ENABLED "wireless-hardware-enabled"

### NM_CLIENT_WWAN_ENABLED

    #define NM_CLIENT_WWAN_ENABLED "wwan-enabled"

### NM_CLIENT_WWAN_HARDWARE_ENABLED

    #define NM_CLIENT_WWAN_HARDWARE_ENABLED "wwan-hardware-enabled"

### nm_client_activate_connection ()

    void                nm_client_activate_connection       (NMClient *client,
                                                             NMConnection *connection,
                                                             NMDevice *device,
                                                             const char *specific_object,
                                                             NMClientActivateFn callback,
                                                             gpointer user_data);

Starts a connection to a particular network using the configuration settings from `connection` and the network device `device`. Certain connection types also take a "specific object" which is the object path of a connection- specific object, like an NMAccessPoint for WiFi connections, or an NMWimaxNsp for WiMAX connections, to which you wish to connect. If the specific object is not given, NetworkManager can, in some cases, automatically determine which network to connect to given the settings in `connection`.

`client` : | a NMClient
`connection` : | an NMConnection
`device` : | the NMDevice. [allow-none]
`specific_object` : | the object path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of NULL should be used (ie, no specific object). For WiFi or WiMAX connections, pass the object path of a NMAccessPoint or NMWimaxNsp owned by `device`, which you can get using `nm_object_get_path()`, and which will be used to complete the details of the newly added connection. [allow-none]
`callback` : | the function to call when the call is done. [scope async][allow-none]
`user_data` : | user data to pass to the callback function. [closure]

### nm_client_add_and_activate_connection ()

    void                nm_client_add_and_activate_connection
                                                            (NMClient *client,
                                                             NMConnection *partial,
                                                             NMDevice *device,
                                                             const char *specific_object,
                                                             NMClientAddActivateFn callback,
                                                             gpointer user_data);

Adds a new connection using the given details (if any) as a template, automatically filling in missing settings with the capabilities of the given device and specific object. The new connection is then activated. Cannot be used for VPN connections at this time.

`client` : | a NMClient
`partial` : | an NMConnection to add; the connection may be partially filled (or even NULL) and will be completed by NetworkManager using the given `device` and `specific_object` before being added. [allow-none]
`device` : | the NMDevice
`specific_object` : | the object path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of NULL should be used (ie, no specific object). For WiFi or WiMAX connections, pass the object path of a NMAccessPoint or NMWimaxNsp owned by `device`, which you can get using `nm_object_get_path()`, and which will be used to complete the details of the newly added connection. [allow-none]
`callback` : | the function to call when the call is done. [scope async][allow-none]
`user_data` : | user data to pass to the callback function. [closure]

### nm_client_deactivate_connection ()

    void                nm_client_deactivate_connection     (NMClient *client,
                                                             NMActiveConnection *active);

Deactivates an active NMActiveConnection.

`client` : | a NMClient
`active` : | the NMActiveConnection to deactivate

### nm_client_get_active_connections ()

    const GPtrArray *   nm_client_get_active_connections    (NMClient *client);

Gets the active connections.

`client` : | a NMClient
Returns : | a GPtrArray containing all the active NMActiveConnections. The returned array is owned by the client and should not be modified. [transfer none][element-type NMClient.ActiveConnection]

### nm_client_get_device_by_iface ()

    NMDevice *          nm_client_get_device_by_iface       (NMClient *client,
                                                             const char *iface);

Gets a NMDevice from a NMClient.

`client` : | a NMClient
`iface` : | the interface name to search for
Returns : | the NMDevice for the given `iface` or `NULL` if none is found. [transfer none]

### nm_client_get_device_by_path ()

    NMDevice *          nm_client_get_device_by_path        (NMClient *client,
                                                             const char *object_path);

Gets a NMDevice from a NMClient.

`client` : | a NMClient
`object_path` : | the object path to search for
Returns : | the NMDevice for the given `object_path` or `NULL` if none is found. [transfer none]

### nm_client_get_devices ()

    const GPtrArray *   nm_client_get_devices               (NMClient *client);

Gets all the detected devices.

`client` : | a NMClient
Returns : | a GPtrArray containing all the NMDevices. The returned array is owned by the client and should not be modified. [transfer none][element-type NMClient.Device]

### nm_client_get_manager_running ()

    gboolean            nm_client_get_manager_running       (NMClient *client);

Determines whether the daemon is running.

`client` : | a NMClient
Returns : | `TRUE` if the daemon is running

### nm_client_get_permission_result ()

    NMClientPermissionResult nm_client_get_permission_result
                                                            (NMClient *client,
                                                             NMClientPermission permission);

Requests the result of a specific permission, which indicates whether the client can or cannot perform the action the permission represents

`client` : | a NMClient
`permission` : | the permission for which to return the result, one of NMClientPermission
Returns : | the permission's result, one of NMClientPermissionResult

### nm_client_get_state ()

    NMState             nm_client_get_state                 (NMClient *client);

Gets the current daemon state.

`client` : | a NMClient
Returns : | the current `NMState`

### nm_client_get_version ()

    const char *        nm_client_get_version               (NMClient *client);

Gets NetworkManager version.

`client` : | a NMClient
Returns : | string with the version

### nm_client_networking_get_enabled ()

    gboolean            nm_client_networking_get_enabled    (NMClient *client);

Whether networking is enabled or disabled.

`client` : | a NMClient
Returns : | `TRUE` if networking is enabled, `FALSE` if networking is disabled

### nm_client_networking_set_enabled ()

    void                nm_client_networking_set_enabled    (NMClient *client,
                                                             gboolean enabled);

Enables or disables networking. When networking is disabled, all controlled interfaces are disconnected and deactivated. When networking is enabled, all controlled interfaces are available for activation.

`client` : | a NMClient
`enabled` : | `TRUE` to set networking enabled, `FALSE` to set networking disabled

### nm_client_new ()

    NMClient *          nm_client_new                       (void);

Creates a new NMClient.

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

NOTE: NMClient provides information about devices and a mechanism to control them. To access and modify network configuration data, use the NMRemoteSettings object.

Returns : | a new NMClient

### nm_client_new_async ()

    void                nm_client_new_async                 (GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Creates a new NMClient and begins asynchronously initializing it. `callback` will be called when it is done; use `nm_client_new_finish()` to get the result.

NOTE: NMClient provides information about devices and a mechanism to control them. To access and modify network configuration data, use the NMRemoteSettings object.

`cancellable` : | a GCancellable, or `NULL`
`callback` : | callback to call when the client is created
`user_data` : | data for `callback`

### nm_client_new_finish ()

    NMClient *          nm_client_new_finish                (GAsyncResult *result,
                                                             GError **error);

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

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

### nm_client_sleep ()

    void                nm_client_sleep                     (NMClient *client,
                                                             gboolean sleep_);

Deprecated; use `nm_client_networking_set_enabled()` instead.

`client` : | a NMClient
`sleep_` : | `TRUE` to put the daemon to sleep

### nm_client_wimax_get_enabled ()

    gboolean            nm_client_wimax_get_enabled         (NMClient *client);

Determines whether WiMAX is enabled.

`client` : | a NMClient
Returns : | `TRUE` if WiMAX is enabled

### nm_client_wimax_hardware_get_enabled ()

    gboolean            nm_client_wimax_hardware_get_enabled
                                                            (NMClient *client);

Determines whether the WiMAX hardware is enabled.

`client` : | a NMClient
Returns : | `TRUE` if the WiMAX hardware is enabled

### nm_client_wimax_set_enabled ()

    void                nm_client_wimax_set_enabled         (NMClient *client,
                                                             gboolean enabled);

Enables or disables WiMAX devices.

`client` : | a NMClient
`enabled` : | `TRUE` to enable WiMAX

### nm_client_wireless_get_enabled ()

    gboolean            nm_client_wireless_get_enabled      (NMClient *client);

Determines whether the wireless is enabled.

`client` : | a NMClient
Returns : | `TRUE` if wireless is enabled

### nm_client_wireless_hardware_get_enabled ()

    gboolean            nm_client_wireless_hardware_get_enabled
                                                            (NMClient *client);

Determines whether the wireless hardware is enabled.

`client` : | a NMClient
Returns : | `TRUE` if the wireless hardware is enabled

### nm_client_wireless_set_enabled ()

    void                nm_client_wireless_set_enabled      (NMClient *client,
                                                             gboolean enabled);

Enables or disables wireless devices.

`client` : | a NMClient
`enabled` : | `TRUE` to enable wireless

### nm_client_wwan_get_enabled ()

    gboolean            nm_client_wwan_get_enabled          (NMClient *client);

Determines whether WWAN is enabled.

`client` : | a NMClient
Returns : | `TRUE` if WWAN is enabled

### nm_client_wwan_hardware_get_enabled ()

    gboolean            nm_client_wwan_hardware_get_enabled (NMClient *client);

Determines whether the WWAN hardware is enabled.

`client` : | a NMClient
Returns : | `TRUE` if the WWAN hardware is enabled

### nm_client_wwan_set_enabled ()

    void                nm_client_wwan_set_enabled          (NMClient *client,
                                                             gboolean enabled);

Enables or disables WWAN devices.

`client` : | a NMClient
`enabled` : | `TRUE` to enable WWAN

## Property Details

### The `"active-connections"` property

      "active-connections"       NMObjectArray*        : Read

Active connections.

### The `"manager-running"` property

      "manager-running"          gboolean              : Read

Whether NetworkManager is running.

Default value: FALSE

### The `"networking-enabled"` property

      "networking-enabled"       gboolean              : Read / Write

Is networking enabled.

Default value: TRUE

### The `"state"` property

      "state"                    guint                 : Read

The current daemon state.

Allowed values: <= 70

Default value: 0

### The `"version"` property

      "version"                  gchar*                : Read

The NetworkManager version.

Default value: NULL

### The `"wimax-enabled"` property

      "wimax-enabled"            gboolean              : Read / Write

Is WiMAX enabled.

Default value: FALSE

### The `"wimax-hardware-enabled"` property

      "wimax-hardware-enabled"   gboolean              : Read

Is WiMAX hardware enabled.

Default value: FALSE

### The `"wireless-enabled"` property

      "wireless-enabled"         gboolean              : Read / Write

Is wireless enabled.

Default value: FALSE

### The `"wireless-hardware-enabled"` property

      "wireless-hardware-enabled" gboolean              : Read

Is wireless hardware enabled.

Default value: TRUE

### The `"wwan-enabled"` property

      "wwan-enabled"             gboolean              : Read / Write

Is WWAN enabled.

Default value: FALSE

### The `"wwan-hardware-enabled"` property

      "wwan-hardware-enabled"    gboolean              : Read

Is WWAN hardware enabled.

Default value: FALSE

## Signal Details

### The `"device-added"` signal

    void                user_function                      (NMClient *client,
                                                            GObject  *device,
                                                            gpointer  user_data)      : Run First

Notifies that a NMDevice is added.

`client` : | the client that received the signal
`device` : | the new device. [type NMClient.Device]
`user_data` : | user data set when the signal handler was connected.

### The `"device-removed"` signal

    void                user_function                      (NMClient *widget,
                                                            GObject  *device,
                                                            gpointer  user_data)      : Run First

Notifies that a NMDevice is removed.

`widget` : | the client that received the signal
`device` : | the removed device. [type NMClient.Device]
`user_data` : | user data set when the signal handler was connected.

### The `"permission-changed"` signal

    void                user_function                      (NMClient *widget,
                                                            guint     permission,
                                                            guint     result,
                                                            gpointer  user_data)       : Run First

Notifies that a permission has changed

`widget` : | the client that received the signal
`permission` : | a permission from NMClientPermission
`result` : | the permission's result, one of NMClientPermissionResult
`user_data` : | user data set when the signal handler was connected.