common: replace container_of with a C++ safe implementation
[lttng-tools.git] / src / bin / lttng-sessiond / consumer.cpp
index bdda3913597a7639150a67473517e92bf31f1180..c0f8eb5894e8fae8cb070109d4820ebec62ddff2 100644 (file)
@@ -414,7 +414,7 @@ struct consumer_socket *consumer_find_socket(int key,
                        &iter);
        node = lttng_ht_iter_get_node_ulong(&iter);
        if (node != NULL) {
-               socket = caa_container_of(node, struct consumer_socket, node);
+               socket = lttng::utils::container_of(node, &consumer_socket::node);
        }
 
        return socket;
@@ -481,9 +481,9 @@ void consumer_del_socket(struct consumer_socket *sock,
 static void destroy_socket_rcu(struct rcu_head *head)
 {
        struct lttng_ht_node_ulong *node =
-               caa_container_of(head, struct lttng_ht_node_ulong, head);
+               lttng::utils::container_of(head, &lttng_ht_node_ulong::head);
        struct consumer_socket *socket =
-               caa_container_of(node, struct consumer_socket, node);
+               lttng::utils::container_of(node, &consumer_socket::node);
 
        free(socket);
 }
@@ -566,7 +566,7 @@ void consumer_destroy_output_sockets(struct consumer_output *obj)
 static void consumer_release_output(struct urcu_ref *ref)
 {
        struct consumer_output *obj =
-               caa_container_of(ref, struct consumer_output, ref);
+               lttng::utils::container_of(ref, &consumer_output::ref);
 
        consumer_destroy_output_sockets(obj);
 
@@ -924,7 +924,7 @@ void consumer_init_ask_channel_comm_msg(struct lttcomm_consumer_msg *msg,
                const char *name,
                uint64_t relayd_id,
                uint64_t key,
-               unsigned char *uuid,
+               const lttng_uuid& uuid,
                uint32_t chan_id,
                uint64_t tracefile_size,
                uint64_t tracefile_count,
@@ -979,7 +979,7 @@ void consumer_init_ask_channel_comm_msg(struct lttcomm_consumer_msg *msg,
        msg->u.ask_channel.ust_app_uid = ust_app_uid;
        msg->u.ask_channel.blocking_timeout = blocking_timeout;
 
-       memcpy(msg->u.ask_channel.uuid, uuid, sizeof(msg->u.ask_channel.uuid));
+       std::copy(uuid.begin(), uuid.end(), msg->u.ask_channel.uuid);
 
        if (pathname) {
                strncpy(msg->u.ask_channel.pathname, pathname,
@@ -1782,7 +1782,7 @@ error_socket:
 }
 
 int consumer_init(struct consumer_socket *socket,
-               const lttng_uuid sessiond_uuid)
+               const lttng_uuid& sessiond_uuid)
 {
        int ret;
        struct lttcomm_consumer_msg msg = {
@@ -1793,7 +1793,7 @@ int consumer_init(struct consumer_socket *socket,
        LTTNG_ASSERT(socket);
 
        DBG("Sending consumer initialization command");
-       lttng_uuid_copy(msg.u.init.sessiond_uuid, sessiond_uuid);
+       std::copy(sessiond_uuid.begin(), sessiond_uuid.end(), msg.u.init.sessiond_uuid);
 
        health_code_update();
        ret = consumer_send_msg(socket, &msg);
This page took 0.023598 seconds and 4 git commands to generate.