-/* Copyright (c) 2012-2018. The SimGrid Team.
+/* Copyright (c) 2012-2020. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#define _KADEMLIA_ROUTING_TABLE_HPP
#include "s4u-dht-kademlia.hpp"
#include <deque>
+#include <vector>
namespace kademlia {
unsigned int id_; // bucket id
public:
std::deque<unsigned int> nodes; // Nodes in the bucket.
- unsigned int getId() { return id_; }
+ unsigned int getId() const { return id_; }
explicit Bucket(unsigned int id) : id_(id) {}
- ~Bucket() = default;
};
/* Node routing table */
class RoutingTable {
unsigned int id_; // node id of the client's routing table
public:
- Bucket** buckets; // Node bucket list - 160 sized.
+ std::vector<Bucket> buckets; // Node bucket list - 160 sized.
explicit RoutingTable(unsigned int node_id);
RoutingTable(const RoutingTable&) = delete;
RoutingTable& operator=(const RoutingTable&) = delete;
- ~RoutingTable();
- void print();
+ void print() const;
Bucket* findBucket(unsigned int id);
bool contains(unsigned int node_id);
};