7#ifndef MINHTON_CORE_ROUTING_INFORMATION_H_
8#define MINHTON_CORE_ROUTING_INFORMATION_H_
17#include "minhton/core/constants.h"
18#include "minhton/core/node_info.h"
19#include "minhton/core/routing_calculations.h"
20#include "minhton/logging/logger.h"
59 void resetPosition(uint64_t event_id);
107 std::vector<minhton::NodeInfo>
getChildren()
const;
306 uint64_t ref_event_id = 0);
323 uint64_t ref_event_id = 0);
338 void resetChild(uint16_t position, uint64_t ref_event_id = 0);
384 uint64_t ref_event_id = 0);
403 const minhton::NodeInfo &routing_table_neighbor_child_or_child, uint64_t ref_event_id = 0);
502 uint64_t ref_event_id = 0);
550 std::vector<minhton::NodeInfo> v1,
const std::vector<minhton::NodeInfo> &v2);
566 void addNeighborChangeSubscription(
567 const std::function<
void(
const minhton::NodeInfo &new_node, NeighborRelationship relationship,
570 void addNodeInfoChangeSubscription(
574 bool areWeDSN()
const;
575 bool areWeTempDSN()
const;
579 bool nextDSNExists();
600 std::vector<minhton::NodeInfo> children_;
603 std::vector<minhton::NodeInfo> routing_table_neighbors_;
606 std::vector<minhton::NodeInfo> routing_table_neighbor_children_;
611 uint32_t right_table_neighbor_start_index_ = 0;
614 std::function<void(
const minhton::NodeInfo &new_node, NeighborRelationship relationship,
616 neighbor_change_subscription_callbacks_;
620 node_info_change_subscription_callbacks_;
631 void notifyNeighborChange(
const minhton::NodeInfo &new_node, NeighborRelationship relationship,
632 uint64_t ref_event_id,
652 void initRoutingTableNeighbors();
667 void initRoutingTableNeighborChildren(uint32_t parent_level, uint32_t parent_number);
684 void initParentAndChildren();
686 void clearRoutingTable();
Definition logical_node_info.h:23
Definition node_info.h:24
Definition minhton_watchdog_ns3.cpp:24