#define IS_ROTATE_SESSION_ACTION(action) \
(lttng_action_get_type(action) == LTTNG_ACTION_TYPE_ROTATE_SESSION)
+namespace {
struct lttng_action_rotate_session {
struct lttng_action parent;
*/
char data[];
} LTTNG_PACKED;
+} /* namespace */
static const struct lttng_rate_policy *
lttng_action_rotate_session_internal_get_rate_policy(
struct lttng_action *lttng_action_rotate_session_create(void)
{
- struct lttng_action *action = NULL;
+ struct lttng_action_rotate_session *action_rotate = NULL;
struct lttng_rate_policy *policy = NULL;
enum lttng_action_status status;
goto end;
}
- action = (lttng_action *) zmalloc(sizeof(struct lttng_action_rotate_session));
- if (!action) {
+ action_rotate = zmalloc<lttng_action_rotate_session>();
+ if (!action_rotate) {
goto end;
}
- lttng_action_init(action, LTTNG_ACTION_TYPE_ROTATE_SESSION,
+ lttng_action_init(&action_rotate->parent,
+ LTTNG_ACTION_TYPE_ROTATE_SESSION,
lttng_action_rotate_session_validate,
lttng_action_rotate_session_serialize,
lttng_action_rotate_session_is_equal,
lttng_action_generic_add_error_query_results,
lttng_action_rotate_session_mi_serialize);
- status = lttng_action_rotate_session_set_rate_policy(action, policy);
+ status = lttng_action_rotate_session_set_rate_policy(
+ &action_rotate->parent, policy);
if (status != LTTNG_ACTION_STATUS_OK) {
- free(action);
- action = NULL;
+ lttng_action_destroy(&action_rotate->parent);
+ action_rotate = NULL;
goto end;
}
end:
lttng_rate_policy_destroy(policy);
- return action;
+ return action_rotate ? &action_rotate->parent : nullptr;
}
enum lttng_action_status lttng_action_rotate_session_set_session_name(