X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Flttvwindow%2Flttvwindow%2Flttvwindowtraces.h;h=68fbc92108480cf6aeab122adf4b9694ca9230d3;hb=18206708bafbba3198bfb82cca97f17d70a05666;hp=a7d6d81feab41302e7f08b760b61651620edee23;hpb=8bc02ec867a018f18cda9fe362f8e49ca6db7c81;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindowtraces.h b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindowtraces.h index a7d6d81f..68fbc921 100644 --- a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindowtraces.h +++ b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/lttvwindowtraces.h @@ -44,8 +44,11 @@ extern LttvTraceInfo LTTV_TRACES, LTTV_AFTER_REQUEST, LTTV_EVENT_HOOK, LTTV_EVENT_HOOK_BY_ID, + LTTV_HOOK_ADDER, + LTTV_HOOK_REMOVER, LTTV_IN_PROGRESS, - LTTV_READY; + LTTV_READY, + LTTV_LOCK; @@ -153,4 +156,106 @@ void lttvwindowtraces_background_notify_current void lttvwindowtraces_background_notify_remove(gpointer owner); +/** + * Tells if the information computed by a module for a trace is ready. + * + * Must be checked before a background processing request. + * + * @param module_name A GQuark : the name of the module which computes the + * information. + * @param trace The trace for which the information is verified. + */ + +gboolean lttvwindowtraces_get_ready(LttvAttributeName module_name, + LttvTrace *trace); + +/** + * Tells if the information computed by a module for a trace is being processed. + * + * Must be checked before a background processing request. + * + * If it is effectively processed, the typical thing to do is to call + * lttvwindowtraces_background_notify_current to be notified when the current + * processing will be over. + * + * @param module_name A GQuark : the name of the module which computes the + * information. + * @param trace The trace for which the information is verified. + */ + +gboolean lttvwindowtraces_get_in_progress(LttvAttributeName module_name, + LttvTrace *trace); + +/** + * Register the background computation hooks for a specific module. It adds the + * computation hooks to the global attrubutes, under "computation/module name" + * + * @param module_name A GQuark : the name of the module which computes the + * information. + */ +void lttvwindowtraces_register_computation_hooks(LttvAttributeName module_name, + LttvHooks *before_chunk_traceset, + LttvHooks *before_chunk_trace, + LttvHooks *before_chunk_tracefile, + LttvHooks *after_chunk_traceset, + LttvHooks *after_chunk_trace, + LttvHooks *after_chunk_tracefile, + LttvHooks *before_request, + LttvHooks *after_request, + LttvHooks *event_hook, + LttvHooksById *event_hook_by_id, + LttvHooks *hook_adder, + LttvHooks *hook_remover); +/** + * Unregister the background computation hooks for a specific module. + * + * It also removes all the requests than can be currently processed by the + * background computation algorithm for all the traces (list_in and list_out). + * + * @param module_name A GQuark : the name of the module which computes the + * information. + */ + +void lttvwindowtraces_unregister_computation_hooks + (LttvAttributeName module_name); + + +/** + * It removes all the requests than can be currently processed by the + * background computation algorithm for all the traces (list_in and list_out). + * + * Leaves the flag to in_progress or none.. depending if current or queue + * + * @param module_name A GQuark : the name of the module which computes the + * information. + */ +void lttvwindowtraces_unregister_requests(LttvAttributeName module_name); + + +/** + * Lock a trace so no other instance can use it. + * + * @param trace The trace to lock. + * @return 0 on success, -1 if cannot get lock. + */ +gint lttvwindowtraces_lock(LttvTrace *trace); + + +/** + * Unlock a trace. + * + * @param trace The trace to unlock. + * @return 0 on success, -1 if cannot unlock (not locked ?). + */ +gint lttvwindowtraces_unlock(LttvTrace *trace); + +/** + * Verify if a trace is locked. + * + * @param trace The trace to verify. + * @return TRUE if locked, FALSE is unlocked. + */ +gint lttvwindowtraces_get_lock_state(LttvTrace *trace); + + #endif //LTTVWINDOWTRACES_H