24 _output_pres_write(nmsg_output_t output, nmsg_message_t msg) {
25 Nmsg__NmsgPayload *np;
26 const char *vname = NULL;
27 const char *mname = NULL;
38 pthread_mutex_lock(&output->pres->lock);
42 strftime(when,
sizeof(when),
"%Y-%m-%d %T", tm);
49 nmsg_asprintf(&pres_data,
"<UNKNOWN NMSG %u:%u>%s",
51 output->pres->endline);
55 fprintf(output->pres->fp,
"[%zu] [%s.%09u] [%d:%d %s %s] "
56 "[%08x] [%s] [%s] %s%s",
57 np->has_payload ? np->payload.len : 0,
60 vname ? vname :
"(unknown)",
61 mname ? mname :
"(unknown)",
62 np->has_source ? np->source : 0,
72 output->pres->endline, pres_data);
73 fputs(
"\n", output->pres->fp);
74 if (output->pres->flush)
75 fflush(output->pres->fp);
80 pthread_mutex_unlock(&output->pres->lock);
nmsg_res nmsg_message_to_pres(nmsg_message_t msg, char **pres, const char *endline)
Convert a message object to presentation format.
const char * nmsg_msgmod_msgtype_to_mname(unsigned vid, unsigned msgtype)
Convert a vendor ID / message type ID tuple to the human-readable form of the message type...
operator ID -> operator name
const char * nmsg_msgmod_vid_to_vname(unsigned vid)
Convert a numeric vendor ID to its human-readable name.
nmsg_msgmod_t nmsg_msgmod_lookup(unsigned vid, unsigned msgtype)
Determine which nmsg_msgmod is responsible for a given vid/msgtype tuple, if any. ...
const char * nmsg_alias_by_key(nmsg_alias_e ae, unsigned key)
Look up an alias by key.