X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Faction%2Faction-internal.h;h=71270a835cfd95a9d2d93141ef1d0d6c4542c66e;hb=ca806b0b247f;hp=0649333f2d4d73a85250fa573e6ceeb811b4e12e;hpb=a8940c5eb1046e84c10bb0cf72c0f2575a8c9e4e;p=lttng-tools.git diff --git a/include/lttng/action/action-internal.h b/include/lttng/action/action-internal.h index 0649333f2..71270a835 100644 --- a/include/lttng/action/action-internal.h +++ b/include/lttng/action/action-internal.h @@ -20,6 +20,9 @@ #include struct lttng_rate_policy; +struct mi_writer; +struct mi_lttng_error_query_callbacks; +struct lttng_trigger; typedef bool (*action_validate_cb)(struct lttng_action *action); typedef void (*action_destroy_cb)(struct lttng_action *action); @@ -35,6 +38,8 @@ typedef const struct lttng_rate_policy *(*action_get_rate_policy_cb)( typedef enum lttng_action_status (*action_add_error_query_results_cb)( const struct lttng_action *action, struct lttng_error_query_results *results); +typedef enum lttng_error_code (*action_mi_serialize_cb)( + const struct lttng_action *condition, struct mi_writer *writer); struct lttng_action { struct urcu_ref ref; @@ -45,6 +50,7 @@ struct lttng_action { action_destroy_cb destroy; action_get_rate_policy_cb get_rate_policy; action_add_error_query_results_cb add_error_query_results; + action_mi_serialize_cb mi_serialize; /* Internal use only. */ @@ -68,7 +74,6 @@ struct lttng_action_comm { int8_t action_type; } LTTNG_PACKED; -LTTNG_HIDDEN void lttng_action_init(struct lttng_action *action, enum lttng_action_type type, action_validate_cb validate, @@ -76,45 +81,34 @@ void lttng_action_init(struct lttng_action *action, action_equal_cb equal, action_destroy_cb destroy, action_get_rate_policy_cb get_rate_policy, - action_add_error_query_results_cb add_error_query_results); + action_add_error_query_results_cb add_error_query_results, + action_mi_serialize_cb mi); -LTTNG_HIDDEN bool lttng_action_validate(struct lttng_action *action); -LTTNG_HIDDEN int lttng_action_serialize(struct lttng_action *action, struct lttng_payload *buf); -LTTNG_HIDDEN ssize_t lttng_action_create_from_payload(struct lttng_payload_view *view, struct lttng_action **action); -LTTNG_HIDDEN bool lttng_action_is_equal(const struct lttng_action *a, const struct lttng_action *b); -LTTNG_HIDDEN void lttng_action_get(struct lttng_action *action); -LTTNG_HIDDEN void lttng_action_put(struct lttng_action *action); -LTTNG_HIDDEN const char* lttng_action_type_string(enum lttng_action_type action_type); -LTTNG_HIDDEN void lttng_action_increase_execution_request_count(struct lttng_action *action); -LTTNG_HIDDEN void lttng_action_increase_execution_count(struct lttng_action *action); -LTTNG_HIDDEN void lttng_action_increase_execution_failure_count(struct lttng_action *action); -LTTNG_HIDDEN bool lttng_action_should_execute(const struct lttng_action *action); -LTTNG_HIDDEN enum lttng_action_status lttng_action_add_error_query_results( const struct lttng_action *action, struct lttng_error_query_results *results); @@ -124,9 +118,14 @@ enum lttng_action_status lttng_action_add_error_query_results( * behavior to the generic error "execution failure counter" that all actions * (except list, which passes-through) provide. */ -LTTNG_HIDDEN enum lttng_action_status lttng_action_generic_add_error_query_results( const struct lttng_action *action, struct lttng_error_query_results *results); +enum lttng_error_code lttng_action_mi_serialize(const struct lttng_trigger *trigger, + const struct lttng_action *action, + struct mi_writer *writer, + const struct mi_lttng_error_query_callbacks + *error_query_callbacks, + struct lttng_dynamic_array *action_path_indexes); #endif /* LTTNG_ACTION_INTERNAL_H */