X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbin%2Flttng-sessiond%2Fnotification-thread-internal.hpp;h=f711727c32342606b0d8b067e6911f87d7a5984f;hb=e0252788784c4c7392e5105aed0eaf745798482e;hp=b53c24b2398a98f77de8534d210b72677eb250de;hpb=139a8d250fb18f8ffc95b0936f7285f7b484b72f;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/notification-thread-internal.hpp b/src/bin/lttng-sessiond/notification-thread-internal.hpp index b53c24b23..f711727c3 100644 --- a/src/bin/lttng-sessiond/notification-thread-internal.hpp +++ b/src/bin/lttng-sessiond/notification-thread-internal.hpp @@ -28,6 +28,18 @@ struct channel_key { enum lttng_domain_type domain; }; +struct session_state_sample { + uint64_t consumed_data_size; + struct { + /* Whether a rotation is ongoing for this session. */ + bool ongoing; + /* Identifier of the currently ongoing rotation. */ + uint64_t id; + /* Location of last completed rotation. */ + struct lttng_trace_archive_location *location; + } rotation; +}; + struct session_info { struct lttng_ref ref; uint64_t id; @@ -48,13 +60,8 @@ struct session_info { * destruction. */ struct cds_lfht *sessions_ht; - uint64_t consumed_data_size; - struct { - /* Whether a rotation is ongoing for this session. */ - bool ongoing; - /* Identifier of the currently ongoing rotation. */ - uint64_t id; - } rotation; + /* Session's state as of the latest update. */ + struct session_state_sample last_state_sample; /* call_rcu delayed reclaim. */ struct rcu_head rcu_node; }; @@ -232,10 +239,9 @@ bool notification_client_list_get(struct notification_client_list *list); void notification_client_list_put(struct notification_client_list *list); /* Only returns a non-zero value if a fatal error occurred. */ -typedef int (*report_client_transmission_result_cb)( - struct notification_client *client, - enum client_transmission_status status, - void *user_data); +using report_client_transmission_result_cb = int (*)(struct notification_client *, + enum client_transmission_status, + void *); int notification_client_list_send_evaluation( struct notification_client_list *list,