X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fnotification.cpp;h=b024a0c090935a49fce2682e54e80d17511ae239;hb=cd9adb8b829564212158943a0d279bb35322ab30;hp=989c20ade5e1f126ffcf2609e7f0eea21e2f4028;hpb=a6bc4ca9d659caf016ef932fcd944029737ac57c;p=lttng-tools.git diff --git a/src/common/notification.cpp b/src/common/notification.cpp index 989c20ade..b024a0c09 100644 --- a/src/common/notification.cpp +++ b/src/common/notification.cpp @@ -5,26 +5,26 @@ * */ -#include -#include -#include +#include +#include + +#include #include +#include #include -#include -#include -#include +#include +#include -struct lttng_notification *lttng_notification_create( - struct lttng_trigger *trigger, - struct lttng_evaluation *evaluation) +struct lttng_notification *lttng_notification_create(struct lttng_trigger *trigger, + struct lttng_evaluation *evaluation) { - struct lttng_notification *notification = NULL; + struct lttng_notification *notification = nullptr; if (!trigger || !evaluation) { goto end; } - notification = (lttng_notification *) zmalloc(sizeof(struct lttng_notification)); + notification = zmalloc(); if (!notification) { goto end; } @@ -36,23 +36,24 @@ end: } int lttng_notification_serialize(const struct lttng_notification *notification, - struct lttng_payload *payload) + struct lttng_payload *payload) { int ret; size_t header_offset, size_before_payload; - struct lttng_notification_comm notification_comm = { 0 }; + struct lttng_notification_comm notification_comm; struct lttng_notification_comm *header; + notification_comm.length = 0; + header_offset = payload->buffer.size; - ret = lttng_dynamic_buffer_append(&payload->buffer, ¬ification_comm, - sizeof(notification_comm)); + ret = lttng_dynamic_buffer_append( + &payload->buffer, ¬ification_comm, sizeof(notification_comm)); if (ret) { goto end; } size_before_payload = payload->buffer.size; - ret = lttng_trigger_serialize(notification->trigger, - payload); + ret = lttng_trigger_serialize(notification->trigger, payload); if (ret) { goto end; } @@ -67,20 +68,17 @@ int lttng_notification_serialize(const struct lttng_notification *notification, header->length = (uint32_t) (payload->buffer.size - size_before_payload); end: return ret; - } -ssize_t lttng_notification_create_from_payload( - struct lttng_payload_view *src_view, - struct lttng_notification **notification) +ssize_t lttng_notification_create_from_payload(struct lttng_payload_view *src_view, + struct lttng_notification **notification) { ssize_t ret, notification_size = 0, trigger_size, evaluation_size; - struct lttng_trigger *trigger = NULL; - struct lttng_evaluation *evaluation = NULL; + struct lttng_trigger *trigger = nullptr; + struct lttng_evaluation *evaluation = nullptr; const struct lttng_notification_comm *notification_comm; const struct lttng_payload_view notification_comm_view = - lttng_payload_view_from_view( - src_view, 0, sizeof(*notification_comm)); + lttng_payload_view_from_view(src_view, 0, sizeof(*notification_comm)); if (!src_view || !notification) { ret = -1; @@ -98,11 +96,9 @@ ssize_t lttng_notification_create_from_payload( { /* struct lttng_condition */ struct lttng_payload_view condition_view = - lttng_payload_view_from_view(src_view, - notification_size, -1); + lttng_payload_view_from_view(src_view, notification_size, -1); - trigger_size = lttng_trigger_create_from_payload( - &condition_view, &trigger); + trigger_size = lttng_trigger_create_from_payload(&condition_view, &trigger); } if (trigger_size < 0) { @@ -115,12 +111,10 @@ ssize_t lttng_notification_create_from_payload( { /* struct lttng_evaluation */ struct lttng_payload_view evaluation_view = - lttng_payload_view_from_view(src_view, - notification_size, -1); + lttng_payload_view_from_view(src_view, notification_size, -1); evaluation_size = lttng_evaluation_create_from_payload( - lttng_trigger_get_const_condition(trigger), - &evaluation_view, &evaluation); + lttng_trigger_get_const_condition(trigger), &evaluation_view, &evaluation); } if (evaluation_size < 0) { @@ -131,8 +125,7 @@ ssize_t lttng_notification_create_from_payload( notification_size += evaluation_size; /* Unexpected size of inner-elements; the buffer is corrupted. */ - if ((ssize_t) notification_comm->length != - trigger_size + evaluation_size) { + if ((ssize_t) notification_comm->length != trigger_size + evaluation_size) { ret = -1; goto error; } @@ -163,20 +156,37 @@ void lttng_notification_destroy(struct lttng_notification *notification) free(notification); } -const struct lttng_condition *lttng_notification_get_condition( - struct lttng_notification *notification) +const struct lttng_condition * +lttng_notification_get_condition(struct lttng_notification *notification) +{ + return notification ? lttng_trigger_get_const_condition(notification->trigger) : nullptr; +} + +const struct lttng_evaluation * +lttng_notification_get_evaluation(struct lttng_notification *notification) +{ + return notification ? notification->evaluation : nullptr; +} + +const struct lttng_condition * +lttng_notification_get_const_condition(const struct lttng_notification *notification) +{ + return notification ? lttng_trigger_get_const_condition(notification->trigger) : nullptr; +} + +const struct lttng_evaluation * +lttng_notification_get_const_evaluation(const struct lttng_notification *notification) { - return notification ? lttng_trigger_get_const_condition(notification->trigger) : NULL; + return notification ? notification->evaluation : nullptr; } -const struct lttng_evaluation *lttng_notification_get_evaluation( - struct lttng_notification *notification) +const struct lttng_trigger * +lttng_notification_get_const_trigger(const struct lttng_notification *notification) { - return notification ? notification->evaluation : NULL; + return notification ? notification->trigger : nullptr; } -const struct lttng_trigger *lttng_notification_get_trigger( - struct lttng_notification *notification) +const struct lttng_trigger *lttng_notification_get_trigger(struct lttng_notification *notification) { - return notification ? notification->trigger : NULL; + return notification ? notification->trigger : nullptr; }