C# 클래스 TSystems.RELOAD.Topology.TopologyPlugin.RoutingTable

파일 보기 프로젝트 열기: RELOAD-NET/RELOAD.NET

공개 메소드들

메소드 설명
AddFinger ( Node testFinger, NodeState state ) : void

Adds a new finger and sets its state. Note, only fingers for which we received a update will be used for routing.

AddLeavingNode ( NodeId OriginatorId ) : void
AddNode ( Node node ) : void
AttachFingers ( ) : List

JP also needs to populate its finger table (for the Chord based DHT). It issues an Attach to a variety of locations around the overlay. see RELOAD base -17 p.129

AttachToAllNeighbors ( ) : void

Attach to all members of the successor and predecessor table

Conn2Route ( ) : void

This method should only be executed after enrichment of the connection table while joining. It transfers all connection obtain yet to the routing table. see base -18 p.106 4. JP MUST enter all the peers it has contacted into its routing table.

FindNextHopTo ( NodeId TargetId, bool fIncluding, bool fExludeMe ) : Node
GetApproved ( List inputList ) : List
GetApprovedPredecessor ( ) : NodeId
GetApprovedSuccessor ( ) : NodeId
GetCandidates ( NodeId nodeid ) : List

Returns the ice candidates stored in a dicationary along with a nodeid

GetNode ( NodeId node_id ) : Node
GetNodeState ( NodeId nodeid ) : NodeState

We need the information if a node (nodeid) has already been attached to and is valid. This is stored in the routing table

GetPing ( NodeId nodeid ) : bool
GetPredecessor ( int index ) : Node
GetPredecessorCount ( bool only_approved ) : int
GetPredecessorId ( int index ) : NodeId
GetStatusShortLetter ( NodeId nodeid ) : char
GetSuccessor ( int index ) : Node
GetSuccessorCount ( bool only_approved ) : int
GetSuccessorId ( int index ) : NodeId
GotUpdatesFrom ( NodeId nodeid ) : bool
IsAttached ( NodeId nodeid ) : bool
IsWaitForJoinAnsw ( NodeId nodeid ) : bool
Leave ( NodeId nodeId ) : bool
NeighborsFromTotal ( List total_update_list, bool fSuccessors ) : List
NodeWeNeed ( NodeId nodeId ) : bool
PrintNeigborState ( ) : void
Reset ( ) : void
RoutingTable ( Node local_node, Machine machine ) : System
SendUpdateToAllNeighbors ( ) : void

Sends and update to all members of the successor and predecessor table

SetFingerState ( NodeId finger, NodeState state ) : void
isFinger ( NodeId testFinger ) : bool

Returns true, if the tested Finger is needed for fingertable

isFinger ( NodeId testFinger, FTableEntry &finger ) : bool

Returns true if attaching Node should be added to finger table.

isNewNeighbour ( NodeId attacher ) : bool
removeDuplicates ( List inputList ) : List

Removes duplicates in any list of node id's

rmDuplicateFingers ( List fingers ) : List

비공개 메소드들

메소드 설명
GetClosestPrecedingFinger ( NodeId key ) : Node
GetClosestPrecedingNode ( NodeId key ) : Node
IsAttachedToAllNeighbors ( ) : bool
IsChangedList ( List m_old_list, List m_new_list ) : bool
Merge ( NodeId originator, UpdateReqAns req_answ, System.Boolean ForceSendUpdate ) : IEnumerator

If any peer sends an update we merge this information with our local tables

SetNodeState ( NodeId nodeId, NodeState nodestate ) : void
SetPinging ( NodeId nodeId, bool ping, bool success ) : void
SetWaitForJoinAnsw ( NodeId nodeId, System.Boolean fTrue ) : void

메소드 상세

AddFinger() 공개 메소드

Adds a new finger and sets its state. Note, only fingers for which we received a update will be used for routing.
public AddFinger ( Node testFinger, NodeState state ) : void
testFinger Node The remote finger
state NodeState Normally, attached because update has no Node ///
리턴 void

AddLeavingNode() 공개 메소드

public AddLeavingNode ( NodeId OriginatorId ) : void
OriginatorId TSystems.RELOAD.Utils.NodeId
리턴 void

AddNode() 공개 메소드

public AddNode ( Node node ) : void
node Node
리턴 void

AttachFingers() 공개 메소드

JP also needs to populate its finger table (for the Chord based DHT). It issues an Attach to a variety of locations around the overlay. see RELOAD base -17 p.129
public AttachFingers ( ) : List
리턴 List

AttachToAllNeighbors() 공개 메소드

Attach to all members of the successor and predecessor table
public AttachToAllNeighbors ( ) : void
리턴 void

Conn2Route() 공개 메소드

This method should only be executed after enrichment of the connection table while joining. It transfers all connection obtain yet to the routing table. see base -18 p.106 4. JP MUST enter all the peers it has contacted into its routing table.
public Conn2Route ( ) : void
리턴 void

FindNextHopTo() 공개 메소드

public FindNextHopTo ( NodeId TargetId, bool fIncluding, bool fExludeMe ) : Node
TargetId TSystems.RELOAD.Utils.NodeId
fIncluding bool
fExludeMe bool
리턴 Node

GetApproved() 공개 메소드

public GetApproved ( List inputList ) : List
inputList List
리턴 List

GetApprovedPredecessor() 공개 메소드

public GetApprovedPredecessor ( ) : NodeId
리턴 TSystems.RELOAD.Utils.NodeId

GetApprovedSuccessor() 공개 메소드

public GetApprovedSuccessor ( ) : NodeId
리턴 TSystems.RELOAD.Utils.NodeId

GetCandidates() 공개 메소드

Returns the ice candidates stored in a dicationary along with a nodeid
public GetCandidates ( NodeId nodeid ) : List
nodeid TSystems.RELOAD.Utils.NodeId The Node Id
리턴 List

GetNode() 공개 메소드

public GetNode ( NodeId node_id ) : Node
node_id TSystems.RELOAD.Utils.NodeId
리턴 Node

GetNodeState() 공개 메소드

We need the information if a node (nodeid) has already been attached to and is valid. This is stored in the routing table
public GetNodeState ( NodeId nodeid ) : NodeState
nodeid TSystems.RELOAD.Utils.NodeId The Node Id
리턴 NodeState

GetPing() 공개 메소드

public GetPing ( NodeId nodeid ) : bool
nodeid TSystems.RELOAD.Utils.NodeId
리턴 bool

GetPredecessor() 공개 메소드

public GetPredecessor ( int index ) : Node
index int
리턴 Node

GetPredecessorCount() 공개 메소드

public GetPredecessorCount ( bool only_approved ) : int
only_approved bool
리턴 int

GetPredecessorId() 공개 메소드

public GetPredecessorId ( int index ) : NodeId
index int
리턴 TSystems.RELOAD.Utils.NodeId

GetStatusShortLetter() 공개 메소드

public GetStatusShortLetter ( NodeId nodeid ) : char
nodeid TSystems.RELOAD.Utils.NodeId
리턴 char

GetSuccessor() 공개 메소드

public GetSuccessor ( int index ) : Node
index int
리턴 Node

GetSuccessorCount() 공개 메소드

public GetSuccessorCount ( bool only_approved ) : int
only_approved bool
리턴 int

GetSuccessorId() 공개 메소드

public GetSuccessorId ( int index ) : NodeId
index int
리턴 TSystems.RELOAD.Utils.NodeId

GotUpdatesFrom() 공개 메소드

public GotUpdatesFrom ( NodeId nodeid ) : bool
nodeid TSystems.RELOAD.Utils.NodeId
리턴 bool

IsAttached() 공개 메소드

public IsAttached ( NodeId nodeid ) : bool
nodeid TSystems.RELOAD.Utils.NodeId
리턴 bool

IsWaitForJoinAnsw() 공개 메소드

public IsWaitForJoinAnsw ( NodeId nodeid ) : bool
nodeid TSystems.RELOAD.Utils.NodeId
리턴 bool

Leave() 공개 메소드

public Leave ( NodeId nodeId ) : bool
nodeId TSystems.RELOAD.Utils.NodeId
리턴 bool

NeighborsFromTotal() 공개 메소드

public NeighborsFromTotal ( List total_update_list, bool fSuccessors ) : List
total_update_list List
fSuccessors bool
리턴 List

NodeWeNeed() 공개 메소드

public NodeWeNeed ( NodeId nodeId ) : bool
nodeId TSystems.RELOAD.Utils.NodeId
리턴 bool

PrintNeigborState() 공개 메소드

public PrintNeigborState ( ) : void
리턴 void

Reset() 공개 메소드

public Reset ( ) : void
리턴 void

RoutingTable() 공개 메소드

public RoutingTable ( Node local_node, Machine machine ) : System
local_node Node
machine Machine
리턴 System

SendUpdateToAllNeighbors() 공개 메소드

Sends and update to all members of the successor and predecessor table
public SendUpdateToAllNeighbors ( ) : void
리턴 void

SetFingerState() 공개 메소드

public SetFingerState ( NodeId finger, NodeState state ) : void
finger TSystems.RELOAD.Utils.NodeId
state NodeState
리턴 void

isFinger() 공개 메소드

Returns true, if the tested Finger is needed for fingertable
public isFinger ( NodeId testFinger ) : bool
testFinger TSystems.RELOAD.Utils.NodeId
리턴 bool

isFinger() 공개 메소드

Returns true if attaching Node should be added to finger table.
public isFinger ( NodeId testFinger, FTableEntry &finger ) : bool
testFinger TSystems.RELOAD.Utils.NodeId The attaching node
finger FTableEntry The first Finger Table entry machting the attaching node.
리턴 bool

isNewNeighbour() 공개 메소드

public isNewNeighbour ( NodeId attacher ) : bool
attacher TSystems.RELOAD.Utils.NodeId
리턴 bool

removeDuplicates() 공개 메소드

Removes duplicates in any list of node id's
public removeDuplicates ( List inputList ) : List
inputList List A list containing node id's
리턴 List

rmDuplicateFingers() 공개 메소드

public rmDuplicateFingers ( List fingers ) : List
fingers List
리턴 List