Adjust the includes now that some paths have changed
[lttv.git] / ltt / branches / poly / lttv / modules / gui / statistics / statistics.c
index aef524e51e736499f0f8ff98c29063e6d5f0db84..d1726c0003639e6b05d34864badadb320d0217ad 100644 (file)
@@ -1,13 +1,31 @@
+/* This file is part of the Linux Trace Toolkit viewer
+ * Copyright (C) 2003-2004 XangXiu Yang
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License Version 2 as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, 
+ * MA 02111-1307, USA.
+ */
+
 #include <glib.h>
-#include <gmodule.h>
 #include <gtk/gtk.h>
 #include <gdk/gdk.h>
 
+#include <lttv/lttv.h>
 #include <lttv/module.h>
-#include <lttv/gtkTraceSet.h>
-#include <lttv/processTrace.h>
+#include <lttvgui/gtktraceset.h>
+#include <lttv/tracecontext.h>
 #include <lttv/hook.h>
-#include <lttv/common.h>
+#include <lttvgui/common.h>
 #include <lttv/state.h>
 #include <lttv/stats.h>
 
 
 #include <string.h>
 
-#include "../icons/hGuiStatisticInsert.xpm"
-
-#define g_info(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format)
-#define g_debug(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format)
+#include "hGuiStatisticInsert.xpm"
 
-#define PATH_LENGTH        256
+#define PATH_LENGTH        256  /* CHECK */
 
 static LttvModule *statistic_main_win_module;
 static GPtrArray  * statistic_traceset;
@@ -100,59 +115,6 @@ struct _StatisticViewerData{
 };
 
 
-/**
- * plugin's init function
- *
- * This function initializes the Statistic Viewer functionnality through the
- * gtkTraceSet API.
- */
-G_MODULE_EXPORT void init(LttvModule *self, int argc, char *argv[]) {
-
-  statistic_main_win_module = lttv_module_require(self, "mainwin", argc, argv);
-  
-  if(statistic_main_win_module == NULL){
-      g_critical("Can't load Statistic Viewer : missing mainwin\n");
-      return;
-  }
-
-  statistic_traceset = g_ptr_array_new ();
-
-  /* Register the toolbar insert button */
-  toolbar_item_reg(hGuiStatisticInsert_xpm, "Insert Statistic Viewer", h_gui_statistic);
-  
-  /* Register the menu item insert entry */
-  menu_item_reg("/", "Insert Statistic Viewer", h_gui_statistic);
-  
-}
-
-void statistic_destroy_walk(gpointer data, gpointer user_data)
-{
-  gui_statistic_destructor((StatisticViewerData*)data);
-}
-
-/**
- * plugin's destroy function
- *
- * This function releases the memory reserved by the module and unregisters
- * everything that has been registered in the gtkTraceSet API.
- */
-G_MODULE_EXPORT void destroy() {
-  int i;
-  
-  if(g_statistic_viewer_data_list){
-    g_slist_foreach(g_statistic_viewer_data_list, statistic_destroy_walk, NULL );    
-    g_slist_free(g_statistic_viewer_data_list);
-  }
-  g_ptr_array_free (statistic_traceset, TRUE);
-
-  /* Unregister the toolbar insert button */
-  toolbar_item_unreg(h_gui_statistic);
-  
-  /* Unregister the menu item insert entry */
-  menu_item_unreg(h_gui_statistic);
-}
-
-
 void
 gui_statistic_free(StatisticViewerData *statistic_viewer_data)
 { 
@@ -173,6 +135,7 @@ gui_statistic_destructor(StatisticViewerData *statistic_viewer_data)
 {
   /* May already been done by GTK window closing */
   if(GTK_IS_WIDGET(statistic_viewer_data->hpaned_v)){
+    gui_statistic_free(statistic_viewer_data);
     gtk_widget_destroy(statistic_viewer_data->hpaned_v);
     statistic_viewer_data = NULL;
   }
@@ -314,8 +277,8 @@ gui_statistic(MainWindow *parent_window, LttvTracesetSelector * s, char* key)
         &statistic_viewer_data->time_span);
   
   if(statistic_viewer_data->calculate_stats){
-    if(lttv_stats_load_statistics(statistic_viewer_data->stats))
-      statistic_viewer_data->calculate_stats = FALSE;
+    //if(lttv_stats_load_statistics(statistic_viewer_data->stats))
+    //  statistic_viewer_data->calculate_stats = FALSE;
   }
 
   if(statistic_viewer_data->calculate_stats == FALSE){
@@ -406,6 +369,10 @@ void show_traceset_stats(StatisticViewerData * statistic_viewer_data)
 
   if(tscs->stats == NULL) return;
 
+  ts = tscs->parent.parent.ts;
+  nb = lttv_traceset_number(ts);
+  if(nb == 0)return;
+
   gtk_tree_store_append (store, &iter, NULL);  
   gtk_tree_store_set (store, &iter,
           NAME_COLUMN, "Traceset statistics",
@@ -417,9 +384,6 @@ void show_traceset_stats(StatisticViewerData * statistic_viewer_data)
   show_tree(statistic_viewer_data, tscs->stats, &iter);
 
   //show stats for all traces
-  ts = tscs->parent.parent.ts;
-  nb = lttv_traceset_number(ts);
-  
   for(i = 0 ; i < nb ; i++) {
     tcs = (LttvTraceStats *)(LTTV_TRACESET_CONTEXT(tscs)->traces[i]);
     desc = ltt_trace_system_description(tcs->parent.parent.t);    
@@ -564,7 +528,7 @@ gboolean statistic_show_viewer(void * hook_data, void * call_data)
     show_traceset_stats(statistic_viewer_data);
     if(statistic_viewer_data->calculate_stats){
       statistic_remove_context_hooks(statistic_viewer_data,tsc);
-      lttv_stats_save_statistics((LttvTracesetStats*)tsc);
+      //lttv_stats_save_statistics((LttvTracesetStats*)tsc);
     }
   }
 
@@ -575,8 +539,8 @@ gboolean statistic_traceset_changed(void * hook_data, void * call_data)
 {
   StatisticViewerData *statistic_viewer_data = (StatisticViewerData*) hook_data;
   
-  //  gtk_tree_store_clear (statistic_viewer_data->store_m);  
-  //  statistic_viewer_data->shown = FALSE;
+  gtk_tree_store_clear (statistic_viewer_data->store_m);  
+  statistic_viewer_data->shown = FALSE;
 
   return FALSE;
 }
@@ -584,7 +548,7 @@ gboolean statistic_traceset_changed(void * hook_data, void * call_data)
 void statistic_add_context_hooks(StatisticViewerData * statistic_viewer_data, 
            LttvTracesetContext * tsc)
 {
-  gint i, j, nbi, nb_tracefile, nb_control, nb_per_cpu;
+  gint i, j, nbi, nb_tracefile;
   LttTrace *trace;
   LttvTraceContext *tc;
   LttvTracefileContext *tfc;
@@ -607,19 +571,14 @@ void statistic_add_context_hooks(StatisticViewerData * statistic_viewer_data,
     trace = tc->t;
     //if there are hooks for trace, add them here
 
-    nb_control = ltt_trace_control_tracefile_number(trace);
-    nb_per_cpu = ltt_trace_per_cpu_tracefile_number(trace);
-    nb_tracefile = nb_control + nb_per_cpu;
+    nb_tracefile = ltt_trace_control_tracefile_number(trace) +
+        ltt_trace_per_cpu_tracefile_number(trace);
     
     for(j = 0 ; j < nb_tracefile ; j++) {
       tf_s = lttv_trace_selector_tracefile_get(t_s,j);
       selected = lttv_tracefile_selector_get_selected(tf_s);
       if(!selected) continue;
-      
-      if(j < nb_control)
-  tfc = tc->control_tracefiles[j];
-      else
-  tfc = tc->per_cpu_tracefiles[j - nb_control];
+      tfc = tc->tracefiles[j];
       
       //if there are hooks for tracefile, add them here
       //      lttv_tracefile_context_add_hooks(tfc, NULL,NULL,NULL,NULL,
@@ -636,7 +595,7 @@ void statistic_add_context_hooks(StatisticViewerData * statistic_viewer_data,
 void statistic_remove_context_hooks(StatisticViewerData * statistic_viewer_data, 
         LttvTracesetContext * tsc)
 {
-  gint i, j, nbi, nb_tracefile, nb_control, nb_per_cpu;
+  gint i, j, nbi, nb_tracefile;
   LttTrace *trace;
   LttvTraceContext *tc;
   LttvTracefileContext *tfc;
@@ -659,19 +618,14 @@ void statistic_remove_context_hooks(StatisticViewerData * statistic_viewer_data,
     trace = tc->t;
     //if there are hooks for trace, remove them here
 
-    nb_control = ltt_trace_control_tracefile_number(trace);
-    nb_per_cpu = ltt_trace_per_cpu_tracefile_number(trace);
-    nb_tracefile = nb_control + nb_per_cpu;
+    nb_tracefile = ltt_trace_control_tracefile_number(trace) +
+        ltt_trace_per_cpu_tracefile_number(trace);
     
     for(j = 0 ; j < nb_tracefile ; j++) {
       tf_s = lttv_trace_selector_tracefile_get(t_s,j);
       selected = lttv_tracefile_selector_get_selected(tf_s);
       if(!selected) continue;
-      
-      if(j < nb_control)
-  tfc = tc->control_tracefiles[j];
-      else
-  tfc = tc->per_cpu_tracefiles[j - nb_control];
+      tfc = tc->tracefiles[j];
       
       //if there are hooks for tracefile, remove them here
       //      lttv_tracefile_context_remove_hooks(tfc, NULL,NULL,NULL,NULL,
@@ -685,3 +639,53 @@ void statistic_remove_context_hooks(StatisticViewerData * statistic_viewer_data,
 }
 
 
+/**
+ * plugin's init function
+ *
+ * This function initializes the Statistic Viewer functionnality through the
+ * gtkTraceSet API.
+ */
+static void init() {
+
+  statistic_traceset = g_ptr_array_new ();
+
+  /* Register the toolbar insert button */
+  toolbar_item_reg(hGuiStatisticInsert_xpm, "Insert Statistic Viewer", h_gui_statistic);
+  
+  /* Register the menu item insert entry */
+  menu_item_reg("/", "Insert Statistic Viewer", h_gui_statistic);
+  
+}
+
+void statistic_destroy_walk(gpointer data, gpointer user_data)
+{
+  gui_statistic_destructor((StatisticViewerData*)data);
+}
+
+/**
+ * plugin's destroy function
+ *
+ * This function releases the memory reserved by the module and unregisters
+ * everything that has been registered in the gtkTraceSet API.
+ */
+static void destroy() {
+  int i;
+  
+  if(g_statistic_viewer_data_list){
+    g_slist_foreach(g_statistic_viewer_data_list, statistic_destroy_walk, NULL );    
+    g_slist_free(g_statistic_viewer_data_list);
+  }
+  g_ptr_array_free (statistic_traceset, TRUE);
+
+  /* Unregister the toolbar insert button */
+  toolbar_item_unreg(h_gui_statistic);
+  
+  /* Unregister the menu item insert entry */
+  menu_item_unreg(h_gui_statistic);
+}
+
+
+LTTV_MODULE("guistatistics", "Statistics viewer", \
+    "Graphical module to view statistics about processes, CPUs and systems", \
+    init, destroy, "mainwin")
+
This page took 0.025118 seconds and 4 git commands to generate.