summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-05-04 18:05:56 +0200
committerThomas Haller <thaller@redhat.com>2020-05-08 08:02:48 +0200
commit0b2ecf5e35801ef89129040119e404d0eaeb856e (patch)
tree0b0453fc84d6312dba1ebb1bc8af801addc7d61b
parenta0b295590754b800d2b6a0e55e72425ca1bd24b0 (diff)
downloadNetworkManager-0b2ecf5e35801ef89129040119e404d0eaeb856e.tar.gz
shared: add NM_G_PARAM_SPEC_GET_DEFAULT_*() helper macros
-rw-r--r--shared/nm-glib-aux/nm-shared-utils.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/shared/nm-glib-aux/nm-shared-utils.h b/shared/nm-glib-aux/nm-shared-utils.h
index fafaefc45d..fb9e3ac903 100644
--- a/shared/nm-glib-aux/nm-shared-utils.h
+++ b/shared/nm-glib-aux/nm-shared-utils.h
@@ -1158,6 +1158,25 @@ GParamSpec *nm_g_object_class_find_property_from_gtype (GType gtype,
/*****************************************************************************/
+#define _NM_G_PARAM_SPEC_CAST(param_spec, _value_type, _c_type) \
+ ({ \
+ const GParamSpec *const _param_spec = (param_spec); \
+ \
+ nm_assert ( !_param_spec \
+ || _param_spec->value_type == (_value_type)); \
+ ((const _c_type *) _param_spec); \
+ })
+
+#define NM_G_PARAM_SPEC_CAST_BOOLEAN(param_spec) _NM_G_PARAM_SPEC_CAST (param_spec, G_TYPE_BOOLEAN, GParamSpecBoolean)
+#define NM_G_PARAM_SPEC_CAST_UINT(param_spec) _NM_G_PARAM_SPEC_CAST (param_spec, G_TYPE_UINT, GParamSpecUInt)
+#define NM_G_PARAM_SPEC_CAST_UINT64(param_spec) _NM_G_PARAM_SPEC_CAST (param_spec, G_TYPE_UINT64, GParamSpecUInt64)
+
+#define NM_G_PARAM_SPEC_GET_DEFAULT_BOOLEAN(param_spec) (NM_G_PARAM_SPEC_CAST_BOOLEAN (NM_ENSURE_NOT_NULL (param_spec))->default_value)
+#define NM_G_PARAM_SPEC_GET_DEFAULT_UINT(param_spec) (NM_G_PARAM_SPEC_CAST_UINT (NM_ENSURE_NOT_NULL (param_spec))->default_value)
+#define NM_G_PARAM_SPEC_GET_DEFAULT_UINT64(param_spec) (NM_G_PARAM_SPEC_CAST_UINT64 (NM_ENSURE_NOT_NULL (param_spec))->default_value)
+
+/*****************************************************************************/
+
GType nm_g_type_find_implementing_class_for_property (GType gtype,
const char *pname);