common: compile libconfig as C++
[lttng-tools.git] / src / common / conditions / session-rotation.c
index 1be0f0ad25c5f20b1c27028160b6d3ce231e79de..d352718e1b801bcaa2e7c01c8c9b766d8c127d55 100644 (file)
@@ -5,7 +5,6 @@
  *
  */
 
-#include <assert.h>
 #include <common/error.h>
 #include <common/macros.h>
 #include <common/mi-lttng.h>
@@ -308,7 +307,6 @@ error:
        return ret;
 }
 
-LTTNG_HIDDEN
 ssize_t lttng_condition_session_rotation_ongoing_create_from_payload(
                struct lttng_payload_view *view,
                struct lttng_condition **condition)
@@ -318,7 +316,6 @@ ssize_t lttng_condition_session_rotation_ongoing_create_from_payload(
                        LTTNG_CONDITION_TYPE_SESSION_ROTATION_ONGOING);
 }
 
-LTTNG_HIDDEN
 ssize_t lttng_condition_session_rotation_completed_create_from_payload(
                struct lttng_payload_view *view,
                struct lttng_condition **condition)
@@ -344,6 +341,9 @@ struct lttng_evaluation *lttng_evaluation_session_rotation_create(
                        sizeof(evaluation->parent));
        lttng_evaluation_init(&evaluation->parent, type);
        evaluation->id = id;
+       if (location) {
+               lttng_trace_archive_location_get(location);
+       }
        evaluation->location = location;
        return &evaluation->parent;
 }
@@ -390,11 +390,12 @@ ssize_t create_evaluation_from_payload(
                goto error;
        }
 
+       lttng_trace_archive_location_put(location);
        ret = size;
        *_evaluation = evaluation;
        return ret;
 error:
-       lttng_trace_archive_location_destroy(location);
+       lttng_trace_archive_location_put(location);
        evaluation = NULL;
        return -1;
 }
@@ -425,7 +426,6 @@ error:
        return ret;
 }
 
-LTTNG_HIDDEN
 ssize_t lttng_evaluation_session_rotation_ongoing_create_from_payload(
                struct lttng_payload_view *view,
                struct lttng_evaluation **evaluation)
@@ -435,7 +435,6 @@ ssize_t lttng_evaluation_session_rotation_ongoing_create_from_payload(
                        view, evaluation);
 }
 
-LTTNG_HIDDEN
 ssize_t lttng_evaluation_session_rotation_completed_create_from_payload(
                struct lttng_payload_view *view,
                struct lttng_evaluation **evaluation)
@@ -445,7 +444,6 @@ ssize_t lttng_evaluation_session_rotation_completed_create_from_payload(
                        view, evaluation);
 }
 
-LTTNG_HIDDEN
 struct lttng_evaluation *lttng_evaluation_session_rotation_ongoing_create(
                uint64_t id)
 {
@@ -454,7 +452,6 @@ struct lttng_evaluation *lttng_evaluation_session_rotation_ongoing_create(
                        NULL);
 }
 
-LTTNG_HIDDEN
 struct lttng_evaluation *lttng_evaluation_session_rotation_completed_create(
                uint64_t id, struct lttng_trace_archive_location *location)
 {
@@ -550,7 +547,7 @@ void lttng_evaluation_session_rotation_destroy(
 
        rotation = container_of(evaluation,
                        struct lttng_evaluation_session_rotation, parent);
-       lttng_trace_archive_location_destroy(rotation->location);
+       lttng_trace_archive_location_put(rotation->location);
        free(rotation);
 }
 
@@ -573,6 +570,12 @@ end:
        return status;
 }
 
+/*
+ * The public API assumes that trace archive locations are always provided as
+ * "constant". This means that the user of liblttng-ctl never has to destroy a
+ * trace archive location. Hence, users of liblttng-ctl have no visibility of
+ * the reference counting of archive locations.
+ */
 enum lttng_evaluation_status
 lttng_evaluation_session_rotation_completed_get_location(
                const struct lttng_evaluation *evaluation,
@@ -605,9 +608,9 @@ enum lttng_error_code lttng_condition_session_rotation_mi_serialize(
        const char *session_name = NULL;
        const char *type_element_str = NULL;
 
-       assert(condition);
-       assert(writer);
-       assert(is_rotation_condition(condition));
+       LTTNG_ASSERT(condition);
+       LTTNG_ASSERT(writer);
+       LTTNG_ASSERT(is_rotation_condition(condition));
 
        switch (lttng_condition_get_type(condition)) {
        case LTTNG_CONDITION_TYPE_SESSION_ROTATION_COMPLETED:
@@ -625,8 +628,8 @@ enum lttng_error_code lttng_condition_session_rotation_mi_serialize(
 
        status = lttng_condition_session_rotation_get_session_name(
                        condition, &session_name);
-       assert(status == LTTNG_CONDITION_STATUS_OK);
-       assert(session_name);
+       LTTNG_ASSERT(status == LTTNG_CONDITION_STATUS_OK);
+       LTTNG_ASSERT(session_name);
 
        /* Open condition session rotation_* element. */
        ret = mi_lttng_writer_open_element(writer, type_element_str);
This page took 0.025807 seconds and 4 git commands to generate.