struct lttng_action *lttng_action_start_session_create(void)
{
- struct lttng_action *action = NULL;
+ struct lttng_action_start_session *action_start = NULL;
struct lttng_rate_policy *policy = NULL;
enum lttng_action_status status;
goto end;
}
- action = (lttng_action *) zmalloc(sizeof(struct lttng_action_start_session));
- if (!action) {
+ action_start = zmalloc<lttng_action_start_session>();
+ if (!action_start) {
goto end;
}
- lttng_action_init(action, LTTNG_ACTION_TYPE_START_SESSION,
+ lttng_action_init(&action_start->parent,
+ LTTNG_ACTION_TYPE_START_SESSION,
lttng_action_start_session_validate,
lttng_action_start_session_serialize,
lttng_action_start_session_is_equal,
lttng_action_generic_add_error_query_results,
lttng_action_start_session_mi_serialize);
- status = lttng_action_start_session_set_rate_policy(action, policy);
+ status = lttng_action_start_session_set_rate_policy(
+ &action_start->parent, policy);
if (status != LTTNG_ACTION_STATUS_OK) {
- free(action);
- action = NULL;
+ lttng_action_destroy(&action_start->parent);
+ action_start = NULL;
goto end;
}
end:
lttng_rate_policy_destroy(policy);
- return action;
+ return &action_start->parent;
}
enum lttng_action_status lttng_action_start_session_set_session_name(