void test_inspect(void *o, const char *expected) { pn_string_t *dst = pn_string(NULL); pn_inspect(o, dst); assert(pn_strequals(pn_string_get(dst), expected)); pn_free(dst); }
static int pn_url_inspect(void *obj, pn_string_t *dst) { pn_url_t *url = (pn_url_t *) obj; int err = 0; err = pn_string_addf(dst, "Url("); if (err) return err; err = pn_inspect(pn_url_string(url), dst); if (err) return err; return pn_string_addf(dst, ")"); }
static void pn_do_trace(pn_dispatcher_t *disp, uint16_t ch, pn_dir_t dir, pn_data_t *args, const char *payload, size_t size) { if (disp->trace & PN_TRACE_FRM) { pn_string_format(disp->scratch, "%u %s ", ch, dir == OUT ? "->" : "<-"); pn_inspect(args, disp->scratch); if (size) { char buf[1024]; int e = pn_quote_data(buf, 1024, payload, size); pn_string_addf(disp->scratch, " (%" PN_ZU ") \"%s\"%s", size, buf, e == PN_OVERFLOW ? "... (truncated)" : ""); } pn_transport_log(disp->transport, pn_string_get(disp->scratch)); } }
static int pn_collector_inspect(pn_collector_t *collector, pn_string_t *dst) { assert(collector); int err = pn_string_addf(dst, "EVENTS["); if (err) return err; pn_event_t *event = collector->head; bool first = true; while (event) { if (first) { first = false; } else { err = pn_string_addf(dst, ", "); if (err) return err; } err = pn_inspect(event, dst); if (err) return err; event = event->next; } return pn_string_addf(dst, "]"); }