X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Flttvwindow%2Flttvwindow%2Finit_module.c;h=89d7fea7e03e0227ea37aca04706ea5c1d4f5ff1;hb=91fd6881c35fd1146aafc67a803626f733cbeb14;hp=7b2d8c7def60aa095ec740243466901a56bbace1;hpb=b052368a0d53ff62ed9110fbafdb857a2b034ca8;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/init_module.c b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/init_module.c index 7b2d8c7d..89d7fea7 100644 --- a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/init_module.c +++ b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/init_module.c @@ -88,7 +88,7 @@ static char *a_trace; void lttv_trace_option(void *hook_data) { LttTrace *trace; - gchar *abs_path; + gchar abs_path[PATH_MAX]; get_absolute_pathname(a_trace, abs_path); g_init_trace = lttvwindowtraces_get_trace_by_name(abs_path); @@ -180,16 +180,37 @@ static void init() { lttv_hooks_add(main_hooks, window_creation_hook, NULL, LTTV_PRIO_DEFAULT); - LttvHooks *hook_adder = lttv_hooks_new(); - lttv_hooks_add(hook_adder, lttv_state_save_hook_add_event_hooks, NULL, - LTTV_PRIO_DEFAULT); - LttvHooks *hook_remover = lttv_hooks_new(); - lttv_hooks_add(hook_remover, lttv_state_save_hook_remove_event_hooks, - NULL, LTTV_PRIO_DEFAULT); - /* Add state computation background hook adder to attributes */ - lttvwindowtraces_register_computation_hooks(g_quark_from_string("state"), - NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, - hook_adder, hook_remover); + { + /* Register state calculator */ + LttvHooks *hook_adder = lttv_hooks_new(); + lttv_hooks_add(hook_adder, lttv_state_save_hook_add_event_hooks, NULL, + LTTV_PRIO_DEFAULT); + LttvHooks *hook_remover = lttv_hooks_new(); + lttv_hooks_add(hook_remover, lttv_state_save_hook_remove_event_hooks, + NULL, LTTV_PRIO_DEFAULT); + /* Add state computation background hook adder to attributes */ + lttvwindowtraces_register_computation_hooks(g_quark_from_string("state"), + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + hook_adder, hook_remover); + } + + { + /* Register statistics calculator */ + LttvHooks *hook_adder = lttv_hooks_new(); + lttv_hooks_add(hook_adder, lttv_stats_hook_add_event_hooks, NULL, + LTTV_PRIO_DEFAULT); + LttvHooks *hook_remover = lttv_hooks_new(); + lttv_hooks_add(hook_remover, lttv_stats_hook_remove_event_hooks, + NULL, LTTV_PRIO_DEFAULT); + LttvHooks *after_request = lttv_hooks_new(); + lttv_hooks_add(after_request, lttv_stats_sum_traceset_hook, NULL, + LTTV_PRIO_DEFAULT); + /* Add state computation background hook adder to attributes */ + lttvwindowtraces_register_computation_hooks(g_quark_from_string("stats"), + NULL, NULL, NULL, NULL, NULL, NULL, NULL, + after_request, NULL, NULL, + hook_adder, hook_remover); + } } void @@ -212,7 +233,9 @@ static void destroy() { LttvTrace *trace; GSList *iter = NULL; + lttvwindowtraces_unregister_requests(g_quark_from_string("stats")); lttvwindowtraces_unregister_requests(g_quark_from_string("state")); + lttvwindowtraces_unregister_computation_hooks(g_quark_from_string("stats")); lttvwindowtraces_unregister_computation_hooks(g_quark_from_string("state")); lttv_option_remove("trace");