#define IS_START_SESSION_ACTION(action) \
(lttng_action_get_type(action) == LTTNG_ACTION_TYPE_START_SESSION)
+namespace {
struct lttng_action_start_session {
struct lttng_action parent;
*/
char data[];
} LTTNG_PACKED;
+} /* namespace */
static const struct lttng_rate_policy *
lttng_action_start_session_internal_get_rate_policy(
{
LTTNG_ASSERT(action);
- return container_of(action, struct lttng_action_start_session, parent);
+ return lttng::utils::container_of(action, <tng_action_start_session::parent);
}
static const struct lttng_action_start_session *
{
LTTNG_ASSERT(action);
- return container_of(action, struct lttng_action_start_session, parent);
+ return lttng::utils::container_of(action, <tng_action_start_session::parent);
}
static bool lttng_action_start_session_validate(struct lttng_action *action)
bool is_equal = false;
struct lttng_action_start_session *a, *b;
- a = container_of(_a, struct lttng_action_start_session, parent);
- b = container_of(_b, struct lttng_action_start_session, parent);
+ a = lttng::utils::container_of(_a, <tng_action_start_session::parent);
+ b = lttng::utils::container_of(_b, <tng_action_start_session::parent);
/* Action is not valid if this is not true. */
LTTNG_ASSERT(a->session_name);
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(