var searchIndex = {}; searchIndex["kademlia_routing_table"] = {"doc":"A routing table to manage connections for a node in a [Kademlia][1] distributed hash table.","items":[[3,"AddedNodeDetails","kademlia_routing_table","This is returned by `RoutingTable::add_node` if a new node has been added.",null,null],[12,"must_notify","","The list of contacts that need to be notified about the new node: If the bucket was\nalready full, that's nobody, but if it wasn't, everyone with a bucket index greater than\nthe new nodes' must be notified.",0,null],[12,"common_groups","","Whether we are together in any close group with that contact.",0,null],[3,"DroppedNodeDetails","","This is returned by `RoutingTable::drop_connection` if a node was dropped.",null,null],[12,"name","","The name of the dropped node.",1,null],[12,"incomplete_bucket","","`Some(i)` if the entry has been removed from a full bucket with index `i`, indicating\nthat an attempt to refill that bucket has to be made.",1,null],[12,"common_groups","","Whether we were together in any close group with that contact.",1,null],[3,"NodeInfo","","A routing table entry representing a node and the connections to that node.",null,null],[12,"public_id","","The information identifying the node.",2,null],[12,"connections","","The connections to the node, e. g. sockets or other kinds of connection handles.",2,null],[3,"RoutingTable","","A routing table to manage connections for a node.",null,null],[4,"Destination","","A message destination.",null,null],[13,"Group","","The close group of the given address. The message should reach `GROUP_SIZE` nodes.",3,null],[13,"Node","","The individual node at the given address. The message should reach exactly one node.",3,null],[4,"HopType","","Specifies the number of times we have already passed on a particular message.",null,null],[13,"OriginalSender","","We are the original sender. The message should be sent to `PARALLELISM` contacts.",4,null],[13,"CopyNum","","We have already relayed the given number of copies of this message.",4,null],[11,"fmt","","",0,null],[11,"clone","","",0,null],[11,"eq","","",0,null],[11,"ne","","",0,null],[11,"fmt","","",1,null],[11,"clone","","",1,null],[11,"eq","","",1,null],[11,"ne","","",1,null],[17,"GROUP_SIZE","","The size of a close group.",null,null],[17,"PARALLELISM","","The number of nodes a message is sent to in each hop for redundancy.",null,null],[8,"HasName","","A trait for anything that has a `XorName` and can thus be addressed in the network.",null,null],[10,"name","","Returns the `XorName` representing this item's address in the network.",5,null],[11,"eq","","",2,null],[11,"ne","","",2,null],[11,"fmt","","",2,null],[11,"clone","","",2,null],[11,"new","","Creates a new node entry with the given ID and connections.",2,{"inputs":[{"name":"t"},{"name":"v"}],"output":{"name":"nodeinfo"}}],[11,"name","","Returns the `XorName` of the peer node.",2,null],[11,"fmt","","",3,null],[11,"clone","","",3,null],[11,"fmt","","",4,null],[11,"clone","","",4,null],[11,"new","","Creates a new routing table for the node with the given name.",6,{"inputs":[{"name":"xorname"}],"output":{"name":"routingtable"}}],[11,"add_node","","Adds a contact to the routing table, or updates it.",6,null],[11,"add_connection","","Adds a connection to an existing entry.",6,null],[11,"need_to_add","","Returns whether it is desirable to add the given contact to the routing table.",6,null],[11,"allow_connection","","Returns whether we can allow the given contact to connect to us.",6,null],[11,"dynamic_quorum_size","","Returns the current calculated quorum size.",6,null],[11,"furthest_close_bucket","","Returns the bucket index of the furthest close node.",6,null],[11,"remove","","Removes the contact from the table.",6,null],[11,"drop_connection","","This should be called when a connection has dropped.",6,null],[11,"closest_nodes_to","","Returns the `n` nodes in our routing table that are closest to `target`.",6,null],[11,"target_nodes","","Returns a collection of nodes to which a message should be sent onwards.",6,null],[11,"is_recipient","","Returns whether the message is addressed to this node.",6,null],[11,"our_close_group","","Returns the rest of our close group, i. e. the `GROUP_SIZE - 1` nodes closest to our name.",6,null],[11,"is_close","","Returns `true` if there are fewer than `GROUP_SIZE` nodes in our routing table that are\ncloser to `name` than we are.",6,null],[11,"len","","Number of entries in the routing table.",6,null],[11,"is_empty","","Returns `true` if there are no entries in the routing table.",6,null],[11,"our_name","","Returns the name of the node this routing table is for.",6,null],[11,"get","","Returns the `NodeInfo` with the given name, if it is in the routing table.",6,null]],"paths":[[3,"AddedNodeDetails"],[3,"DroppedNodeDetails"],[3,"NodeInfo"],[4,"Destination"],[4,"HopType"],[8,"HasName"],[3,"RoutingTable"]]}; initSearch(searchIndex);