diff options
author | Thomas Haller <thaller@redhat.com> | 2017-11-21 12:39:01 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2017-11-21 13:48:48 +0100 |
commit | 3adce12898aef656ca297c13acca6af2b3259d4b (patch) | |
tree | 8c17df0ac41e49c2959544120e9806f51daf6c4d | |
parent | 7328976a022bec8ad05565a7f32bd410ae566404 (diff) | |
download | NetworkManager-3adce12898aef656ca297c13acca6af2b3259d4b.tar.gz |
shared: add NMUtilsNamedEntry
It is common to have some data indexed by a name.
If you want to sort a list of such data, you would
have to re-implement your own compare function each time.
Instead, add NMUtilsNamedEntry which as first field has
the name. So, you can create your own struct:
struct my_data {
const char *name;
... other fields
}
and compare them with with nm_utils_named_entry_cmp().
For convenience, add another struct NMUtilsNamedValue, which
has only one data field, a pointer.
-rw-r--r-- | shared/nm-utils/nm-shared-utils.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/shared/nm-utils/nm-shared-utils.h b/shared/nm-utils/nm-shared-utils.h index a092a6b780..1e80b35a93 100644 --- a/shared/nm-utils/nm-shared-utils.h +++ b/shared/nm-utils/nm-shared-utils.h @@ -407,6 +407,26 @@ char *nm_utils_str_utf8safe_escape_take (char *str, NMUtilsStrUtf8SafeFlags flag /*****************************************************************************/ +typedef struct { + const char *name; +} NMUtilsNamedEntry; + +typedef struct { + union { + NMUtilsNamedEntry named_entry; + const char *name; + }; + union { + const char *value_str; + gconstpointer value_ptr; + }; +} NMUtilsNamedValue; + +#define nm_utils_named_entry_cmp nm_strcmp_p +#define nm_utils_named_entry_cmp_with_data nm_strcmp_p_with_data + +/*****************************************************************************/ + #define NM_UTILS_NS_PER_SECOND ((gint64) 1000000000) #define NM_UTILS_NS_PER_MSEC ((gint64) 1000000) #define NM_UTILS_NS_TO_MSEC_CEIL(nsec) (((nsec) + (NM_UTILS_NS_PER_MSEC - 1)) / NM_UTILS_NS_PER_MSEC) |