X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Fdoc%2Fdeveloper%2Fhook_prio.txt;h=910d86b62bdfc56edf653c35eb3cf1578f9a36e6;hb=0b636d165963784bdf10a088ab5ff13ca472a381;hp=349a8ec5d907ea760e466809681eb11e42d4fa83;hpb=6ea2aecbb240d0180828fa97d50ad17facb22fa1;p=lttv.git diff --git a/ltt/branches/poly/doc/developer/hook_prio.txt b/ltt/branches/poly/doc/developer/hook_prio.txt index 349a8ec5..910d86b6 100644 --- a/ltt/branches/poly/doc/developer/hook_prio.txt +++ b/ltt/branches/poly/doc/developer/hook_prio.txt @@ -8,28 +8,17 @@ Seeing that a very precise hook call ordering is needed when processing events this document defines a new type and interface that permits to merge all kind of hooks, eventually sorted by the priority associated to them. -As the LttvHooksById has never been used up to this point in the project, I -doubt that any real need for it exists. If we still want to implement it, it -would require to create temporary by_id hook lists, add all the specific by_id -hooks and the main hooks to it, and sort it before the traceset reading starts. - -- Type LttvHooksPrio - -This is a new type containing hooks associated with a priority. It has its own -interface which pretty much looks like the one found in hook.h, plus the fact -that a priority is associated with each hook. (lttv_hooks_prio_add, -lttv_hooks_prio_call, lttv_hooks_prio_remove are sample names of functions -offered by this interface) The container for this type would be a garray, just -like hook.c, but a lttv_hooks_prio_sort would be required in order to sort the -array before using lttv_hooks_prio_call. - -The viewers will just have to pass hooks to the main window through this type, -using the hookprio.h interface to manipulate it. Then, the main window will add -them and remove them from the context to deliver exactly the events requested by -each viewer through process traceset. - -If we want to make this data type more encapsulated, we could call -lttv_hooks_prio_sort upon each modification to the structure. Then, a simple -lttv_hooks_prio_call would be assured to call the hooks in the right order. +- Type LttvHooks with priorities + +This is a modification to the actual LttvHooks that associates a priority with +each hook. The container for this type would be a garray, just like hook.c, but +hooks would be added at the right position in the list, by priority. Hooks in a +hook list are ordered by priority : from highest priority (0) to +lowest (99). The default priority is 50 (defined as LTTV_PRIO_DEFAULT). + +A new lttv_hooks_call_merge that will get the hooks from two hook lists in the +right order will deal with the multiple lists priority problem. + +