X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/eb46f8ef11f386cac9f2da08028a93ee5e963b93..39c935d6d5ee86d153f6f7e6a10d723ae7c57f6f:/examples/s4u/dht-kademlia/message.hpp diff --git a/examples/s4u/dht-kademlia/message.hpp b/examples/s4u/dht-kademlia/message.hpp index 910be6aafa..78b6f2c4b8 100644 --- a/examples/s4u/dht-kademlia/message.hpp +++ b/examples/s4u/dht-kademlia/message.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2012, 2014-2016. The SimGrid Team. +/* Copyright (c) 2012-2021. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -6,39 +6,38 @@ #ifndef _KADEMLIA_TASK_HPP_ #define _KADEMLIA_TASK_HPP_ -#include "answer.hpp" +#include "s4u-dht-kademlia.hpp" #include "simgrid/s4u.hpp" +#include +#include + namespace kademlia { -class Answer; class Message { public: unsigned int sender_id_ = 0; // Id of the guy who sent the task unsigned int destination_id_ = 0; // Id we are trying to find, if needed. - Answer* answer_ = nullptr; // Answer to the request made, if needed. - simgrid::s4u::MailboxPtr answer_to_ = nullptr; // mailbox to send the answer to (if not an answer). - char* issuer_host_name_ = nullptr; // used for logging + std::unique_ptr answer_ = nullptr; // Answer to the request made, if needed. + simgrid::s4u::Mailbox* answer_to_ = nullptr; // mailbox to send the answer to (if not an answer). + std::string issuer_host_name_; // used for logging - explicit Message(unsigned int sender_id, unsigned int destination_id, Answer* answer, - simgrid::s4u::MailboxPtr mailbox, const char* hostname) + explicit Message(unsigned int sender_id, unsigned int destination_id, std::unique_ptr answer, + simgrid::s4u::Mailbox* mailbox, const char* hostname) : sender_id_(sender_id) , destination_id_(destination_id) - , answer_(answer) + , answer_(std::move(answer)) , answer_to_(mailbox) - , issuer_host_name_(xbt_strdup(hostname)) + , issuer_host_name_(hostname) { } - explicit Message(unsigned int sender_id, unsigned int destination_id, simgrid::s4u::MailboxPtr mailbox, + explicit Message(unsigned int sender_id, unsigned int destination_id, simgrid::s4u::Mailbox* mailbox, const char* hostname) : Message(sender_id, destination_id, nullptr, mailbox, hostname) { } - ~Message() - { - if (issuer_host_name_) - xbt_free(issuer_host_name_); - } + Message(const Message&) = delete; + Message& operator=(const Message&) = delete; }; -} +} // namespace kademlia #endif