Lines Matching refs:ctx

49 u_log_context_init(struct u_log_context *ctx)
51 memset(ctx, 0, sizeof(*ctx));
61 u_log_context_destroy(struct u_log_context *ctx)
63 u_log_page_destroy(ctx->cur);
64 FREE(ctx->auto_loggers);
65 memset(ctx, 0, sizeof(*ctx));
74 u_log_add_auto_logger(struct u_log_context *ctx, u_auto_log_fn *callback,
78 REALLOC(ctx->auto_loggers,
79 sizeof(*new_auto_loggers) * ctx->num_auto_loggers,
80 sizeof(*new_auto_loggers) * (ctx->num_auto_loggers + 1));
86 unsigned idx = ctx->num_auto_loggers++;
87 ctx->auto_loggers = new_auto_loggers;
88 ctx->auto_loggers[idx].callback = callback;
89 ctx->auto_loggers[idx].data = data;
96 u_log_flush(struct u_log_context *ctx)
98 if (!ctx->num_auto_loggers)
101 struct u_log_auto_logger *auto_loggers = ctx->auto_loggers;
102 unsigned num_auto_loggers = ctx->num_auto_loggers;
105 ctx->num_auto_loggers = 0;
106 ctx->auto_loggers = NULL;
109 auto_loggers[i].callback(auto_loggers[i].data, ctx);
111 assert(!ctx->num_auto_loggers);
112 ctx->num_auto_loggers = num_auto_loggers;
113 ctx->auto_loggers = auto_loggers;
127 u_log_printf(struct u_log_context *ctx, const char *fmt, ...)
137 u_log_chunk(ctx, &str_chunk_type, str);
149 u_log_chunk(struct u_log_context *ctx, const struct u_log_chunk_type *type,
152 struct u_log_page *page = ctx->cur;
154 u_log_flush(ctx);
157 ctx->cur = CALLOC_STRUCT(u_log_page);
158 page = ctx->cur;
188 u_log_new_page_print(struct u_log_context *ctx, FILE *stream)
190 u_log_flush(ctx);
192 if (ctx->cur) {
193 u_log_page_print(ctx->cur, stream);
194 u_log_page_destroy(ctx->cur);
195 ctx->cur = NULL;
205 u_log_new_page(struct u_log_context *ctx)
207 u_log_flush(ctx);
209 struct u_log_page *page = ctx->cur;
210 ctx->cur = NULL;