struct lttng_event_notifier_notification {
uint64_t tracer_token;
enum lttng_domain_type type;
+ size_t capture_buf_size;
+ char *capture_buffer;
};
struct notification_client_list_element {
struct notification_client_list {
pthread_mutex_t lock;
struct urcu_ref ref;
- const struct lttng_trigger *trigger;
- struct cds_list_head list;
+ struct lttng_condition *condition;
+ /* List of triggers that have an identical condition than `condition`. */
+ struct cds_list_head triggers_list;
+ struct cds_list_head clients_list;
/* Weak reference to container. */
struct cds_lfht *notification_trigger_clients_ht;
struct cds_lfht_node notification_trigger_clients_ht_node;
LTTNG_HIDDEN
int notification_client_list_send_evaluation(
struct notification_client_list *list,
- const struct lttng_condition *condition,
+ const struct lttng_trigger *trigger,
const struct lttng_evaluation *evaluation,
- const struct lttng_credentials *trigger_creds,
const struct lttng_credentials *source_object_creds,
report_client_transmission_result_cb client_report,
void *user_data);
notification_client_id id,
enum client_transmission_status transmission_status);
+/*
+ * Takes ownership of the payload if present.
+ */
LTTNG_HIDDEN
struct lttng_event_notifier_notification *lttng_event_notifier_notification_create(
uint64_t tracer_token,
- enum lttng_domain_type domain);
+ enum lttng_domain_type domain,
+ char *payload,
+ size_t payload_size);
LTTNG_HIDDEN
void lttng_event_notifier_notification_destroy(