X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Ftrigger%2Ftrigger.h;h=0c67abb0b03646ccbd287a162b8fb0884a8eec4d;hp=b2eab0e3da9fa10192b2f6a05da110c0178523c9;hb=75984389d346445a9bef561a0d8b46f281cde2fe;hpb=a58c490f0bff52a73717d31d04d1472629180de2 diff --git a/include/lttng/trigger/trigger.h b/include/lttng/trigger/trigger.h index b2eab0e3d..0c67abb0b 100644 --- a/include/lttng/trigger/trigger.h +++ b/include/lttng/trigger/trigger.h @@ -31,20 +31,68 @@ enum lttng_register_trigger_status { LTTNG_REGISTER_TRIGGER_STATUS_INVALID = -1, }; -/* The caller retains the ownership of both condition and action. */ +/* + * Create a trigger object associating a condition and an action. + * + * A trigger associates a condition and an action to take whenever the + * condition evaluates to true. Such actions can, for example, consist + * in the emission of a notification to clients listening through + * notification channels. + * + * The caller retains the ownership of both the condition and action + * and both must be kept alive for the lifetime of the trigger object. + * + * A trigger must be registered in order to become activate and can + * be destroyed after its registration. + * + * Returns a trigger object on success, NULL on error. + * Trigger objects must be destroyed using the lttng_trigger_destroy() + * function. + */ extern struct lttng_trigger *lttng_trigger_create( struct lttng_condition *condition, struct lttng_action *action); +/* + * Get the condition of a trigger. + * + * The caller acquires no ownership of the returned condition. + * + * Returns a condition on success, NULL on error. + */ extern struct lttng_condition *lttng_trigger_get_condition( struct lttng_trigger *trigger); +/* + * Get the action of a trigger. + * + * The caller acquires no ownership of the returned action. + * + * Returns an action on success, NULL on error. + */ extern struct lttng_action *lttng_trigger_get_action( struct lttng_trigger *trigger); +/* + * Destroy (frees) a trigger object. + */ extern void lttng_trigger_destroy(struct lttng_trigger *trigger); +/* + * Register a trigger to the session daemon. + * + * The trigger can be destroyed after this call. + * + * Return 0 on success, a negative LTTng error code on error. + */ extern int lttng_register_trigger(struct lttng_trigger *trigger); +/* + * Unregister a trigger from the session daemon. + * + * The trigger can be destroyed after this call. + * + * Return 0 on success, a negative LTTng error code on error. + */ extern int lttng_unregister_trigger(struct lttng_trigger *trigger); #ifdef __cplusplus