## NMClient

NMClient

## Synopsis

    #define             NM_CLIENT_STATE
    #define             NM_CLIENT_MANAGER_RUNNING
    #define             NM_CLIENT_NETWORKING_ENABLED
    #define             NM_CLIENT_WIRELESS_ENABLED
    #define             NM_CLIENT_WIRELESS_HARDWARE_ENABLED
    #define             NM_CLIENT_WWAN_ENABLED
    #define             NM_CLIENT_WWAN_HARDWARE_ENABLED
    #define             NM_CLIENT_ACTIVE_CONNECTIONS
    enum                NMClientPermission;
    enum                NMClientPermissionResult;
                        NMClient;
                        NMClientClass;
    NMClient *          nm_client_new                       (void);
    const GPtrArray *   nm_client_get_devices               (NMClient *client);
    NMDevice *          nm_client_get_device_by_path        (NMClient *client,
                                                             const char *object_path);
    void                (*NMClientActivateDeviceFn)         (gpointer user_data,
                                                             const char *object_path,
                                                             GError *error);
    void                nm_client_activate_connection       (NMClient *client,
                                                             const char *service_name,
                                                             const char *connection_path,
                                                             NMDevice *device,
                                                             const char *specific_object,
                                                             NMClientActivateDeviceFn callback,
                                                             gpointer user_data);
    void                nm_client_deactivate_connection     (NMClient *client,
                                                             NMActiveConnection *active);
    gboolean            nm_client_networking_get_enabled    (NMClient *client);
    void                nm_client_networking_set_enabled    (NMClient *client,
                                                             gboolean enabled);
    gboolean            nm_client_wireless_get_enabled      (NMClient *client);
    void                nm_client_wireless_set_enabled      (NMClient *client,
                                                             gboolean enabled);
    gboolean            nm_client_wireless_hardware_get_enabled
                                                            (NMClient *client);
    gboolean            nm_client_wwan_get_enabled          (NMClient *client);
    void                nm_client_wwan_set_enabled          (NMClient *client,
                                                             gboolean enabled);
    gboolean            nm_client_wwan_hardware_get_enabled (NMClient *client);
    NMState             nm_client_get_state                 (NMClient *client);
    gboolean            nm_client_get_manager_running       (NMClient *client);
    const GPtrArray *   nm_client_get_active_connections    (NMClient *client);
    void                nm_client_sleep                     (NMClient *client,
                                                             gboolean sleep);
    NMClientPermissionResult  nm_client_get_permission_result
                                                            (NMClient *client,
                                                             NMClientPermission permission);

## Object Hierarchy

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

## Properties

      "active-connections"       nm-object-array*      : Read
      "manager-running"          gboolean              : Read
      "networking-enabled"       gboolean              : Read
      "state"                    guint                 : Read
      "wireless-enabled"         gboolean              : Read / Write
      "wireless-hardware-enabled" gboolean              : Read
      "wwan-enabled"             gboolean              : Read / Write / Construct
      "wwan-hardware-enabled"    gboolean              : Read / Write / Construct Only

## Signals

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

## Description

## Details

### NM_CLIENT_STATE

    #define NM_CLIENT_STATE "state"

### NM_CLIENT_MANAGER_RUNNING

    #define NM_CLIENT_MANAGER_RUNNING "manager-running"

### NM_CLIENT_NETWORKING_ENABLED

    #define NM_CLIENT_NETWORKING_ENABLED "networking-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_ACTIVE_CONNECTIONS

    #define NM_CLIENT_ACTIVE_CONNECTIONS "active-connections"

### 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_USE_USER_CONNECTIONS = 4,

    	NM_CLIENT_PERMISSION_LAST = NM_CLIENT_PERMISSION_USE_USER_CONNECTIONS
    } 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;

### NMClient

    typedef struct _NMClient NMClient;

### NMClientClass

    typedef struct {
    	NMObjectClass parent;

    	/* Signals */
    	void (*device_added) (NMClient *client, NMDevice *device);
    	void (*device_removed) (NMClient *client, NMDevice *device);

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

### nm_client_new ()

    NMClient *          nm_client_new                       (void);

Creates a new NMClient.

Returns : | a new NMClient

### 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.

### 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.

### NMClientActivateDeviceFn ()

    void                (*NMClientActivateDeviceFn)         (gpointer user_data,
                                                             const char *object_path,
                                                             GError *error);

`user_data` : |
`object_path` : |
`error` : |

### nm_client_activate_connection ()

    void                nm_client_activate_connection       (NMClient *client,
                                                             const char *service_name,
                                                             const char *connection_path,
                                                             NMDevice *device,
                                                             const char *specific_object,
                                                             NMClientActivateDeviceFn callback,
                                                             gpointer user_data);

Activates a connection with the given NMDevice.

`client` : | a NMClient
`service_name` : | the connection's service name
`connection_path` : | the connection's DBus path
`device` : | the NMDevice
`specific_object` : | the device specific object (currently used only for activating wireless devices and should be the NMAccessPoint's path.
`callback` : | the function to call when the call is done
`user_data` : | user data to pass to the callback function

### 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_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_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_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_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_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_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

### 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_get_state ()

    NMState             nm_client_get_state                 (NMClient *client);

Gets the current daemon state.

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

### 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_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.

### 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_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

## Property Details

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

      "active-connections"       nm-object-array*      : 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

Is networking enabled.

Default value: TRUE

### The `"state"` property

      "state"                    guint                 : Read

The current daemon state.

Allowed values: <= 4

Default value: 0

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

      "wireless-enabled"         gboolean              : Read / Write

Is wireless enabled.

Default value: TRUE

### 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 / Construct

Is WWAN enabled.

Default value: TRUE

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

      "wwan-hardware-enabled"    gboolean              : Read / Write / Construct Only

Is WWAN hardware enabled.

Default value: TRUE

## 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
`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
`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.