From: Julien Desfossez Date: Mon, 26 Mar 2012 20:41:56 +0000 (-0400) Subject: API Fix : handle id to use the public functions X-Git-Tag: v1.0.0-rc1~24 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=e3d12cf93f067601df4179ef4b7e2a30aa0065f7;ds=sidebyside API Fix : handle id to use the public functions The API functions were designed to be used with struct trace_handle as parameters, but no public function returns such a struct. This patch fixes that by allowing the user to pass the context and the handle_id. Acked-by: Yannick Brosseau Signed-off-by: Julien Desfossez Signed-off-by: Mathieu Desnoyers --- diff --git a/include/babeltrace/trace-handle.h b/include/babeltrace/trace-handle.h index 85b113aa..d188cb70 100644 --- a/include/babeltrace/trace-handle.h +++ b/include/babeltrace/trace-handle.h @@ -32,26 +32,21 @@ */ struct bt_trace_handle; -/* - * bt_trace_handle_get_id: returns the id associated to the handle. - */ -int bt_trace_handle_get_id(struct bt_trace_handle *th); - /* * bt_trace_handle_get_path : returns the path of a trace_handle. */ -const char *bt_trace_handle_get_path(struct bt_trace_handle *th); +const char *bt_trace_handle_get_path(struct bt_context *ctx, int handle_id); /* * bt_trace_handle_get_timestamp_begin : returns the beginning timestamp * of a trace. */ -uint64_t bt_trace_handle_get_timestamp_begin(struct bt_trace_handle *th); +uint64_t bt_trace_handle_get_timestamp_begin(struct bt_context *ctx, int handle_id); /* * bt_trace_handle_get_timestamp_end : returns the end timestamp of a * trace. */ -uint64_t bt_trace_handle_get_timestamp_end(struct bt_trace_handle *th); +uint64_t bt_trace_handle_get_timestamp_end(struct bt_context *ctx, int handle_id); #endif /* _BABELTRACE_TRACE_HANDLE_H */ diff --git a/lib/trace-handle.c b/lib/trace-handle.c index 5a8a2192..6ba3ec20 100644 --- a/lib/trace-handle.c +++ b/lib/trace-handle.c @@ -46,17 +46,29 @@ int bt_trace_handle_get_id(struct bt_trace_handle *th) return th->id; } -const char *bt_trace_handle_get_path(struct bt_trace_handle *th) +const char *bt_trace_handle_get_path(struct bt_context *ctx, int handle_id) { - return th->path; + struct bt_trace_handle *handle; + + handle = g_hash_table_lookup(ctx->trace_handles, + (gpointer) (unsigned long) handle_id); + return handle->path; } -uint64_t bt_trace_handle_get_timestamp_begin(struct bt_trace_handle *th) +uint64_t bt_trace_handle_get_timestamp_begin(struct bt_context *ctx, int handle_id) { - return th->timestamp_begin; + struct bt_trace_handle *handle; + + handle = g_hash_table_lookup(ctx->trace_handles, + (gpointer) (unsigned long) handle_id); + return handle->timestamp_begin; } -uint64_t bt_trace_handle_get_timestamp_end(struct bt_trace_handle *th) +uint64_t bt_trace_handle_get_timestamp_end(struct bt_context *ctx, int handle_id) { - return th->timestamp_end; + struct bt_trace_handle *handle; + + handle = g_hash_table_lookup(ctx->trace_handles, + (gpointer) (unsigned long) handle_id); + return handle->timestamp_end; }