-/* Copyright (c) 2010-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2010-2020. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
namespace kademlia {
static void destroy(void* message)
{
- Message* msg = static_cast<Message*>(message);
+ const Message* msg = static_cast<Message*>(message);
delete msg->answer_;
delete msg;
}
*/
bool Node::join(unsigned int known_id)
{
- Answer* node_list;
+ const Answer* node_list;
unsigned int i;
bool got_answer = false;
XBT_DEBUG("Received an answer from the node I know.");
got_answer = true;
// retrieve the node list and ping them.
- Message* msg = static_cast<Message*>(received_msg);
+ const Message* msg = static_cast<Message*>(received_msg);
node_list = msg->answer_;
if (node_list) {
for (auto contact : node_list->nodes)
* Sends to the best "KADEMLIA_ALPHA" nodes in the "node_list" array a "FIND_NODE" request, to ask them for their best
* nodes
*/
-unsigned int Node::sendFindNodeToBest(Answer* node_list)
+unsigned int Node::sendFindNodeToBest(const Answer* node_list)
{
unsigned int i = 0;
unsigned int j = 0;
receive_comm = mailbox->get_async(&received_msg);
if (receive_comm->test()) {
- Message* msg = static_cast<Message*>(received_msg);
+ const Message* msg = static_cast<Message*>(received_msg);
// Check if what we have received is what we are looking for.
if (msg->answer_ && msg->answer_->getDestinationId() == id_to_find) {
routingTableUpdate(msg->sender_id_);
void Node::randomLookup()
{
unsigned int id_to_look = RANDOM_LOOKUP_NODE; // Totally random.
- /* TODO: Use some pseudo-random generator like RngStream. */
+ /* TODO: Use some pseudo-random generator. */
XBT_DEBUG("I'm doing a random lookup");
findNode(id_to_look, true);
}
/** @brief Handles the answer to an incoming "find_node" task */
-void Node::handleFindNode(Message* msg)
+void Node::handleFindNode(const Message* msg)
{
routingTableUpdate(msg->sender_id_);
XBT_VERB("Received a FIND_NODE from %s (%s), he's trying to find %08x", msg->answer_to_->get_cname(),