hooks reference count
[lttv.git] / ltt / branches / poly / doc / developer / requests_servicing_schedulers.txt
index a0d15ccc742dfd3ef3c139f1d25d5b6506c0f523..23644ba8563cb1016d25d737c300eb7a886d161c 100644 (file)
@@ -68,8 +68,10 @@ at the same time. Another difference is that the hook_data of theses requests
 will typically be NULL, and the typical hook function will be located in a
 library upon which the viewer depends.
 
-A viewer is informed of the completeness of its request by its after_request
-hook registered along with the events request.
+A viewer is informed of the completeness of part of its request by its
+after_traceset hook registered along with the events request. This hook is
+called after the end of each chunk : the viewer will see if the computed data
+suits its needs.
 
 
 Hooks Lists
@@ -81,6 +83,56 @@ from the list. Two hooks are identical if they have the same function pointer
 and hook_data.
 
 
+
+Implementation
+
+Ad Hoc Computation
+
+see lttvwindow_events_delivery.txt
+
+
+Hooks Lists
+
+need new ref_count field with each hook
+lttv_hook_add and lttv_hook_add_list must compare addition with present and
+increment ref counter if already present.
+
+lttv_hook_remove and remove_with_data must decrement ref_count is >1, or remove
+the element otherwise (==1).
+
+
+
+Background Scheduler
+
+Global traces
+
+Two global attributes per trace : 
+/traces/path_to_trace/LttvTrace
+  It is a pointer to the LttvTrace structure.
+/traces/path_to_trace/LttvBackgroundComputation
+
+struct _LttvBackgroundComputation {
+  GSList *events_requests;
+ /* A GSList * to the first events request of background computation for a
+  * trace. */
+  LttvTraceset *ts;
+ /* A factice traceset that contains just one trace */
+  LttvTracesetContext *tsc;
+ /* The traceset context that reads this trace */
+}
+
+
+
+
+Modify Traceset
+Points to the global traces. Opens new one only when no instance of the pathname
+exists.
+
+Modify LttvTrace ?
+
+Modify trace opening / close to make them create and destroy
+LttvBackgroundComputation (and call end requests hooks for servicing requests ?)
+
 EventsRequest Structure
 
 This structure is the element of the events requests pools. The viewer field is
@@ -96,5 +148,3 @@ to NULL instead. No particular hook_data is needed as this type of request does
 only modify trace related data structures which are available through the
 call_data.
 
-
-
This page took 0.024267 seconds and 4 git commands to generate.