summary refs log tree commit diff
path: root/libnm-core/nm-connection.h
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2015-01-22 00:29:39 +0100
committerMichael Biebl <biebl@debian.org>2015-01-22 00:29:39 +0100
commit2c032d8f1c6292c1338a615e6ec40252889ba85c (patch)
tree1f77182220b2b0264288ba4a476ab47e5bc48716 /libnm-core/nm-connection.h
parent33491bc4279481db8ae47213e34a6d695a0e8830 (diff)
Imported Upstream version 1.0.0 upstream/1.0.0
Diffstat (limited to 'libnm-core/nm-connection.h')
-rw-r--r--libnm-core/nm-connection.h219
1 files changed, 219 insertions, 0 deletions
diff --git a/libnm-core/nm-connection.h b/libnm-core/nm-connection.h
new file mode 100644
index 00000000..c76ad607
--- /dev/null
+++ b/libnm-core/nm-connection.h
@@ -0,0 +1,219 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+
+/*
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright 2007 - 2013 Red Hat, Inc.
+ * Copyright 2007 - 2008 Novell, Inc.
+ */
+
+#ifndef __NM_CONNECTION_H__
+#define __NM_CONNECTION_H__
+
+#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined (NETWORKMANAGER_COMPILATION)
+#error "Only <NetworkManager.h> can be included directly."
+#endif
+
+#include <nm-core-types.h>
+#include <nm-setting.h>
+#include <nm-errors.h>
+
+G_BEGIN_DECLS
+
+#define NM_TYPE_CONNECTION                (nm_connection_get_type ())
+#define NM_CONNECTION(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_CONNECTION, NMConnection))
+#define NM_IS_CONNECTION(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_CONNECTION))
+#define NM_CONNECTION_GET_INTERFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), NM_TYPE_CONNECTION, NMConnectionClass))
+
+/* Signals */
+#define NM_CONNECTION_SECRETS_UPDATED "secrets-updated"
+#define NM_CONNECTION_SECRETS_CLEARED "secrets-cleared"
+#define NM_CONNECTION_CHANGED         "changed"
+
+/*
+ * NM_CONNECTION_NORMALIZE_PARAM_IP6_CONFIG_METHOD: overwrite the ip6 method
+ * when normalizing ip6 configuration. If omited, this defaults to
+ * @NM_SETTING_IP6_CONFIG_METHOD_AUTO.
+ */
+#define NM_CONNECTION_NORMALIZE_PARAM_IP6_CONFIG_METHOD "ip6-config-method"
+
+/**
+ * NMConnection:
+ *
+ * NMConnection is the interface implemented by #NMRemoteConnection on the
+ * client side, and #NMSettingsConnection on the daemon side.
+ */
+
+/**
+ * NMConnectionInterface:
+ * @parent: the parent interace struct
+ * @secrets_updated: emitted when the connection's secrets are updated
+ * @secrets_cleared: emitted when the connection's secrets are cleared
+ * @changed: emitted when any change to the connection's settings occurs
+ */
+typedef struct {
+	GTypeInterface parent;
+
+	/* Signals */
+	void (*secrets_updated) (NMConnection *connection,
+	                         const char   *setting);
+	void (*secrets_cleared) (NMConnection *connection);
+	void (*changed)         (NMConnection *connection);
+
+} NMConnectionInterface;
+
+GType nm_connection_get_type (void);
+
+void          nm_connection_add_setting   (NMConnection *connection,
+                                           NMSetting    *setting);
+
+void          nm_connection_remove_setting (NMConnection *connection,
+                                            GType         setting_type);
+
+NMSetting    *nm_connection_get_setting   (NMConnection *connection,
+                                           GType         setting_type);
+
+NMSetting    *nm_connection_get_setting_by_name (NMConnection *connection,
+                                                 const char   *name);
+
+/**
+ * NM_VARIANT_TYPE_CONNECTION:
+ *
+ * #GVariantType for a dictionary mapping from setting names to
+ * %NM_VARIANT_TYPE_SETTING variants. This is used to represent an
+ * #NMConnection, and is the type taken by nm_simple_connection_new_from_dbus()
+ * and returned from nm_connection_to_dbus().
+ */
+#define NM_VARIANT_TYPE_CONNECTION (G_VARIANT_TYPE ("a{sa{sv}}"))
+
+/**
+ * NM_VARIANT_TYPE_SETTING:
+ *
+ * #GVariantType for a dictionary mapping from property names to values. This is
+ * an alias for %G_VARIANT_TYPE_VARDICT, and is the type of each element of
+ * an %NM_VARIANT_TYPE_CONNECTION dictionary.
+ */
+#define NM_VARIANT_TYPE_SETTING G_VARIANT_TYPE_VARDICT
+
+/**
+ * NMConnectionSerializationFlags:
+ * @NM_CONNECTION_SERIALIZE_ALL: serialize all properties (including secrets)
+ * @NM_CONNECTION_SERIALIZE_NO_SECRETS: do not include secrets
+ * @NM_CONNECTION_SERIALIZE_ONLY_SECRETS: only serialize secrets
+ *
+ * These flags determine which properties are serialized when calling when
+ * calling nm_connection_to_dbus().
+ **/
+typedef enum { /*< flags >*/
+	NM_CONNECTION_SERIALIZE_ALL = 0x00000000,
+	NM_CONNECTION_SERIALIZE_NO_SECRETS = 0x00000001,
+	NM_CONNECTION_SERIALIZE_ONLY_SECRETS = 0x00000002,
+} NMConnectionSerializationFlags;
+
+GVariant     *nm_connection_to_dbus       (NMConnection *connection,
+                                           NMConnectionSerializationFlags flags);
+
+gboolean      nm_connection_replace_settings (NMConnection *connection,
+                                              GVariant *new_settings,
+                                              GError **error);
+
+void          nm_connection_replace_settings_from_connection (NMConnection *connection,
+                                                              NMConnection *new_connection);
+
+void          nm_connection_clear_settings (NMConnection *connection);
+
+gboolean      nm_connection_compare       (NMConnection *a,
+                                           NMConnection *b,
+                                           NMSettingCompareFlags flags);
+
+gboolean      nm_connection_diff          (NMConnection *a,
+                                           NMConnection *b,
+                                           NMSettingCompareFlags flags,
+                                           GHashTable **out_settings);
+
+gboolean      nm_connection_verify        (NMConnection *connection, GError **error);
+gboolean      nm_connection_normalize     (NMConnection *connection,
+                                           GHashTable *parameters,
+                                           gboolean *modified,
+                                           GError **error);
+
+const char *  nm_connection_need_secrets  (NMConnection *connection,
+                                           GPtrArray **hints);
+
+void          nm_connection_clear_secrets (NMConnection *connection);
+
+void          nm_connection_clear_secrets_with_flags (NMConnection *connection,
+                                                      NMSettingClearSecretsWithFlagsFn func,
+                                                      gpointer user_data);
+
+gboolean      nm_connection_update_secrets (NMConnection *connection,
+                                            const char *setting_name,
+                                            GVariant *secrets,
+                                            GError **error);
+
+void          nm_connection_set_path      (NMConnection *connection,
+                                           const char *path);
+
+const char *  nm_connection_get_path      (NMConnection *connection);
+
+const char *  nm_connection_get_interface_name (NMConnection *connection);
+
+gboolean      nm_connection_is_type (NMConnection *connection, const char *type);
+
+void          nm_connection_for_each_setting_value (NMConnection *connection,
+                                                    NMSettingValueIterFn func,
+                                                    gpointer user_data);
+
+void          nm_connection_dump          (NMConnection *connection);
+
+/* Helpers */
+const char *  nm_connection_get_uuid            (NMConnection *connection);
+const char *  nm_connection_get_id              (NMConnection *connection);
+const char *  nm_connection_get_connection_type (NMConnection *connection);
+
+gboolean      nm_connection_is_virtual          (NMConnection *connection);
+char *        nm_connection_get_virtual_device_description (NMConnection *connection);
+
+NMSetting8021x *           nm_connection_get_setting_802_1x            (NMConnection *connection);
+NMSettingBluetooth *       nm_connection_get_setting_bluetooth         (NMConnection *connection);
+NMSettingBond *            nm_connection_get_setting_bond              (NMConnection *connection);
+NMSettingTeam *            nm_connection_get_setting_team              (NMConnection *connection);
+NMSettingTeamPort *        nm_connection_get_setting_team_port         (NMConnection *connection);
+NMSettingBridge *          nm_connection_get_setting_bridge            (NMConnection *connection);
+NMSettingBridgePort *      nm_connection_get_setting_bridge_port       (NMConnection *connection);
+NMSettingCdma *            nm_connection_get_setting_cdma              (NMConnection *connection);
+NMSettingConnection *      nm_connection_get_setting_connection        (NMConnection *connection);
+NMSettingDcb *             nm_connection_get_setting_dcb               (NMConnection *connection);
+NMSettingGeneric *         nm_connection_get_setting_generic           (NMConnection *connection);
+NMSettingGsm *             nm_connection_get_setting_gsm               (NMConnection *connection);
+NMSettingInfiniband *      nm_connection_get_setting_infiniband        (NMConnection *connection);
+NMSettingIPConfig *        nm_connection_get_setting_ip4_config        (NMConnection *connection);
+NMSettingIPConfig *        nm_connection_get_setting_ip6_config        (NMConnection *connection);
+NMSettingOlpcMesh *        nm_connection_get_setting_olpc_mesh         (NMConnection *connection);
+NMSettingPpp *             nm_connection_get_setting_ppp               (NMConnection *connection);
+NMSettingPppoe *           nm_connection_get_setting_pppoe             (NMConnection *connection);
+NMSettingSerial *          nm_connection_get_setting_serial            (NMConnection *connection);
+NMSettingVpn *             nm_connection_get_setting_vpn               (NMConnection *connection);
+NMSettingWimax *           nm_connection_get_setting_wimax             (NMConnection *connection);
+NMSettingAdsl *            nm_connection_get_setting_adsl              (NMConnection *connection);
+NMSettingWired *           nm_connection_get_setting_wired             (NMConnection *connection);
+NMSettingWireless *        nm_connection_get_setting_wireless          (NMConnection *connection);
+NMSettingWirelessSecurity *nm_connection_get_setting_wireless_security (NMConnection *connection);
+NMSettingVlan *            nm_connection_get_setting_vlan              (NMConnection *connection);
+
+G_END_DECLS
+
+#endif /* __NM_CONNECTION_H__ */