diff options
author | Thomas Haller <thaller@redhat.com> | 2020-05-04 18:05:56 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-05-08 08:02:48 +0200 |
commit | 0b2ecf5e35801ef89129040119e404d0eaeb856e (patch) | |
tree | 0b0453fc84d6312dba1ebb1bc8af801addc7d61b | |
parent | a0b295590754b800d2b6a0e55e72425ca1bd24b0 (diff) | |
download | NetworkManager-0b2ecf5e35801ef89129040119e404d0eaeb856e.tar.gz |
shared: add NM_G_PARAM_SPEC_GET_DEFAULT_*() helper macros
-rw-r--r-- | shared/nm-glib-aux/nm-shared-utils.h | 19 |
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); |