X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fevent-rule%2Fevent-rule-internal.h;h=98d1f449d2e9000d6d781a6802275d8e74af45e7;hb=48a4000561343808724f7cb5fa8c131877489ccd;hp=dd2d7dd18636b1560c655bf2a08eb1a7ca4d3cf7;hpb=2b00d46244cab86f1186a7b00cdc660f24a26f72;p=lttng-tools.git diff --git a/include/lttng/event-rule/event-rule-internal.h b/include/lttng/event-rule/event-rule-internal.h index dd2d7dd18..98d1f449d 100644 --- a/include/lttng/event-rule/event-rule-internal.h +++ b/include/lttng/event-rule/event-rule-internal.h @@ -20,8 +20,13 @@ #include #include +#if defined(__cplusplus) +extern "C" { +#endif + struct lttng_payload; struct lttng_payload_view; +struct mi_writer; enum lttng_event_rule_generate_exclusions_status { LTTNG_EVENT_RULE_GENERATE_EXCLUSIONS_STATUS_OK, @@ -57,6 +62,9 @@ typedef unsigned long (*event_rule_hash_cb)( const struct lttng_event_rule *event_rule); typedef struct lttng_event *(*event_rule_generate_lttng_event_cb)( const struct lttng_event_rule *event_rule); +typedef enum lttng_error_code (*event_rule_mi_serialize_cb)( + const struct lttng_event_rule *event_rule, + struct mi_writer *writer); struct lttng_event_rule { struct urcu_ref ref; @@ -71,6 +79,7 @@ struct lttng_event_rule { event_rule_generate_exclusions_cb generate_exclusions; event_rule_hash_cb hash; event_rule_generate_lttng_event_cb generate_lttng_event; + event_rule_mi_serialize_cb mi_serialize; }; struct lttng_event_rule_comm { @@ -79,37 +88,28 @@ struct lttng_event_rule_comm { char payload[]; }; -LTTNG_HIDDEN void lttng_event_rule_init(struct lttng_event_rule *event_rule, enum lttng_event_rule_type type); -LTTNG_HIDDEN bool lttng_event_rule_validate(const struct lttng_event_rule *event_rule); -LTTNG_HIDDEN ssize_t lttng_event_rule_create_from_payload( struct lttng_payload_view *payload, struct lttng_event_rule **event_rule); -LTTNG_HIDDEN int lttng_event_rule_serialize(const struct lttng_event_rule *event_rule, struct lttng_payload *payload); -LTTNG_HIDDEN bool lttng_event_rule_is_equal(const struct lttng_event_rule *a, const struct lttng_event_rule *b); -LTTNG_HIDDEN bool lttng_event_rule_get(struct lttng_event_rule *rule); -LTTNG_HIDDEN void lttng_event_rule_put(struct lttng_event_rule *rule); -LTTNG_HIDDEN enum lttng_domain_type lttng_event_rule_get_domain_type( const struct lttng_event_rule *rule); -LTTNG_HIDDEN enum lttng_error_code lttng_event_rule_generate_filter_bytecode( struct lttng_event_rule *rule, const struct lttng_credentials *creds); @@ -118,14 +118,12 @@ enum lttng_error_code lttng_event_rule_generate_filter_bytecode( * If not present/implemented returns NULL. * Caller DOES NOT own the returned object. */ -LTTNG_HIDDEN const char *lttng_event_rule_get_filter(const struct lttng_event_rule *rule); /* * If not present/implemented returns NULL. * Caller DOES NOT own the returned object. */ -LTTNG_HIDDEN const struct lttng_bytecode *lttng_event_rule_get_filter_bytecode( const struct lttng_event_rule *rule); @@ -133,15 +131,12 @@ const struct lttng_bytecode *lttng_event_rule_get_filter_bytecode( * If not present/implemented return NULL. * Caller OWNS the returned object. */ -LTTNG_HIDDEN enum lttng_event_rule_generate_exclusions_status lttng_event_rule_generate_exclusions(const struct lttng_event_rule *rule, struct lttng_event_exclusion **exclusions); -LTTNG_HIDDEN const char *lttng_event_rule_type_str(enum lttng_event_rule_type type); -LTTNG_HIDDEN unsigned long lttng_event_rule_hash(const struct lttng_event_rule *rule); /* @@ -153,12 +148,17 @@ unsigned long lttng_event_rule_hash(const struct lttng_event_rule *rule); * * The caller owns the returned object. */ -LTTNG_HIDDEN struct lttng_event *lttng_event_rule_generate_lttng_event( const struct lttng_event_rule *rule); /* Test if an event rule targets an agent domain. */ -LTTNG_HIDDEN bool lttng_event_rule_targets_agent_domain(const struct lttng_event_rule *rule); +enum lttng_error_code lttng_event_rule_mi_serialize( + const struct lttng_event_rule *rule, struct mi_writer *writer); + +#if defined(__cplusplus) +} +#endif + #endif /* LTTNG_EVENT_RULE_INTERNAL_H */