control flow now uses by_id hooks : performance fix
[lttv.git] / ltt / branches / poly / lttv / modules / gui / lttvwindow / lttvwindow / lttvwindow.h
index 939b08d3a6e484694b54ee9bcff428af72faed1d..85ecb29c53501125538d0bceef036196588b8d74 100644 (file)
@@ -102,12 +102,6 @@ dividor :     This notice links the positions of the horizontal dividors
               typically showing processes, cpus, ...
               
 
-FIXME : Add background computation explanation here
-background_init: prepare for background computation (comes after show_end).
-process_trace for background: done in small chunks in gtk_idle, hooks called.
-background_end: remove the hooks and perhaps update the window.
-
-
 Reporting Changes to the Main Window
 
 In most cases, the enclosing window knows about updates such as described
@@ -122,12 +116,9 @@ consequently call current_time_notify for each of its contained viewers.
 
 Available report methods are :
 
-lttvwindow_report_status : reports the text of the status bar.
 lttvwindow_report_time_window : reports the new time window.
 lttvwindow_report_current_time : reports the new current time.
 lttvwindow_report_dividor : reports the new horizontal dividor's position.
-lttvwindow_report_focus : One on the widgets in the viewer has the keyboard's
-                          focus from GTK.
 
 
 
@@ -159,7 +150,7 @@ the main window will look for the stop_flag and remove the EventRequests
 from its lists, calling the process_traceset_end for this request (it
 removes hooks from the context and calls the after hooks).
 
-It no stop_flag is rose, the end timestamp, end position or number
+It no stop_flag is risen, the end timestamp, end position or number
 of events to read has to be reached to determine the end of the
 request. Otherwise, the end of traceset does determine it.
 
@@ -271,11 +262,11 @@ FIXME : explain other important events
 
 /* Module Related API */
 
+/* GQuark containing constructors of viewers in global attributes */
+extern GQuark LTTV_VIEWER_CONSTRUCTORS;
 
 /* constructor a the viewer */
-//FIXME explain LttvTracesetSelector and key
-typedef GtkWidget * (*lttvwindow_viewer_constructor)
-                (Tab *tab, LttvTracesetSelector * s, char *key);
+typedef GtkWidget* (*lttvwindow_viewer_constructor)(Tab *tab);
 
 
 /**
@@ -285,7 +276,8 @@ typedef GtkWidget * (*lttvwindow_viewer_constructor)
  * window.
  * 
  * It should be called by init function of the module.
- * 
+ *
+ * @param name name of the viewer : mainly used as tag for constructor
  * @param menu_path path of the menu item. NULL : no menu entry.
  * @param menu_text text of the menu item.
  * @param pixmap Image shown on the toolbar item. NULL : no button.
@@ -294,7 +286,8 @@ typedef GtkWidget * (*lttvwindow_viewer_constructor)
  */
 
 void lttvwindow_register_constructor
-                            (char *  menu_path, 
+                            (char * name,
+                             char *  menu_path, 
                              char *  menu_text,
                              char ** pixmap,
                              char *  tooltip,
@@ -562,37 +555,26 @@ void lttvwindow_unregister_dividor(Tab *tab,
 
 
 
-/**
- * This method reports the information to show on the status bar in the
- * main window.
- * 
- * @param tab the tab the viewer belongs to.
- * @param info the message which will be shown in the status bar.
- */
-
-void lttvwindow_report_status(Tab *tab, const char *info);
-
-
 /**
  * Function to set the time interval of the current tab.a
  *
  * @param tab the tab the viewer belongs to.
- * @param time_interval pointer to the time interval value.
+ * @param time_interval new time window.
  */
 
 void lttvwindow_report_time_window(Tab *tab,
-                                   const TimeWindow *time_window);
+                                   TimeWindow time_window);
 
 /**
  * Function to set the current time/event of the current tab.
  * It will be called by a viewer's signal handle associated with 
  * the button-release-event signal
  * @param tab the tab the viewer belongs to.
- * @param time a pointer where time is stored.
+ * @param new current time.
  */
 
 void lttvwindow_report_current_time(Tab *tab, 
-                                    const LttTime *time);
+                                    LttTime time);
 
 
 /**
@@ -606,31 +588,21 @@ void lttvwindow_report_current_time(Tab *tab,
 
 void lttvwindow_report_dividor(Tab *tab, gint position);
 
-/**
- * Function to set the focused viewer of the tab.
- * It will be called by a viewer's signal handle associated with 
- * the grab_focus signal of all widgets in the viewer.
- *
- * @param tab the tab the viewer belongs to.
- * @param top_widget the top widget containing all the other widgets of the
- *                   viewer.
- */
-void lttvwindow_report_focus(Tab *tab, 
-                             GtkWidget  *top_widget);
-
 
 /* Structure sent to the events request hook */
-                                                /* Value considered as empty */
+                                                /* Value considered as empty*/
 typedef struct _EventsRequest {
   gpointer                     owner;           /* Owner of the request     */
   gpointer                     viewer_data;     /* Unset : NULL             */
-  gboolean                     servicing;       /* service in progress: TRUE */ 
-  LttTime                      start_time;/* Unset : { G_MAXUINT, G_MAXUINT }*/
+  gboolean                     servicing;       /* service in progress: TRUE*/ 
+  LttTime                      start_time;      /* Unset : ltt_time_infinite*/
   LttvTracesetContextPosition *start_position;  /* Unset : NULL             */
   gboolean                     stop_flag;       /* Continue:TRUE Stop:FALSE */
-  LttTime                      end_time;/* Unset : { G_MAXUINT, G_MAXUINT } */
+  LttTime                      end_time;        /* Unset : ltt_time_infinite*/
   guint                        num_events;      /* Unset : G_MAXUINT        */
   LttvTracesetContextPosition *end_position;    /* Unset : NULL             */
+  gint                         trace;           /* unset : -1               */
+  GArray                      *hooks;           /* Unset : NULL             */
   LttvHooks                   *before_chunk_traceset; /* Unset : NULL       */
   LttvHooks                   *before_chunk_trace;    /* Unset : NULL       */
   LttvHooks                   *before_chunk_tracefile;/* Unset : NULL       */
@@ -644,7 +616,7 @@ typedef struct _EventsRequest {
 } EventsRequest;
 
 /* Maximum number of events to proceed at once in a chunk */
-#define CHUNK_NUM_EVENTS 200
+#define CHUNK_NUM_EVENTS 500
 
 
 /**
@@ -692,7 +664,7 @@ void lttvwindow_events_request_remove_all(Tab            *tab,
  * @return the current tab's time interval.
  */
 
-TimeWindow lttvwindow_get_time_window(Tab *tab);
+__inline TimeWindow lttvwindow_get_time_window(Tab *tab);
 
 
 /**
This page took 0.025237 seconds and 4 git commands to generate.