common: replace container_of with a C++ safe implementation
[lttng-tools.git] / src / common / session-descriptor.cpp
index a3aa40b3e7ddede7f09cf756284cdaef45d78e02..1171b2930ce605c2ee465476cd5d4541cd48a646 100644 (file)
 #include <time.h>
 #include <stdio.h>
 
+namespace {
 struct lttng_session_descriptor_network_location {
        struct lttng_uri *control;
        struct lttng_uri *data;
 };
+} /* namespace */
 
 struct lttng_session_descriptor {
        enum lttng_session_descriptor_type type;
@@ -32,6 +34,7 @@ struct lttng_session_descriptor {
        } output;
 };
 
+namespace {
 struct lttng_session_descriptor_snapshot {
        struct lttng_session_descriptor base;
        /*
@@ -61,6 +64,7 @@ struct lttng_session_descriptor_live_comm {
        /* Live-specific parameters. */
        uint64_t live_timer_us;
 } LTTNG_PACKED;
+} /* namespace */
 
 static
 struct lttng_uri *uri_copy(const struct lttng_uri *uri)
@@ -843,9 +847,8 @@ int lttng_session_descriptor_serialize(
 
        header.base.uri_count = uri_count;
        if (descriptor->type == LTTNG_SESSION_DESCRIPTOR_TYPE_LIVE) {
-               const struct lttng_session_descriptor_live *live =
-                               container_of(descriptor, typeof(*live),
-                               base);
+               const struct lttng_session_descriptor_live *live = lttng::utils::container_of(
+                               descriptor, &lttng_session_descriptor_live::base);
 
                header.live_timer_us = live->live_timer_us;
                header_ptr = &header;
@@ -914,7 +917,7 @@ lttng_session_descriptor_live_get_timer_interval(
 {
        struct lttng_session_descriptor_live *live;
 
-       live = container_of(descriptor, typeof(*live), base);
+       live = lttng::utils::container_of(descriptor, &lttng_session_descriptor_live::base);
        return live->live_timer_us;
 }
 
This page took 0.024507 seconds and 4 git commands to generate.