|
Packit Service |
b23acc |
// SPDX-License-Identifier: LGPL-2.1+
|
|
Packit Service |
b23acc |
/*
|
|
Packit Service |
b23acc |
* Copyright (C) 2019 Red Hat, Inc.
|
|
Packit Service |
b23acc |
*/
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
#ifndef __NM_JSON_AUX_H__
|
|
Packit Service |
b23acc |
#define __NM_JSON_AUX_H__
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
/*****************************************************************************/
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
static inline GString *
|
|
Packit Service |
b23acc |
nm_json_aux_gstr_append_delimiter (GString *gstr)
|
|
Packit Service |
b23acc |
{
|
|
Packit Service |
b23acc |
g_string_append (gstr, ", ");
|
|
Packit Service |
b23acc |
return gstr;
|
|
Packit Service |
b23acc |
}
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
void nm_json_aux_gstr_append_string_len (GString *gstr,
|
|
Packit Service |
b23acc |
const char *str,
|
|
Packit Service |
b23acc |
gsize n);
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
void nm_json_aux_gstr_append_string (GString *gstr,
|
|
Packit Service |
b23acc |
const char *str);
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
static inline void
|
|
Packit Service |
b23acc |
nm_json_aux_gstr_append_bool (GString *gstr,
|
|
Packit Service |
b23acc |
gboolean v)
|
|
Packit Service |
b23acc |
{
|
|
Packit Service |
b23acc |
g_string_append (gstr, v ? "true" : "false");
|
|
Packit Service |
b23acc |
}
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
static inline void
|
|
Packit Service |
b23acc |
nm_json_aux_gstr_append_int64 (GString *gstr,
|
|
Packit Service |
b23acc |
gint64 v)
|
|
Packit Service |
b23acc |
{
|
|
Packit Service |
b23acc |
g_string_append_printf (gstr, "%"G_GINT64_FORMAT, v);
|
|
Packit Service |
b23acc |
}
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
void nm_json_aux_gstr_append_obj_name (GString *gstr,
|
|
Packit Service |
b23acc |
const char *key,
|
|
Packit Service |
b23acc |
char start_container);
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
/*****************************************************************************/
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
#ifdef NM_VALUE_TYPE_DEFINE_FUNCTIONS
|
|
Packit Service |
b23acc |
#include "nm-value-type.h"
|
|
Packit Service |
b23acc |
static inline void
|
|
Packit Service |
b23acc |
nm_value_type_to_json (NMValueType value_type,
|
|
Packit Service |
b23acc |
GString *gstr,
|
|
Packit Service |
b23acc |
gconstpointer p_field)
|
|
Packit Service |
b23acc |
{
|
|
Packit Service |
b23acc |
nm_assert (p_field);
|
|
Packit Service |
b23acc |
nm_assert (gstr);
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
switch (value_type) {
|
|
Packit Service |
b23acc |
case NM_VALUE_TYPE_BOOL: nm_json_aux_gstr_append_bool (gstr, *((const bool *) p_field)); return;
|
|
Packit Service |
b23acc |
case NM_VALUE_TYPE_INT32: nm_json_aux_gstr_append_int64 (gstr, *((const gint32 *) p_field)); return;
|
|
Packit Service |
b23acc |
case NM_VALUE_TYPE_INT: nm_json_aux_gstr_append_int64 (gstr, *((const int *) p_field)); return;
|
|
Packit Service |
b23acc |
case NM_VALUE_TYPE_STRING: nm_json_aux_gstr_append_string (gstr, *((const char *const *) p_field)); return;
|
|
Packit Service |
b23acc |
case NM_VALUE_TYPE_UNSPEC:
|
|
Packit Service |
b23acc |
break;
|
|
Packit Service |
b23acc |
}
|
|
Packit Service |
b23acc |
nm_assert_not_reached ();
|
|
Packit Service |
b23acc |
}
|
|
Packit Service |
b23acc |
#endif
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
/*****************************************************************************/
|
|
Packit Service |
b23acc |
|
|
Packit Service |
b23acc |
#endif /* __NM_JSON_AUX_H__ */
|