Message ID | 20211111150321.85979-3-tz.stoyanov@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 322c548a3a7261ed37be342fbdf12bd4b9e26f5a |
Headers | show |
Series | Refactor APIs for creating output handler | expand |
On Thu, 11 Nov 2021 17:03:13 +0200 "Tzvetomir Stoyanov (VMware)" <tz.stoyanov@gmail.com> wrote: > +/** > + * tracecmd_output_set_msg - associated an output file handler with network message handler > + * @handle: output handler to a trace file. > + * @msg_handle: network handler, allocated by tracecmd_msg_handle_alloc() > + * > + * This API associates an output file handler with a network stream. All subsequent API calls Nit. You don't need to say "API". We know it's an API ;-) "Associate the output file handle @handle with a network stream @msg_handle. All transactions of @handle after this will send data over the network ... > + * with this output file handler will send data over the network using the @msg_handle, instead > + * of writing to a file. > + * This API must be called after the handler file version is set and before "This must be called after the handler ..." No need to update for this. I'll leave it be. But more FYI. We could always clean up the comments at a later time. This doesn't affect the API ;-) -- Steve > + * tracecmd_output_write_init(). > + * > + * Returns 0 on success, or -1 if the output file handler is not allocated or not in expected state. > + */ > +int tracecmd_output_set_msg(struct tracecmd_output *handler, struct tracecmd_msg_handle *msg_handle) > +{ > + if (!handler || handler->file_state != TRACECMD_FILE_ALLOCATED) > + return -1; > + > + handler->msg_handle = msg_handle; > + > + return 0; > +} > > static int select_file_version(struct tracecmd_output *handle, > struct tracecmd_input *ihandle)
diff --git a/lib/trace-cmd/include/private/trace-cmd-private.h b/lib/trace-cmd/include/private/trace-cmd-private.h index bed96657..49c8c138 100644 --- a/lib/trace-cmd/include/private/trace-cmd-private.h +++ b/lib/trace-cmd/include/private/trace-cmd-private.h @@ -270,6 +270,8 @@ struct tracecmd_option; struct tracecmd_msg_handle; struct tracecmd_output *tracecmd_output_allocate(int fd); +int tracecmd_output_set_msg(struct tracecmd_output *handler, + struct tracecmd_msg_handle *msg_handle); struct tracecmd_output *tracecmd_create_file_latency(const char *output_file, int cpus); struct tracecmd_output * tracecmd_create_init_file_glob(const char *output_file, diff --git a/lib/trace-cmd/trace-output.c b/lib/trace-cmd/trace-output.c index 3878b963..d73c4f99 100644 --- a/lib/trace-cmd/trace-output.c +++ b/lib/trace-cmd/trace-output.c @@ -918,6 +918,28 @@ struct tracecmd_output *tracecmd_output_allocate(int fd) return handle; } +/** + * tracecmd_output_set_msg - associated an output file handler with network message handler + * @handle: output handler to a trace file. + * @msg_handle: network handler, allocated by tracecmd_msg_handle_alloc() + * + * This API associates an output file handler with a network stream. All subsequent API calls + * with this output file handler will send data over the network using the @msg_handle, instead + * of writing to a file. + * This API must be called after the handler file version is set and before + * tracecmd_output_write_init(). + * + * Returns 0 on success, or -1 if the output file handler is not allocated or not in expected state. + */ +int tracecmd_output_set_msg(struct tracecmd_output *handler, struct tracecmd_msg_handle *msg_handle) +{ + if (!handler || handler->file_state != TRACECMD_FILE_ALLOCATED) + return -1; + + handler->msg_handle = msg_handle; + + return 0; +} static int select_file_version(struct tracecmd_output *handle, struct tracecmd_input *ihandle)
The new API associates previously created handler to message context with given output handler. The message context is used by the output handler to send data over a network, instead writing to a local file. tracecmd_output_allocate() Signed-off-by: Tzvetomir Stoyanov (VMware) <tz.stoyanov@gmail.com> --- .../include/private/trace-cmd-private.h | 2 ++ lib/trace-cmd/trace-output.c | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+)