Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
afw_trace.c
Go to the documentation of this file.
1 // See the 'COPYING' file in the project root for licensing information.
2 /*
3  * Adaptive Framework Trace
4  *
5  * Copyright (c) 2010-2023 Clemson University
6  *
7  */
8 
9 
15 #include "afw_internal.h"
16 
17 
18 
19 /* Write trace. */
20 AFW_DEFINE(void)
22  afw_log_priority_t priority,
24  const afw_utf8_z_t *source_z,
25  const afw_utf8_t *message,
26  afw_xctx_t *xctx)
27 {
28  const afw_utf8_t *msg;
29 
30  msg = message;
31  if (rti) {
32  msg = afw_utf8_printf(xctx->p, xctx,
33  "Trace[%" AFW_UTF8_FMT ":%" AFW_UTF8_FMT "] %" AFW_UTF8_FMT,
34  AFW_UTF8_FMT_ARG(&rti->interface_name),
35  AFW_UTF8_FMT_ARG(&rti->implementation_id),
36  AFW_UTF8_FMT_ARG(message));
37  }
38  afw_log_write(xctx->env->log, priority,
39  source_z, msg, xctx);
40 }
41 
42 
43 /* Write trace using a printf style format. */
44 AFW_DEFINE(void)
46  afw_log_priority_t priority,
48  const afw_utf8_z_t * source_z,
49  afw_xctx_t *xctx,
50  const afw_utf8_z_t * format_z,
51  ...)
52 {
53  va_list ap;
54  const afw_utf8_t *message;
55 
56  va_start(ap, format_z);
57  message = afw_utf8_printf_v(format_z, ap, xctx->p, xctx);
58  afw_trace_write(priority, rti, source_z, message, xctx);
59  va_end(ap);
60 }
61 
62 
63 /* Write trace using a printf style format and va_list. */
64 AFW_DEFINE(void)
66  afw_log_priority_t priority,
68  const afw_utf8_z_t *source_z,
69  const afw_utf8_z_t *format_z,
70  va_list ap,
71  afw_xctx_t *xctx)
72 {
73  const afw_utf8_t *message;
74 
75  message = afw_utf8_printf_v(format_z, ap, xctx->p, xctx);
76  afw_trace_write(priority, rti, source_z, message, xctx);
77 }
78 
79 /* Write trace from zero terminate string. */
80 AFW_DEFINE(void)
82  afw_log_priority_t priority,
84  const afw_utf8_z_t * source_z,
85  const afw_utf8_z_t * message_z,
86  afw_xctx_t *xctx)
87 {
88  afw_utf8_t message;
89 
90  message.s = message_z;
91  message.len = strlen(message_z);
92  afw_trace_write(priority, rti, source_z, &message, xctx);
93 }
AFW_DEFINE(const afw_object_t *)
Adaptive Framework Core Internal.
#define AFW_UTF8_FMT_ARG(A_STRING)
Convenience Macro for use with AFW_UTF8_FMT to specify arg.
Definition: afw_common.h:605
#define AFW_UTF8_FMT
Format string specifier used for afw_utf8_t.
Definition: afw_common.h:588
afw_utf8_octet_t afw_utf8_z_t
NFC normalized UTF-8 null terminated string.
Definition: afw_common.h:523
enum afw_log_priority_e afw_log_priority_t
Log levels. See afw_log.h for more information.
#define afw_log_write(instance, priority, source_z, message, xctx)
Call method write of interface afw_log.
afw_trace_write(afw_log_priority_t priority, const afw_interface_implementation_rti_t *rti, const afw_utf8_z_t *source_z, const afw_utf8_t *message, afw_xctx_t *xctx)
Write trace.
Definition: afw_trace.c:21
afw_trace_write_fz(afw_log_priority_t priority, const afw_interface_implementation_rti_t *rti, const afw_utf8_z_t *source_z, afw_xctx_t *xctx, const afw_utf8_z_t *format_z,...)
Write trace using a printf style format.
Definition: afw_trace.c:45
afw_trace_write_z(afw_log_priority_t priority, const afw_interface_implementation_rti_t *rti, const afw_utf8_z_t *source_z, const afw_utf8_z_t *message_z, afw_xctx_t *xctx)
Write trace from zero terminate string.
Definition: afw_trace.c:81
afw_trace_write_vz(afw_log_priority_t priority, const afw_interface_implementation_rti_t *rti, const afw_utf8_z_t *source_z, const afw_utf8_z_t *format_z, va_list ap, afw_xctx_t *xctx)
Write trace using a printf style format and va_list.
Definition: afw_trace.c:65
afw_utf8_printf_v(const afw_utf8_z_t *format, va_list arg, const afw_pool_t *p, afw_xctx_t *xctx)
Create a utf-8 string using a c format string in specified pool.
Definition: afw_utf8.c:477
afw_utf8_printf(const afw_pool_t *p, afw_xctx_t *xctx, const afw_utf8_z_t *format,...)
Create a utf-8 string using a c format string in specified pool.
Definition: afw_utf8.c:459
Interface Implementation Run Time Information.
NFC normalized UTF-8 string.
Definition: afw_common.h:545
Interface afw_xctx public struct.