X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Fstatistics%2Fstatistics.c;h=b9b341e9791dcaf96c7665beacb071136ed1ca71;hb=fef5cbca0bf128215cf4c4d1a58ac51fbbfb21e2;hp=46e5cec92fd5587087c191a358f81b6bab8f9c55;hpb=f37a2002e940e771ef47c9936f9b82b79e64d086;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/statistics/statistics.c b/ltt/branches/poly/lttv/modules/gui/statistics/statistics.c index 46e5cec9..b9b341e9 100644 --- a/ltt/branches/poly/lttv/modules/gui/statistics/statistics.c +++ b/ltt/branches/poly/lttv/modules/gui/statistics/statistics.c @@ -16,7 +16,12 @@ * MA 02111-1307, USA. */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include +#include #include #include @@ -52,7 +57,7 @@ static void request_background_data(StatisticViewerData *svd); GtkWidget *guistatistic_get_widget(StatisticViewerData *svd); //! Statistic Viewer's constructor hook -GtkWidget *h_gui_statistic(Tab *tab, LttvTracesetSelector * s, char * key); +GtkWidget *h_gui_statistic(Tab *tab); //! Statistic Viewer's constructor StatisticViewerData *gui_statistic(Tab *tab); //! Statistic Viewer's destructor @@ -163,9 +168,9 @@ static void request_background_data(StatisticViewerData *svd) * information. Happens when two viewers ask for it before servicing * starts. */ - lttvwindowtraces_background_request_remove(trace, "stats"); - lttvwindowtraces_background_request_queue(trace, - "stats"); + if(!lttvwindowtraces_background_request_find(trace, "stats")) + lttvwindowtraces_background_request_queue( + main_window_get_widget(svd->tab), trace, "stats"); lttvwindowtraces_background_notify_queue(svd, trace, ltt_time_infinite, @@ -180,6 +185,9 @@ static void request_background_data(StatisticViewerData *svd) background_ready_hook); } + } else { + /* ready */ + lttv_hooks_call(background_ready_hook, NULL); } } lttv_hooks_destroy(background_ready_hook); @@ -224,7 +232,7 @@ gui_statistic_destructor(StatisticViewerData *statistic_viewer_data) * @return The widget created. */ GtkWidget * -h_gui_statistic(Tab *tab, LttvTracesetSelector * s, char * key) +h_gui_statistic(Tab *tab) { StatisticViewerData* statistic_viewer_data = gui_statistic(tab) ; @@ -276,12 +284,11 @@ gui_statistic(Tab *tab) lttvwindow_register_traceset_notify(statistic_viewer_data->tab, statistic_traceset_changed, statistic_viewer_data); - request_background_data(statistic_viewer_data); - + statistic_viewer_data->statistic_hash = g_hash_table_new_full(g_str_hash, g_str_equal, statistic_destroy_hash_key, - statistic_destroy_hash_data); + NULL); statistic_viewer_data->hpaned_v = gtk_hpaned_new(); statistic_viewer_data->store_m = gtk_tree_store_new (N_COLUMNS, G_TYPE_STRING); @@ -328,6 +335,9 @@ gui_statistic(Tab *tab) gtk_container_add (GTK_CONTAINER (statistic_viewer_data->scroll_win_text), statistic_viewer_data->text_v); gtk_paned_pack2(GTK_PANED(statistic_viewer_data->hpaned_v), statistic_viewer_data->scroll_win_text, TRUE, FALSE); + gtk_container_set_border_width( + GTK_CONTAINER(statistic_viewer_data->hpaned_v), 1); + gtk_widget_show(statistic_viewer_data->scroll_win_tree); gtk_widget_show(statistic_viewer_data->scroll_win_text); gtk_widget_show(statistic_viewer_data->tree_v); @@ -345,6 +355,8 @@ gui_statistic(Tab *tab) g_statistic_viewer_data_list, statistic_viewer_data); + request_background_data(statistic_viewer_data); + return statistic_viewer_data; } @@ -388,15 +400,12 @@ void statistic_destroy_hash_key(gpointer key) g_free(key); } -void statistic_destroy_hash_data(gpointer data) -{ - // g_free(data); -} - +#ifdef DEBUG #include extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; +#endif //DEBUG void show_traceset_stats(StatisticViewerData * statistic_viewer_data) { @@ -433,11 +442,15 @@ void show_traceset_stats(StatisticViewerData * statistic_viewer_data) //show stats for all traces for(i = 0 ; i < nb ; i++) { tcs = (LttvTraceStats *)(LTTV_TRACESET_CONTEXT(tscs)->traces[i]); +#if 0 //FIXME desc = ltt_trace_system_description(tcs->parent.parent.t); - sprintf(trace_str, "Trace on system %s at time %d secs", + LttTime start_time = ltt_trace_system_description_trace_start_time(desc); + sprintf(trace_str, "Trace on system %s at time %lu.%09lu", ltt_trace_system_description_node_name(desc), - (ltt_trace_system_description_trace_start_time(desc)).tv_sec); - + start_time.tv_sec, + start_time.tv_nsec); +#endif //0 + sprintf(trace_str, g_quark_to_string(ltt_trace_name(tcs->parent.parent.t))); gtk_tree_store_append (store, &iter, NULL); gtk_tree_store_set (store, &iter,NAME_COLUMN,trace_str,-1); path = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); @@ -491,7 +504,6 @@ void show_statistic(StatisticViewerData * statistic_viewer_data, LttvAttribute* stats, GtkTextBuffer* buf) { int i, nb , flag; - LttvAttribute *subtree; LttvAttributeName name; LttvAttributeValue value; LttvAttributeType type; @@ -524,7 +536,7 @@ void show_statistic(StatisticViewerData * statistic_viewer_data, sprintf(type_value, " : %f\n", *value.v_double); break; case LTTV_TIME: - sprintf(type_value, " : %10u.%09u\n", value.v_time->tv_sec, + sprintf(type_value, " : %10lu.%09lu\n", value.v_time->tv_sec, value.v_time->tv_nsec); break; case LTTV_POINTER: @@ -660,7 +672,8 @@ void statistic_remove_context_hooks(StatisticViewerData * statistic_viewer_data, */ static void init() { - lttvwindow_register_constructor("/", + lttvwindow_register_constructor("guistatistics", + "/", "Insert Statistic Viewer", hGuiStatisticInsert_xpm, "Insert Statistic Viewer", @@ -684,7 +697,6 @@ void statistic_destroy_walk(gpointer data, gpointer user_data) * everything that has been registered in the gtkTraceSet API. */ static void destroy() { - int i; g_slist_foreach(g_statistic_viewer_data_list, statistic_destroy_walk, NULL ); g_slist_free(g_statistic_viewer_data_list);