Naanou.LookupService
Class FindSuccessorSync

Sync wrapper around async FindSuccessor calls.

Field Summary
Naanou.LookupService.WorkDispatch.Dispatch dispatchedTo
Naanou.Common.IWorkItem dispatchedWork
bool gotResult
Naanou.Common.Hash key
bool randomForward
Naanou.Common.FindSuccessorResult result
int TIMEOUT_SECONDS
long timeoutTicks
bool waiting

Constructor Summary
FindSuccessorSync(Naanou.Common.Hash id, bool randomForward, Naanou.LookupService.Node node)
         Finds successor, adding work to dispatcher
FindSuccessorSync(Naanou.Common.Hash id, Naanou.LookupService.NodeAddress query, bool randomForward, Naanou.LookupService.WorkDispatch.Dispatch dispatch)
         Finds successor, adding work to dispatcher
FindSuccessorSync(Naanou.Common.Hash id, bool randomForward, Naanou.LookupService.Node node, bool blah)
         Finds successor, but uses same thread as caller

Method Summary
Naanou.LookupService.FindSuccessorSync FindNewThread(Naanou.Common.Hash id, Naanou.LookupService.Node localNode)
Naanou.LookupService.FindSuccessorSync FindNewThreadRemote(Naanou.Common.Hash id, Naanou.LookupService.NodeAddress nodeToQuery, Naanou.LookupService.WorkDispatch.Dispatch dispatch)
Naanou.LookupService.FindSuccessorSync FindSameThread(Naanou.Common.Hash id, Naanou.LookupService.Node localNode)
void OnFoundSuccessor(Naanou.Common.FindSuccessorResult result, Naanou.Common.BasicAddress whoWasQueried)
         Successor was found
Naanou.LookupService.FindSuccessorSync RandomFindNewThread(Naanou.Common.Hash id, Naanou.LookupService.Node localNode)
Naanou.LookupService.FindSuccessorSync RandomFindNewThreadRemote(Naanou.Common.Hash id, Naanou.LookupService.NodeAddress nodeToQuery, Naanou.LookupService.WorkDispatch.Dispatch dispatch)
Naanou.LookupService.FindSuccessorSync RandomFindSameThread(Naanou.Common.Hash id, Naanou.LookupService.Node localNode)
void Reset(Naanou.Common.Hash id, Naanou.LookupService.NodeAddress query, Naanou.LookupService.WorkDispatch.Dispatch dispatch)
         Reset using dispatcher (new thread)
void ResetSameThread(Naanou.Common.Hash id, Naanou.LookupService.Node node)
         Finds successor on same thread
Naanou.Common.FindSuccessorResult Result()
         Blocks until result of find successor op has finished. If result is already available, will not block.

Methods inherited from class System.Object
Equals, Finalize, GetHashCode, GetType, MemberwiseClone, ToString


Field Detail

dispatchedTo

private Naanou.LookupService.WorkDispatch.Dispatch dispatchedTo


dispatchedWork

private Naanou.Common.IWorkItem dispatchedWork


gotResult

private bool gotResult


key

private Naanou.Common.Hash key


randomForward

private bool randomForward


result

private Naanou.Common.FindSuccessorResult result


TIMEOUT_SECONDS

private int TIMEOUT_SECONDS


timeoutTicks

private long timeoutTicks


waiting

private bool waiting

Constructor Detail

FindSuccessorSync

public FindSuccessorSync(Naanou.Common.Hash id,
                         bool randomForward,
                         Naanou.LookupService.Node node)

Finds successor, adding work to dispatcher

Parameters:
id - Id to find
node - Node to lookup on

FindSuccessorSync

private FindSuccessorSync(Naanou.Common.Hash id,
                          Naanou.LookupService.NodeAddress query,
                          bool randomForward,
                          Naanou.LookupService.WorkDispatch.Dispatch dispatch)

Finds successor, adding work to dispatcher

Parameters:
id - Id to find
query - Node to lookup on
dispatch - Dispatcher to add on

FindSuccessorSync

private FindSuccessorSync(Naanou.Common.Hash id,
                          bool randomForward,
                          Naanou.LookupService.Node node,
                          bool blah)

Finds successor, but uses same thread as caller

Parameters:
id - Id to find
node - Node to lookup on
blah - nothing
Method Detail

FindNewThread

public Naanou.LookupService.FindSuccessorSync FindNewThread(Naanou.Common.Hash id,
                                                            Naanou.LookupService.Node localNode)


FindNewThreadRemote

public Naanou.LookupService.FindSuccessorSync FindNewThreadRemote(Naanou.Common.Hash id,
                                                                 Naanou.LookupService.NodeAddress nodeToQuery,
                                                                 Naanou.LookupService.WorkDispatch.Dispatch dispatch)


FindSameThread

public Naanou.LookupService.FindSuccessorSync FindSameThread(Naanou.Common.Hash id,
                                                             Naanou.LookupService.Node localNode)


OnFoundSuccessor

public void OnFoundSuccessor(Naanou.Common.FindSuccessorResult result,
                             Naanou.Common.BasicAddress whoWasQueried)

Successor was found

Parameters:
result - Result
whoWasQueried - Who was queried

RandomFindNewThread

public Naanou.LookupService.FindSuccessorSync RandomFindNewThread(Naanou.Common.Hash id,
                                                                 Naanou.LookupService.Node localNode)


RandomFindNewThreadRemote

public Naanou.LookupService.FindSuccessorSync RandomFindNewThreadRemote(Naanou.Common.Hash id,
                                                                 Naanou.LookupService.NodeAddress nodeToQuery,
                                                                 Naanou.LookupService.WorkDispatch.Dispatch dispatch)


RandomFindSameThread

public Naanou.LookupService.FindSuccessorSync RandomFindSameThread(Naanou.Common.Hash id,
                                                                 Naanou.LookupService.Node localNode)


Reset

public void Reset(Naanou.Common.Hash id,
                  Naanou.LookupService.NodeAddress query,
                  Naanou.LookupService.WorkDispatch.Dispatch dispatch)

Reset using dispatcher (new thread)

Parameters:
id - Id to find
query - Node to lookup on
dispatch - Dispatcher to use

ResetSameThread

public void ResetSameThread(Naanou.Common.Hash id,
                            Naanou.LookupService.Node node)

Finds successor on same thread

Parameters:
id - Id to find
node - Node to lookup on

Result

public Naanou.Common.FindSuccessorResult Result()

Blocks until result of find successor op has finished. If result is already available, will not block.

Returns:
Result