libnm-core: simplify _nm_register_setting(), register error types too

Simplify the use of _nm_register_setting() by having it splice
together various symbol names itself rather than requiring them to be
specified explicitly, and extend it to also ensure that the type's
corresponding error type is registered (allowing one to find it via
g_type_from_name() if necessary).
This commit is contained in:
Dan Winship 2014-08-07 17:19:40 -04:00
parent 8faef95dae
commit 40bb402898
27 changed files with 32 additions and 106 deletions

View file

@ -80,10 +80,7 @@ nm_setting_802_1x_error_quark (void)
}
G_DEFINE_TYPE_WITH_CODE (NMSetting8021x, nm_setting_802_1x, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_802_1X_SETTING_NAME,
g_define_type_id,
2,
NM_SETTING_802_1X_ERROR))
_nm_register_setting (802_1X, 2))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_802_1X)
#define NM_SETTING_802_1X_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_802_1X, NMSetting8021xPrivate))

View file

@ -53,10 +53,7 @@ nm_setting_adsl_error_quark (void)
}
G_DEFINE_TYPE_WITH_CODE (NMSettingAdsl, nm_setting_adsl, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_ADSL_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_ADSL_ERROR))
_nm_register_setting (ADSL, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_ADSL)
#define NM_SETTING_ADSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_ADSL, NMSettingAdslPrivate))

View file

@ -60,10 +60,7 @@ nm_setting_bluetooth_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingBluetooth, nm_setting_bluetooth, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_BLUETOOTH_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_BLUETOOTH_ERROR))
_nm_register_setting (BLUETOOTH, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BLUETOOTH)
#define NM_SETTING_BLUETOOTH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BLUETOOTH, NMSettingBluetoothPrivate))

View file

@ -61,10 +61,7 @@ nm_setting_bond_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingBond, nm_setting_bond, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_BOND_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_BOND_ERROR))
_nm_register_setting (BOND, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BOND)
#define NM_SETTING_BOND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BOND, NMSettingBondPrivate))

View file

@ -56,10 +56,7 @@ nm_setting_bridge_port_error_quark (void)
}
G_DEFINE_TYPE_WITH_CODE (NMSettingBridgePort, nm_setting_bridge_port, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_BRIDGE_PORT_SETTING_NAME,
g_define_type_id,
3,
NM_SETTING_BRIDGE_PORT_ERROR))
_nm_register_setting (BRIDGE_PORT, 3))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BRIDGE_PORT)
#define NM_SETTING_BRIDGE_PORT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BRIDGE_PORT, NMSettingBridgePortPrivate))

View file

@ -59,10 +59,7 @@ nm_setting_bridge_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingBridge, nm_setting_bridge, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_BRIDGE_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_BRIDGE_ERROR))
_nm_register_setting (BRIDGE, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BRIDGE)
#define NM_SETTING_BRIDGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BRIDGE, NMSettingBridgePrivate))

View file

@ -54,10 +54,7 @@ nm_setting_cdma_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingCdma, nm_setting_cdma, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_CDMA_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_CDMA_ERROR))
_nm_register_setting (CDMA, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_CDMA)
#define NM_SETTING_CDMA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_CDMA, NMSettingCdmaPrivate))

View file

@ -58,10 +58,7 @@ nm_setting_connection_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingConnection, nm_setting_connection, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_CONNECTION_SETTING_NAME,
g_define_type_id,
0,
NM_SETTING_CONNECTION_ERROR))
_nm_register_setting (CONNECTION, 0))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_CONNECTION)
#define NM_SETTING_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_CONNECTION, NMSettingConnectionPrivate))

View file

@ -60,10 +60,7 @@ nm_setting_dcb_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingDcb, nm_setting_dcb, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_DCB_SETTING_NAME,
g_define_type_id,
2,
NM_SETTING_DCB_ERROR))
_nm_register_setting (DCB, 2))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_DCB)
#define NM_SETTING_DCB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_DCB, NMSettingDcbPrivate))

View file

@ -54,10 +54,7 @@ nm_setting_generic_error_quark (void)
}
G_DEFINE_TYPE_WITH_CODE (NMSettingGeneric, nm_setting_generic, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_GENERIC_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_GENERIC_ERROR))
_nm_register_setting (GENERIC, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_GENERIC)
#define NM_SETTING_GENERIC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_GENERIC, NMSettingGenericPrivate))

View file

@ -55,10 +55,7 @@ nm_setting_gsm_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingGsm, nm_setting_gsm, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_GSM_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_GSM_ERROR))
_nm_register_setting (GSM, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_GSM)
#define NM_SETTING_GSM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_GSM, NMSettingGsmPrivate))

View file

@ -56,10 +56,7 @@ nm_setting_infiniband_error_quark (void)
}
G_DEFINE_TYPE_WITH_CODE (NMSettingInfiniband, nm_setting_infiniband, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_INFINIBAND_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_INFINIBAND_ERROR))
_nm_register_setting (INFINIBAND, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_INFINIBAND)
#define NM_SETTING_INFINIBAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_INFINIBAND, NMSettingInfinibandPrivate))

View file

@ -62,10 +62,7 @@ G_DEFINE_BOXED_TYPE (NMIP4Address, nm_ip4_address, nm_ip4_address_dup, nm_ip4_ad
G_DEFINE_BOXED_TYPE (NMIP4Route, nm_ip4_route, nm_ip4_route_dup, nm_ip4_route_unref)
G_DEFINE_TYPE_WITH_CODE (NMSettingIP4Config, nm_setting_ip4_config, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_IP4_CONFIG_SETTING_NAME,
g_define_type_id,
4,
NM_SETTING_IP4_CONFIG_ERROR))
_nm_register_setting (IP4_CONFIG, 4))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_IP4_CONFIG)
#define NM_SETTING_IP4_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_IP4_CONFIG, NMSettingIP4ConfigPrivate))

View file

@ -59,10 +59,7 @@ G_DEFINE_BOXED_TYPE (NMIP6Address, nm_ip6_address, nm_ip6_address_dup, nm_ip6_ad
G_DEFINE_BOXED_TYPE (NMIP6Route, nm_ip6_route, nm_ip6_route_dup, nm_ip6_route_unref)
G_DEFINE_TYPE_WITH_CODE (NMSettingIP6Config, nm_setting_ip6_config, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_IP6_CONFIG_SETTING_NAME,
g_define_type_id,
4,
NM_SETTING_IP6_CONFIG_ERROR))
_nm_register_setting (IP6_CONFIG, 4))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_IP6_CONFIG)
#define NM_SETTING_IP6_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_IP6_CONFIG, NMSettingIP6ConfigPrivate))

View file

@ -45,10 +45,7 @@ nm_setting_olpc_mesh_error_quark (void)
static void nm_setting_olpc_mesh_init (NMSettingOlpcMesh *setting);
G_DEFINE_TYPE_WITH_CODE (NMSettingOlpcMesh, nm_setting_olpc_mesh, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_OLPC_MESH_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_OLPC_MESH_ERROR))
_nm_register_setting (OLPC_MESH, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_OLPC_MESH)
#define NM_SETTING_OLPC_MESH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_OLPC_MESH, NMSettingOlpcMeshPrivate))

View file

@ -54,10 +54,7 @@ nm_setting_ppp_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingPpp, nm_setting_ppp, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_PPP_SETTING_NAME,
g_define_type_id,
3,
NM_SETTING_PPP_ERROR))
_nm_register_setting (PPP, 3))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_PPP)
#define NM_SETTING_PPP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_PPP, NMSettingPppPrivate))

View file

@ -55,10 +55,7 @@ nm_setting_pppoe_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingPppoe, nm_setting_pppoe, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_PPPOE_SETTING_NAME,
g_define_type_id,
3,
NM_SETTING_PPPOE_ERROR))
_nm_register_setting (PPPOE, 3))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_PPPOE)
#define NM_SETTING_PPPOE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_PPPOE, NMSettingPppoePrivate))

View file

@ -23,6 +23,7 @@
#include "nm-setting.h"
#include "nm-connection.h"
#include "nm-core-enum-types.h"
#include "nm-glib-compat.h"
#include "nm-core-internal.h"
@ -48,8 +49,11 @@ void _nm_register_setting (const char *name,
const guint32 priority,
const GQuark error_quark);
/* Ensure, that name is a compile time constant string. Put the function name in parenthesis to suppress expansion. */
#define _nm_register_setting(name, type, priority, error_quark) _nm_register_setting ((name ""), type, priority, error_quark)
#define _nm_register_setting(name, priority) \
G_STMT_START { \
_nm_register_setting (NM_SETTING_ ## name ## _SETTING_NAME "", g_define_type_id, priority, NM_SETTING_ ## name ## _ERROR); \
g_type_ensure (NM_TYPE_SETTING_ ## name ## _ERROR); \
} G_STMT_END
gboolean _nm_setting_is_base_type (NMSetting *setting);
gboolean _nm_setting_type_is_base_type (GType type);

View file

@ -55,10 +55,7 @@ nm_setting_serial_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingSerial, nm_setting_serial, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_SERIAL_SETTING_NAME,
g_define_type_id,
2,
NM_SETTING_SERIAL_ERROR))
_nm_register_setting (SERIAL, 2))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_SERIAL)
#define NM_SETTING_SERIAL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_SERIAL, NMSettingSerialPrivate))

View file

@ -55,10 +55,7 @@ nm_setting_team_port_error_quark (void)
}
G_DEFINE_TYPE_WITH_CODE (NMSettingTeamPort, nm_setting_team_port, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_TEAM_PORT_SETTING_NAME,
g_define_type_id,
3,
NM_SETTING_TEAM_PORT_ERROR))
_nm_register_setting (TEAM_PORT, 3))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_TEAM_PORT)
#define NM_SETTING_TEAM_PORT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_TEAM_PORT, NMSettingTeamPortPrivate))

View file

@ -57,10 +57,7 @@ nm_setting_team_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingTeam, nm_setting_team, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_TEAM_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_TEAM_ERROR))
_nm_register_setting (TEAM, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_TEAM)
#define NM_SETTING_TEAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_TEAM, NMSettingTeamPrivate))

View file

@ -57,10 +57,7 @@ nm_setting_vlan_error_quark (void)
}
G_DEFINE_TYPE_WITH_CODE (NMSettingVlan, nm_setting_vlan, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_VLAN_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_VLAN_ERROR))
_nm_register_setting (VLAN, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_VLAN)
#define NM_SETTING_VLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_VLAN, NMSettingVlanPrivate))

View file

@ -63,10 +63,7 @@ nm_setting_vpn_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingVpn, nm_setting_vpn, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_VPN_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_VPN_ERROR))
_nm_register_setting (VPN, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_VPN)
#define NM_SETTING_VPN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_VPN, NMSettingVpnPrivate))

View file

@ -56,10 +56,7 @@ nm_setting_wimax_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingWimax, nm_setting_wimax, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_WIMAX_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_WIMAX_ERROR))
_nm_register_setting (WIMAX, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIMAX)
#define NM_SETTING_WIMAX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIMAX, NMSettingWimaxPrivate))

View file

@ -59,10 +59,7 @@ nm_setting_wired_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingWired, nm_setting_wired, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_WIRED_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_WIRED_ERROR))
_nm_register_setting (WIRED, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIRED)
#define NM_SETTING_WIRED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRED, NMSettingWiredPrivate))

View file

@ -74,10 +74,7 @@ nm_setting_wireless_security_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingWirelessSecurity, nm_setting_wireless_security, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_WIRELESS_SECURITY_SETTING_NAME,
g_define_type_id,
2,
NM_SETTING_WIRELESS_SECURITY_ERROR))
_nm_register_setting (WIRELESS_SECURITY, 2))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIRELESS_SECURITY)
#define NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRELESS_SECURITY, NMSettingWirelessSecurityPrivate))

View file

@ -60,10 +60,7 @@ nm_setting_wireless_error_quark (void)
G_DEFINE_TYPE_WITH_CODE (NMSettingWireless, nm_setting_wireless, NM_TYPE_SETTING,
_nm_register_setting (NM_SETTING_WIRELESS_SETTING_NAME,
g_define_type_id,
1,
NM_SETTING_WIRELESS_ERROR))
_nm_register_setting (WIRELESS, 1))
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIRELESS)
#define NM_SETTING_WIRELESS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRELESS, NMSettingWirelessPrivate))