summaryrefslogtreecommitdiffstats
path: root/vpp-api-test/vat/json_format.c
diff options
context:
space:
mode:
Diffstat (limited to 'vpp-api-test/vat/json_format.c')
-rw-r--r--vpp-api-test/vat/json_format.c339
1 files changed, 191 insertions, 148 deletions
diff --git a/vpp-api-test/vat/json_format.c b/vpp-api-test/vat/json_format.c
index 70447ed916c..6f316d972eb 100644
--- a/vpp-api-test/vat/json_format.c
+++ b/vpp-api-test/vat/json_format.c
@@ -24,22 +24,25 @@
#define VAT_TAB_WIDTH 2
-typedef struct vat_print_ctx_s {
- FILE *ofp;
- u32 indent;
+typedef struct vat_print_ctx_s
+{
+ FILE *ofp;
+ u32 indent;
} vat_print_ctx_t;
/* Format an IP4 address. */
-static u8 * vat_json_format_ip4_address (u8 * s, va_list * args)
+static u8 *
+vat_json_format_ip4_address (u8 * s, va_list * args)
{
- u8 * a = va_arg (*args, u8 *);
+ u8 *a = va_arg (*args, u8 *);
return format (s, "%d.%d.%d.%d", a[0], a[1], a[2], a[3]);
}
/* Format an IP6 address. */
-static u8 * vat_json_format_ip6_address (u8 * s, va_list * args)
+static u8 *
+vat_json_format_ip6_address (u8 * s, va_list * args)
{
- ip6_address_t * a = va_arg (*args, ip6_address_t *);
+ ip6_address_t *a = va_arg (*args, ip6_address_t *);
u32 i, i_max_n_zero, max_n_zeros, i_first_zero, n_zeros, last_double_colon;
i_max_n_zero = ARRAY_LEN (a->as_u16);
@@ -50,77 +53,79 @@ static u8 * vat_json_format_ip6_address (u8 * s, va_list * args)
{
u32 is_zero = a->as_u16[i] == 0;
if (is_zero && i_first_zero >= ARRAY_LEN (a->as_u16))
- {
- i_first_zero = i;
- n_zeros = 0;
- }
+ {
+ i_first_zero = i;
+ n_zeros = 0;
+ }
n_zeros += is_zero;
- if ((! is_zero && n_zeros > max_n_zeros)
- || (i + 1 >= ARRAY_LEN (a->as_u16) && n_zeros > max_n_zeros))
- {
- i_max_n_zero = i_first_zero;
- max_n_zeros = n_zeros;
- i_first_zero = ARRAY_LEN (a->as_u16);
- n_zeros = 0;
- }
+ if ((!is_zero && n_zeros > max_n_zeros)
+ || (i + 1 >= ARRAY_LEN (a->as_u16) && n_zeros > max_n_zeros))
+ {
+ i_max_n_zero = i_first_zero;
+ max_n_zeros = n_zeros;
+ i_first_zero = ARRAY_LEN (a->as_u16);
+ n_zeros = 0;
+ }
}
last_double_colon = 0;
for (i = 0; i < ARRAY_LEN (a->as_u16); i++)
{
if (i == i_max_n_zero && max_n_zeros > 1)
- {
- s = format (s, "::");
- i += max_n_zeros - 1;
- last_double_colon = 1;
- }
+ {
+ s = format (s, "::");
+ i += max_n_zeros - 1;
+ last_double_colon = 1;
+ }
else
- {
- s = format (s, "%s%x",
- (last_double_colon || i == 0) ? "" : ":",
- clib_net_to_host_u16 (a->as_u16[i]));
- last_double_colon = 0;
- }
+ {
+ s = format (s, "%s%x",
+ (last_double_colon || i == 0) ? "" : ":",
+ clib_net_to_host_u16 (a->as_u16[i]));
+ last_double_colon = 0;
+ }
}
return s;
}
static void
-vat_json_indent_print (vat_print_ctx_t *ctx)
+vat_json_indent_print (vat_print_ctx_t * ctx)
{
- int i;
- for (i=0; i<ctx->indent * VAT_TAB_WIDTH; i++) {
- fformat(ctx->ofp, " ");
+ int i;
+ for (i = 0; i < ctx->indent * VAT_TAB_WIDTH; i++)
+ {
+ fformat (ctx->ofp, " ");
}
}
static void
-vat_json_indent_line (vat_print_ctx_t * ctx, char * fmt, ...)
+vat_json_indent_line (vat_print_ctx_t * ctx, char *fmt, ...)
{
- va_list va;
+ va_list va;
- vat_json_indent_print(ctx);
- va_start(va, fmt);
- va_fformat(ctx->ofp, fmt, &va);
- va_end(va);
+ vat_json_indent_print (ctx);
+ va_start (va, fmt);
+ va_fformat (ctx->ofp, fmt, &va);
+ va_end (va);
}
static u8
is_num_only (vat_json_node_t * p)
{
- vat_json_node_t * elem;
- vec_foreach(elem, p) {
- if (VAT_JSON_INT != elem->type &&
- VAT_JSON_UINT != elem->type) {
- return 0;
- }
- }
- return 1;
+ vat_json_node_t *elem;
+ vec_foreach (elem, p)
+ {
+ if (VAT_JSON_INT != elem->type && VAT_JSON_UINT != elem->type)
+ {
+ return 0;
+ }
+ }
+ return 1;
}
static void
-vat_json_print_internal (vat_print_ctx_t *ctx, vat_json_node_t *node)
+vat_json_print_internal (vat_print_ctx_t * ctx, vat_json_node_t * node)
{
#define P(fmt,...) fformat(ctx->ofp, fmt, ##__VA_ARGS__)
#define PL(fmt,...) fformat(ctx->ofp, fmt"\n", ##__VA_ARGS__)
@@ -129,85 +134,106 @@ vat_json_print_internal (vat_print_ctx_t *ctx, vat_json_node_t *node)
#define INCR (ctx->indent++)
#define DECR (ctx->indent--)
- vat_json_pair_t *pair;
- u32 i, count;
- vat_json_node_t *elem;
- u8 num_only = 0;
+ vat_json_pair_t *pair;
+ u32 i, count;
+ vat_json_node_t *elem;
+ u8 num_only = 0;
- if (!node) {
- return;
+ if (!node)
+ {
+ return;
}
- switch (node->type) {
+ switch (node->type)
+ {
case VAT_JSON_OBJECT:
- count = vec_len(node->pairs);
- if (count >= 1) {
- PL("{");
- INCR;
- for (i=0; i<count; i++) {
- pair = &node->pairs[i];
- PP("\"%s\": ", pair->name);
- vat_json_print_internal(ctx, &pair->value);
- if (i < count - 1) {
- P(",");
- }
- PL();
- }
- DECR;
- PP("}");
- } else { P("{}"); }
- break;
+ count = vec_len (node->pairs);
+ if (count >= 1)
+ {
+ PL ("{");
+ INCR;
+ for (i = 0; i < count; i++)
+ {
+ pair = &node->pairs[i];
+ PP ("\"%s\": ", pair->name);
+ vat_json_print_internal (ctx, &pair->value);
+ if (i < count - 1)
+ {
+ P (",");
+ }
+ PL ();
+ }
+ DECR;
+ PP ("}");
+ }
+ else
+ {
+ P ("{}");
+ }
+ break;
case VAT_JSON_ARRAY:
- num_only = is_num_only(node->array);
- count = vec_len(node->array);
- if (count >= 1) {
- if (num_only)
- P("[");
- else
- PL("[ ");
- INCR;
- for (i=0; i<count; i++) {
- elem = &node->array[i];
- if (!num_only) {
- vat_json_indent_print(ctx);
- }
- vat_json_print_internal(ctx, elem);
- if (i < count - 1) {
- if (num_only) {
- P(", ");
- } else {
- P(",");
- }
- }
- if (!num_only) PL();
- }
- DECR;
- if (!num_only)
- PP("]");
- else
- P("]");
- } else { P("[]"); }
- break;
+ num_only = is_num_only (node->array);
+ count = vec_len (node->array);
+ if (count >= 1)
+ {
+ if (num_only)
+ P ("[");
+ else
+ PL ("[ ");
+ INCR;
+ for (i = 0; i < count; i++)
+ {
+ elem = &node->array[i];
+ if (!num_only)
+ {
+ vat_json_indent_print (ctx);
+ }
+ vat_json_print_internal (ctx, elem);
+ if (i < count - 1)
+ {
+ if (num_only)
+ {
+ P (", ");
+ }
+ else
+ {
+ P (",");
+ }
+ }
+ if (!num_only)
+ PL ();
+ }
+ DECR;
+ if (!num_only)
+ PP ("]");
+ else
+ P ("]");
+ }
+ else
+ {
+ P ("[]");
+ }
+ break;
case VAT_JSON_INT:
- P("%d", node->sint);
- break;
+ P ("%d", node->sint);
+ break;
case VAT_JSON_UINT:
- P("%"PRIu64, node->uint);
- break;
+ P ("%" PRIu64, node->uint);
+ break;
case VAT_JSON_REAL:
- P("%f", node->real);
- break;
+ P ("%f", node->real);
+ break;
case VAT_JSON_STRING:
- P("\"%s\"", node->string);
- break;
+ P ("\"%s\"", node->string);
+ break;
case VAT_JSON_IPV4:
- P("\"%U\"", vat_json_format_ip4_address, &node->ip4);
- break;
+ P ("\"%U\"", vat_json_format_ip4_address, &node->ip4);
+ break;
case VAT_JSON_IPV6:
- P("\"%U\"", vat_json_format_ip6_address, &node->ip6);
- break;
+ P ("\"%U\"", vat_json_format_ip6_address, &node->ip6);
+ break;
default:
- break;
+ break;
}
#undef PPL
#undef PP
@@ -215,47 +241,64 @@ vat_json_print_internal (vat_print_ctx_t *ctx, vat_json_node_t *node)
#undef P
}
-void vat_json_print(FILE *ofp, vat_json_node_t *node)
+void
+vat_json_print (FILE * ofp, vat_json_node_t * node)
{
- vat_print_ctx_t ctx;
- memset(&ctx, 0, sizeof ctx);
- ctx.indent = 0;
- ctx.ofp = ofp;
- fformat(ofp, "\n");
- vat_json_print_internal(&ctx, node);
- fformat(ofp, "\n");
+ vat_print_ctx_t ctx;
+ memset (&ctx, 0, sizeof ctx);
+ ctx.indent = 0;
+ ctx.ofp = ofp;
+ fformat (ofp, "\n");
+ vat_json_print_internal (&ctx, node);
+ fformat (ofp, "\n");
}
-void vat_json_free (vat_json_node_t *node)
+void
+vat_json_free (vat_json_node_t * node)
{
- int i = 0;
+ int i = 0;
- if (NULL == node) {
- return;
+ if (NULL == node)
+ {
+ return;
}
- switch (node->type) {
+ switch (node->type)
+ {
case VAT_JSON_OBJECT:
- for (i = 0; i < vec_len(node->pairs); i++) {
- vat_json_free(&node->pairs[i].value);
- }
- if (NULL != node->pairs) {
- vec_free(node->pairs);
- }
- break;
+ for (i = 0; i < vec_len (node->pairs); i++)
+ {
+ vat_json_free (&node->pairs[i].value);
+ }
+ if (NULL != node->pairs)
+ {
+ vec_free (node->pairs);
+ }
+ break;
case VAT_JSON_ARRAY:
- for (i = 0; i < vec_len(node->array); i++) {
- vat_json_free(&node->array[i]);
- }
- if (NULL != node->array) {
- vec_free(node->array);
- }
- break;
+ for (i = 0; i < vec_len (node->array); i++)
+ {
+ vat_json_free (&node->array[i]);
+ }
+ if (NULL != node->array)
+ {
+ vec_free (node->array);
+ }
+ break;
case VAT_JSON_STRING:
- if (NULL != node->string) {
- vec_free(node->string);
- }
- break;
+ if (NULL != node->string)
+ {
+ vec_free (node->string);
+ }
+ break;
default:
- break;
+ break;
}
}
+
+/*
+ * fd.io coding-style-patch-verification: ON
+ *
+ * Local Variables:
+ * eval: (c-set-style "gnu")
+ * End:
+ */