X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Ftrigger%2Ftrigger.h;h=feffc6a8f9fb0f1c05c8b1f19b9cb1f308988a7e;hb=ab5be9fa2eb5ba9600a82cd18fd3cfcbac69169a;hp=b2eab0e3da9fa10192b2f6a05da110c0178523c9;hpb=a58c490f0bff52a73717d31d04d1472629180de2;p=lttng-tools.git diff --git a/include/lttng/trigger/trigger.h b/include/lttng/trigger/trigger.h index b2eab0e3d..feffc6a8f 100644 --- a/include/lttng/trigger/trigger.h +++ b/include/lttng/trigger/trigger.h @@ -1,18 +1,8 @@ /* - * Copyright (C) 2017 - Jérémie Galarneau + * Copyright (C) 2017 Jérémie Galarneau * - * This library is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License, version 2.1 only, - * as published by the Free Software Foundation. + * SPDX-License-Identifier: LGPL-2.1-only * - * This library is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License - * for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this library; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef LTTNG_TRIGGER_H @@ -31,20 +21,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