summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-11-21 12:39:01 +0100
committerThomas Haller <thaller@redhat.com>2017-11-21 13:48:48 +0100
commit3adce12898aef656ca297c13acca6af2b3259d4b (patch)
tree8c17df0ac41e49c2959544120e9806f51daf6c4d
parent7328976a022bec8ad05565a7f32bd410ae566404 (diff)
downloadNetworkManager-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.h20
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)