shared: add JSON helper functions for NMValueType
This commit is contained in:
@@ -116,6 +116,34 @@ nm_jansson_json_as_string (const json_t *elem,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef NM_VALUE_TYPE_DEFINE_FUNCTIONS
|
||||||
|
#include "nm-value-type.h"
|
||||||
|
static inline gboolean
|
||||||
|
nm_value_type_from_json (NMValueType value_type,
|
||||||
|
const json_t *elem,
|
||||||
|
gpointer out_val)
|
||||||
|
{
|
||||||
|
switch (value_type) {
|
||||||
|
case NM_VALUE_TYPE_BOOL: return (nm_jansson_json_as_bool (elem, out_val) > 0);
|
||||||
|
case NM_VALUE_TYPE_INT32: return (nm_jansson_json_as_int32 (elem, out_val) > 0);
|
||||||
|
case NM_VALUE_TYPE_INT: return (nm_jansson_json_as_int (elem, out_val) > 0);
|
||||||
|
|
||||||
|
/* warning: this overwrites/leaks the previous value. You better have *out_val
|
||||||
|
* point to uninitialized memory or NULL. */
|
||||||
|
case NM_VALUE_TYPE_STRING: return (nm_jansson_json_as_string (elem, out_val) > 0);
|
||||||
|
|
||||||
|
case NM_VALUE_TYPE_UNSPEC:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
nm_assert_not_reached ();
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
#endif /* WITH_JANSON */
|
#endif /* WITH_JANSON */
|
||||||
|
|
||||||
#endif /* __NM_JANSSON_H__ */
|
#endif /* __NM_JANSSON_H__ */
|
||||||
|
@@ -56,4 +56,28 @@ void nm_json_aux_gstr_append_obj_name (GString *gstr,
|
|||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef NM_VALUE_TYPE_DEFINE_FUNCTIONS
|
||||||
|
#include "nm-value-type.h"
|
||||||
|
static inline void
|
||||||
|
nm_value_type_to_json (NMValueType value_type,
|
||||||
|
GString *gstr,
|
||||||
|
gconstpointer p_field)
|
||||||
|
{
|
||||||
|
nm_assert (p_field);
|
||||||
|
nm_assert (gstr);
|
||||||
|
|
||||||
|
switch (value_type) {
|
||||||
|
case NM_VALUE_TYPE_BOOL: nm_json_aux_gstr_append_bool (gstr, *((const bool *) p_field)); return;
|
||||||
|
case NM_VALUE_TYPE_INT32: nm_json_aux_gstr_append_int64 (gstr, *((const gint32 *) p_field)); return;
|
||||||
|
case NM_VALUE_TYPE_INT: nm_json_aux_gstr_append_int64 (gstr, *((const int *) p_field)); return;
|
||||||
|
case NM_VALUE_TYPE_STRING: nm_json_aux_gstr_append_string (gstr, *((const char *const *) p_field)); return;
|
||||||
|
case NM_VALUE_TYPE_UNSPEC:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
nm_assert_not_reached ();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
#endif /* __NM_JSON_AUX_H__ */
|
#endif /* __NM_JSON_AUX_H__ */
|
||||||
|
Reference in New Issue
Block a user