whole new time bar, plus some additions to control flow viewer.. this is work in...
[lttv.git] / ltt / branches / poly / lttv / modules / gui / lttvwindow / lttvwindow / lttvwindow.h
index a4956331e235030b63efe94c0d0530119255d90a..9711f561b68805d81c1658119a959daa8d4ddb97 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,7 +116,6 @@ 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.
@@ -159,7 +152,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.
 
@@ -400,6 +393,60 @@ void lttvwindow_unregister_traceset_notify(Tab *tab,
                                            gpointer    hook_data);
 
 
+/**
+ * Function to register a hook function for a viewer be completely redrawn.
+ * 
+ * @param tab viewer's tab 
+ * @param hook hook function of the viewer.
+ * @param hook_data hook data associated with the hook function.
+ */
+
+void lttvwindow_register_redraw_notify(Tab *tab,
+    LttvHook hook, gpointer hook_data);
+
+/**
+ * Function to unregister a hook function for a viewer be completely redrawn.
+ *
+ * @param tab viewer's tab 
+ * @param hook hook function of the viewer.
+ * @param hook_data hook data associated with the hook function.
+ */
+
+void lttvwindow_unregister_redraw_notify(Tab *tab,
+              LttvHook hook, gpointer hook_data);
+
+
+/**
+ * Function to register a hook function for a viewer to re-do the events
+ * requests for the needed interval.
+ *
+ * This action is typically done after a "stop".
+ *
+ * The typical hook will remove all current requests for the viewer
+ * and make requests for missing information.
+ * 
+ * @param tab viewer's tab 
+ * @param hook hook function of the viewer.
+ * @param hook_data hook data associated with the hook function.
+ */
+
+void lttvwindow_register_continue_notify(Tab *tab,
+    LttvHook hook, gpointer hook_data);
+
+
+/**
+ * Function to unregister a hook function for a viewer to re-do the events
+ * requests for the needed interval.
+ *
+ * @param tab viewer's tab 
+ * @param hook hook function of the viewer.
+ * @param hook_data hook data associated with the hook function.
+ */
+
+void lttvwindow_unregister_continue_notify(Tab *tab,
+              LttvHook hook, gpointer hook_data);
+
+
 /**
  * Function to register a hook function for a viewer to set/update its 
  * filter. 
@@ -508,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);
 
 
 /**
@@ -566,15 +602,15 @@ void lttvwindow_report_focus(Tab *tab,
 
 
 /* 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             */
   LttvHooks                   *before_chunk_traceset; /* Unset : NULL       */
@@ -590,7 +626,7 @@ typedef struct _EventsRequest {
 } EventsRequest;
 
 /* Maximum number of events to proceed at once in a chunk */
-#define CHUNK_NUM_EVENTS 50000
+#define CHUNK_NUM_EVENTS 200
 
 
 /**
@@ -606,13 +642,16 @@ typedef struct _EventsRequest {
  *
  * end_time, end_position and num_events can all be defined. The first one
  * to occur will be used as end criterion.
+ *
+ * The events_request memory will be managed by the main window once its
+ * pointer is passed by this function.
  * 
  * @param tab the tab the viewer belongs to.
  * @param events_requested Details about the event request.
  */
 
 void lttvwindow_events_request(Tab                  *tab,
-                               const EventsRequest  *events_request);
+                               EventsRequest  *events_request);
 
 /**
  * Function to remove data requests related to a viewer.
@@ -628,66 +667,24 @@ void lttvwindow_events_request_remove_all(Tab            *tab,
                                           gconstpointer   viewer);
 
 
-typedef struct _BackgroundRequest {
-  gchar *hook_path; /* Hook path in global attributes, where all standard hooks
-                       are : i.e. /TraceState/Statistics/ModuleName */
-  gchar *trace_path; /* path_to_trace */
-} BackgroundRequest;
-
-typedef struct _BackgroundNotify {
-  gchar                       *trace_path; /* path_to_trace */
-  LttTime                      notify_time;
-  LttvTracesetContextPosition *notify_position;
-  LttvHooks                   *notify; /* Hook to call when the notify is
-                                          passed, or at the end of trace */
-} BackgroundNotify;
-
-/**
- * Function to request data from a specific trace
- * 
- * @param bg_request Request specification
- */
-
-void lttvwindow_background_request_queue(const BackgroundRequest  *bg_request);
-
-/**
- * Register a callback to be called when requested data is passed in the next
- * queued background processing.
- * 
- * @param bg_request Request specification
- */
-
-void lttvwindow_background_notify_queue(const BackgroundNotify  *bg_notify);
-
-
-/**
- * Register a callback to be called when requested data is passed in the current
- * background processing.
- * 
- * @param bg_request Request specification
- */
-
-void lttvwindow_background_notify_current(const BackgroundNotify  *bg_notify);
-
-
 /**
  * Function to get the current time window of the current tab.
  * 
  * @param tab the tab the viewer belongs to.
- * @return a pointer to the current tab's time interval.
+ * @return the current tab's time interval.
  */
 
-const TimeWindow *lttvwindow_get_time_window(Tab *tab);
+TimeWindow lttvwindow_get_time_window(Tab *tab);
 
 
 /**
  * Function to get the current time of the current tab.
  *
  * @param tab the tab the viewer belongs to.
- * @return a pointer to the current tab's current time.
+ * @return the current tab's current time.
  */
 
-const LttTime *lttvwindow_get_current_time(Tab *tab);
+LttTime lttvwindow_get_current_time(Tab *tab);
 
 
 /**
This page took 0.025856 seconds and 4 git commands to generate.