common: replace container_of with a C++ safe implementation
[lttng-tools.git] / src / common / actions / rate-policy.cpp
index d0834dd732e14c2f203897b7dc743dbb137307bf..303b4a781765ab71f4a739073c0ac168b95b71c0 100644 (file)
@@ -5,15 +5,15 @@
  *
  */
 
-#include <common/buffer-view.h>
-#include <common/dynamic-buffer.h>
-#include <common/error.h>
-#include <common/macros.h>
-#include <common/mi-lttng.h>
-#include <common/payload-view.h>
-#include <common/payload.h>
+#include <common/buffer-view.hpp>
+#include <common/dynamic-buffer.hpp>
+#include <common/error.hpp>
+#include <common/macros.hpp>
+#include <common/mi-lttng.hpp>
+#include <common/payload-view.hpp>
+#include <common/payload.hpp>
 #include <limits.h>
-#include <lttng/action/rate-policy-internal.h>
+#include <lttng/action/rate-policy-internal.hpp>
 #include <lttng/action/rate-policy.h>
 #include <stdbool.h>
 #include <sys/types.h>
@@ -48,6 +48,7 @@ struct lttng_rate_policy {
        rate_policy_mi_serialize_cb mi_serialize;
 };
 
+namespace {
 struct lttng_rate_policy_every_n {
        struct lttng_rate_policy parent;
        uint64_t interval;
@@ -70,6 +71,7 @@ struct lttng_rate_policy_once_after_n_comm {
 struct lttng_rate_policy_every_n_comm {
        uint64_t interval;
 } LTTNG_PACKED;
+} /* namespace */
 
 /* Forward declaration. */
 static void lttng_rate_policy_init(struct lttng_rate_policy *rate_policy,
@@ -346,7 +348,7 @@ static struct lttng_rate_policy_every_n *rate_policy_every_n_from_rate_policy(
 {
        LTTNG_ASSERT(policy);
 
-       return container_of(policy, struct lttng_rate_policy_every_n, parent);
+       return lttng::utils::container_of(policy, &lttng_rate_policy_every_n::parent);
 }
 
 static const struct lttng_rate_policy_every_n *
@@ -355,7 +357,7 @@ rate_policy_every_n_from_rate_policy_const(
 {
        LTTNG_ASSERT(policy);
 
-       return container_of(policy, struct lttng_rate_policy_every_n, parent);
+       return lttng::utils::container_of(policy, &lttng_rate_policy_every_n::parent);
 }
 
 static int lttng_rate_policy_every_n_serialize(
@@ -487,7 +489,7 @@ struct lttng_rate_policy *lttng_rate_policy_every_n_create(uint64_t interval)
                goto end;
        }
 
-       policy = (lttng_rate_policy_every_n *) zmalloc(sizeof(struct lttng_rate_policy_every_n));
+       policy = zmalloc<lttng_rate_policy_every_n>();
        if (!policy) {
                goto end;
        }
@@ -558,8 +560,8 @@ rate_policy_once_after_n_from_rate_policy(struct lttng_rate_policy *policy)
 {
        LTTNG_ASSERT(policy);
 
-       return container_of(
-                       policy, struct lttng_rate_policy_once_after_n, parent);
+       return lttng::utils::container_of(
+                       policy, &lttng_rate_policy_once_after_n::parent);
 }
 
 static const struct lttng_rate_policy_once_after_n *
@@ -568,8 +570,8 @@ rate_policy_once_after_n_from_rate_policy_const(
 {
        LTTNG_ASSERT(policy);
 
-       return container_of(
-                       policy, struct lttng_rate_policy_once_after_n, parent);
+       return lttng::utils::container_of(
+                       policy, &lttng_rate_policy_once_after_n::parent);
 }
 static int lttng_rate_policy_once_after_n_serialize(
                struct lttng_rate_policy *policy, struct lttng_payload *payload)
@@ -702,7 +704,7 @@ struct lttng_rate_policy *lttng_rate_policy_once_after_n_create(
                goto end;
        }
 
-       policy = (lttng_rate_policy_once_after_n *) zmalloc(sizeof(struct lttng_rate_policy_once_after_n));
+       policy = zmalloc<lttng_rate_policy_once_after_n>();
        if (!policy) {
                goto end;
        }
This page took 0.025979 seconds and 4 git commands to generate.