FreePastry/docs/javadoc/rice/p2p/multiring/MultiringEndpoint.html
ChronosX88 aaa73fe8b3 Pew
2019-05-13 16:45:05 +04:00

1426 lines
82 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_07) on Fri Mar 13 20:01:16 CET 2009 -->
<TITLE>
MultiringEndpoint (Rice Pastry - API Specifications)
</TITLE>
<META NAME="date" CONTENT="2009-03-13">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="MultiringEndpoint (Rice Pastry - API Specifications)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/MultiringEndpoint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Rice Pastry API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../rice/p2p/multiring/MultiringApplication.html" title="class in rice.p2p.multiring"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../rice/p2p/multiring/MultiringIdFactory.html" title="class in rice.p2p.multiring"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?rice/p2p/multiring/MultiringEndpoint.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="MultiringEndpoint.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
rice.p2p.multiring</FONT>
<BR>
Class MultiringEndpoint</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>rice.p2p.multiring.MultiringEndpoint</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A>, <A HREF="../../../rice/p2p/commonapi/rawserialization/NodeHandleReader.html" title="interface in rice.p2p.commonapi.rawserialization">NodeHandleReader</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>MultiringEndpoint</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></DL>
</PRE>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>$Id: MultiringEndpoint.java 4654 2009-01-08 16:33:07Z jeffh $</DD>
<DT><B>Author:</B></DT>
<DD>Alan Mislove</DD>
</DL>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#application">application</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The application this endpoint is for</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#endpoint">endpoint</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The node which this mulitring node is wrapping</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../rice/p2p/multiring/MultiringNode.html" title="class in rice.p2p.multiring">MultiringNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#node">node</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The multiring node supporting this endpoint</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#MultiringEndpoint(rice.p2p.multiring.MultiringNode, rice.p2p.commonapi.Endpoint, rice.p2p.commonapi.Application)">MultiringEndpoint</A></B>(<A HREF="../../../rice/p2p/multiring/MultiringNode.html" title="class in rice.p2p.multiring">MultiringNode</A>&nbsp;node,
<A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A>&nbsp;endpoint,
<A HREF="../../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A>&nbsp;application)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#accept(rice.p2p.commonapi.appsocket.AppSocketReceiver)">accept</A></B>(<A HREF="../../../rice/p2p/commonapi/appsocket/AppSocketReceiver.html" title="interface in rice.p2p.commonapi.appsocket">AppSocketReceiver</A>&nbsp;receiver)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set's the acceptor for this application.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#coalesce(rice.p2p.commonapi.NodeHandle)">coalesce</A></B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#connect(rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.appsocket.AppSocketReceiver, int)">connect</A></B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
<A HREF="../../../rice/p2p/commonapi/appsocket/AppSocketReceiver.html" title="interface in rice.p2p.commonapi.appsocket">AppSocketReceiver</A>&nbsp;receiver,
int&nbsp;timeout)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Passthrough to sub endpoint.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#deliver(rice.p2p.multiring.RingId, rice.p2p.commonapi.Message)">deliver</A></B>(<A HREF="../../../rice/p2p/multiring/RingId.html" title="class in rice.p2p.multiring">RingId</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;target)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal method which delivers the message to the application</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/rawserialization/MessageDeserializer.html" title="interface in rice.p2p.commonapi.rawserialization">MessageDeserializer</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#getDeserializer()">getDeserializer</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the deserializer.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#getEnvironment()">getEnvironment</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the environment.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#getId()">getId</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns this node's id, which is its identifier in the namespace.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#getInstance()">getInstance</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a unique instance name of this endpoint, sort of a mailbox name for this
application.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#getLocalNodeHandle()">getLocalNodeHandle</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a handle to the local node below this endpoint.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#isAlive(rice.p2p.commonapi.NodeHandle)">isAlive</A></B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;nh)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#localLookup(rice.p2p.commonapi.Id, int, boolean)">localLookup</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
int&nbsp;num,
boolean&nbsp;safe)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This call produces a list of nodes that can be used as next hops on a route towards
the given id, such that the resulting route satisfies the overlay protocol's bounds
on the number of hops taken.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#neighborSet(int)">neighborSet</A></B>(int&nbsp;num)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This methods returns an unordered set of nodehandles on which are neighbors of the local
node in the id space.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.util.List&lt;<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#networkNeighbors(int)">networkNeighbors</A></B>(int&nbsp;num)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns an ordered list of the nearest known neighbors.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#process(rice.Executable, rice.Continuation)">process</A></B>(<A HREF="../../../rice/Executable.html" title="interface in rice">Executable</A>&nbsp;task,
<A HREF="../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schedules a job for processing on the dedicated processing thread.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#proximity(rice.p2p.commonapi.NodeHandle)">proximity</A></B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;nh)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This replaces NodeHandle.proximity(), so that you don't have to have a "coalesced" NodeHandle.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#range(rice.p2p.commonapi.NodeHandle, int, rice.p2p.commonapi.Id)">range</A></B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
int&nbsp;rank,
<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;lkey)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This operation provides information about ranges of keys for which the node is currently
a rank-root.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#range(rice.p2p.commonapi.NodeHandle, int, rice.p2p.commonapi.Id, boolean)">range</A></B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
int&nbsp;rank,
<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;lkey,
boolean&nbsp;cumulative)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This operation provides information about ranges of keys for which the node is currently
a rank-root.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#readId(rice.p2p.commonapi.rawserialization.InputBuffer, short)">readId</A></B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/InputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">InputBuffer</A>&nbsp;buf,
short&nbsp;type)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To use a more efficient serialization format than Java Serialization</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#readIdRange(rice.p2p.commonapi.rawserialization.InputBuffer)">readIdRange</A></B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/InputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">InputBuffer</A>&nbsp;buf)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To use Raw Serialization</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#readNodeHandle(rice.p2p.commonapi.rawserialization.InputBuffer)">readNodeHandle</A></B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/InputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">InputBuffer</A>&nbsp;buf)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To use Raw Serialization</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#readNodeHandleSet(rice.p2p.commonapi.rawserialization.InputBuffer, short)">readNodeHandleSet</A></B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/InputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">InputBuffer</A>&nbsp;buf,
short&nbsp;type)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#register()">register</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call this after you have set up your Endpoint:
called setDeserializer(), called accept().</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#replicaSet(rice.p2p.commonapi.Id, int)">replicaSet</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
int&nbsp;maxRank)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This methods returns an ordered set of nodehandles on which replicas of an object with
a given id can be stored.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#replicaSet(rice.p2p.commonapi.Id, int, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.NodeHandleSet)">replicaSet</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
int&nbsp;maxRank,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;root,
<A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A>&nbsp;set)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This methods returns an ordered set of nodehandles on which replicas of an object with
a given id can be stored.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle)">route</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method makes an attempt to route the message to the root of the given id.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification)">route</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint,
<A HREF="../../../rice/p2p/commonapi/DeliveryNotification.html" title="interface in rice.p2p.commonapi">DeliveryNotification</A>&nbsp;deliverAckToMe)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification, java.util.Map)">route</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint,
<A HREF="../../../rice/p2p/commonapi/DeliveryNotification.html" title="interface in rice.p2p.commonapi">DeliveryNotification</A>&nbsp;deliverAckToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method makes an attempt to route the message to the root of the given id.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle)">route</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification)">route</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint,
<A HREF="../../../rice/p2p/commonapi/DeliveryNotification.html" title="interface in rice.p2p.commonapi">DeliveryNotification</A>&nbsp;deliverAckToMe)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification, java.util.Map)">route</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint,
<A HREF="../../../rice/p2p/commonapi/DeliveryNotification.html" title="interface in rice.p2p.commonapi">DeliveryNotification</A>&nbsp;deliverAckToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as the other call, but uses the Raw serialization rather than java serialization.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#routingConsistentFor(rice.p2p.commonapi.Id)">routingConsistentFor</A></B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Can we guarantee that this id is currently ours, and routing will be consistent?
Note that this has some real timing implications, so don't cache the returned value.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/CancellableTask.html" title="interface in rice.p2p.commonapi">CancellableTask</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#scheduleMessage(rice.p2p.commonapi.Message, long)">scheduleMessage</A></B>(<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
long&nbsp;delay)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schedules a message to be delivered to this application after the provided number of
milliseconds.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/CancellableTask.html" title="interface in rice.p2p.commonapi">CancellableTask</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#scheduleMessage(rice.p2p.commonapi.Message, long, long)">scheduleMessage</A></B>(<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
long&nbsp;delay,
long&nbsp;period)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schedules a message to be delivered to this application every period number of
milliseconds, after delay number of miliseconds have passed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../rice/p2p/commonapi/CancellableTask.html" title="interface in rice.p2p.commonapi">CancellableTask</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#scheduleMessageAtFixedRate(rice.p2p.commonapi.Message, long, long)">scheduleMessageAtFixedRate</A></B>(<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
long&nbsp;delay,
long&nbsp;period)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schedules a message to be delivered to this application every period number of
milliseconds, after delay number of miliseconds have passed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#setConsistentRouting(boolean)">setConsistentRouting</A></B>(boolean&nbsp;val)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default value is true
Consistent routing causes RouteMessages to be dropped if we are not sure that we are
responsible for our current id range.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#setDeserializer(rice.p2p.commonapi.rawserialization.MessageDeserializer)">setDeserializer</A></B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/MessageDeserializer.html" title="interface in rice.p2p.commonapi.rawserialization">MessageDeserializer</A>&nbsp;md)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To use a more efficient serialization format than Java Serialization</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#setSendOptions(java.util.Map)">setSendOptions</A></B>(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Uses these options as defaults.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/multiring/MultiringEndpoint.html#toString()">toString</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="node"><!-- --></A><H3>
node</H3>
<PRE>
protected <A HREF="../../../rice/p2p/multiring/MultiringNode.html" title="class in rice.p2p.multiring">MultiringNode</A> <B>node</B></PRE>
<DL>
<DD>The multiring node supporting this endpoint
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="application"><!-- --></A><H3>
application</H3>
<PRE>
protected <A HREF="../../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A> <B>application</B></PRE>
<DL>
<DD>The application this endpoint is for
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="endpoint"><!-- --></A><H3>
endpoint</H3>
<PRE>
protected <A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A> <B>endpoint</B></PRE>
<DL>
<DD>The node which this mulitring node is wrapping
<P>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="MultiringEndpoint(rice.p2p.multiring.MultiringNode, rice.p2p.commonapi.Endpoint, rice.p2p.commonapi.Application)"><!-- --></A><H3>
MultiringEndpoint</H3>
<PRE>
protected <B>MultiringEndpoint</B>(<A HREF="../../../rice/p2p/multiring/MultiringNode.html" title="class in rice.p2p.multiring">MultiringNode</A>&nbsp;node,
<A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A>&nbsp;endpoint,
<A HREF="../../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A>&nbsp;application)</PRE>
<DL>
<DD>Constructor
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - The node to base this node off of</DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="getId()"><!-- --></A><H3>
getId</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A> <B>getId</B>()</PRE>
<DL>
<DD>Returns this node's id, which is its identifier in the namespace.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#getId()">getId</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The local node's id</DL>
</DD>
</DL>
<HR>
<A NAME="route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle)"><!-- --></A><H3>
route</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A> <B>route</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint)</PRE>
<DL>
<DD>This method makes an attempt to route the message to the root of the given id.
The hint handle will be the first hop in the route. If the id field is null, then
the message is routed directly to the given node, and delivers the message
there. If the hint field is null, then this method makes an attempt to route
the message to the root of the given id. Note that one of the id and hint fields can
be null, but not both.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle)">route</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The destination Id of the message.<DD><CODE>message</CODE> - The message to deliver<DD><CODE>hint</CODE> - The first node to send this message to, optional</DL>
</DD>
</DL>
<HR>
<A NAME="route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification)"><!-- --></A><H3>
route</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A> <B>route</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint,
<A HREF="../../../rice/p2p/commonapi/DeliveryNotification.html" title="interface in rice.p2p.commonapi">DeliveryNotification</A>&nbsp;deliverAckToMe)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification)">route</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification, java.util.Map)"><!-- --></A><H3>
route</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A> <B>route</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint,
<A HREF="../../../rice/p2p/commonapi/DeliveryNotification.html" title="interface in rice.p2p.commonapi">DeliveryNotification</A>&nbsp;deliverAckToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification, java.util.Map)">Endpoint</A></CODE></B></DD>
<DD>This method makes an attempt to route the message to the root of the given id.
The hint handle will be the first hop in the route. If the id field is null, then
the message is routed directly to the given node, and delivers the message
there. If the hint field is null, then this method makes an attempt to route
the message to the root of the given id. Note that one of the id and hint fields can
be null, but not both.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification, java.util.Map)">route</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The destination Id of the message.<DD><CODE>message</CODE> - The message to deliver<DD><CODE>hint</CODE> - The first node to send this message to, optional<DD><CODE>deliverAckToMe</CODE> - notified when the message is sent
<DT><B>Returns:</B><DD>can cancel the request</DL>
</DD>
</DL>
<HR>
<A NAME="route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle)"><!-- --></A><H3>
route</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A> <B>route</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle)">route</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification)"><!-- --></A><H3>
route</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A> <B>route</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint,
<A HREF="../../../rice/p2p/commonapi/DeliveryNotification.html" title="interface in rice.p2p.commonapi">DeliveryNotification</A>&nbsp;deliverAckToMe)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification)">route</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification, java.util.Map)"><!-- --></A><H3>
route</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/MessageReceipt.html" title="interface in rice.p2p.commonapi">MessageReceipt</A> <B>route</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&nbsp;message,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint,
<A HREF="../../../rice/p2p/commonapi/DeliveryNotification.html" title="interface in rice.p2p.commonapi">DeliveryNotification</A>&nbsp;deliverAckToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification, java.util.Map)">Endpoint</A></CODE></B></DD>
<DD>Same as the other call, but uses the Raw serialization rather than java serialization.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#route(rice.p2p.commonapi.Id, rice.p2p.commonapi.rawserialization.RawMessage, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.DeliveryNotification, java.util.Map)">route</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="localLookup(rice.p2p.commonapi.Id, int, boolean)"><!-- --></A><H3>
localLookup</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A> <B>localLookup</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
int&nbsp;num,
boolean&nbsp;safe)</PRE>
<DL>
<DD>This call produces a list of nodes that can be used as next hops on a route towards
the given id, such that the resulting route satisfies the overlay protocol's bounds
on the number of hops taken. If the safe flag is specified, then the fraction of
faulty nodes returned is no higher than the fraction of faulty nodes in the overlay.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#localLookup(rice.p2p.commonapi.Id, int, boolean)">localLookup</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The destination id.<DD><CODE>num</CODE> - The number of nodes to return.<DD><CODE>safe</CODE> - Whether or not to return safe nodes.</DL>
</DD>
</DL>
<HR>
<A NAME="neighborSet(int)"><!-- --></A><H3>
neighborSet</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A> <B>neighborSet</B>(int&nbsp;num)</PRE>
<DL>
<DD>This methods returns an unordered set of nodehandles on which are neighbors of the local
node in the id space. Up to num handles are returned.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#neighborSet(int)">neighborSet</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>num</CODE> - The number of desired handle to return.</DL>
</DD>
</DL>
<HR>
<A NAME="replicaSet(rice.p2p.commonapi.Id, int)"><!-- --></A><H3>
replicaSet</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A> <B>replicaSet</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
int&nbsp;maxRank)</PRE>
<DL>
<DD>This methods returns an ordered set of nodehandles on which replicas of an object with
a given id can be stored. The call returns nodes up to and including a node with maxRank.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#replicaSet(rice.p2p.commonapi.Id, int)">replicaSet</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The object's id.<DD><CODE>maxRank</CODE> - The number of desired replicas.</DL>
</DD>
</DL>
<HR>
<A NAME="replicaSet(rice.p2p.commonapi.Id, int, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.NodeHandleSet)"><!-- --></A><H3>
replicaSet</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A> <B>replicaSet</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
int&nbsp;maxRank,
<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;root,
<A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A>&nbsp;set)</PRE>
<DL>
<DD>This methods returns an ordered set of nodehandles on which replicas of an object with
a given id can be stored. The call returns nodes up to and including a node with maxRank.
This call also allows the application to provide a remove "center" node, as well as
other nodes in the vicinity.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#replicaSet(rice.p2p.commonapi.Id, int, rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.NodeHandleSet)">replicaSet</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The object's id.<DD><CODE>maxRank</CODE> - The number of desired replicas.<DD><CODE>handle</CODE> - The root handle of the remove set<DD><CODE>set</CODE> - The set of other nodes around the root handle</DL>
</DD>
</DL>
<HR>
<A NAME="range(rice.p2p.commonapi.NodeHandle, int, rice.p2p.commonapi.Id)"><!-- --></A><H3>
range</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A> <B>range</B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
int&nbsp;rank,
<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;lkey)</PRE>
<DL>
<DD>This operation provides information about ranges of keys for which the node is currently
a rank-root. The operations returns null if the range could not be determined, the range
otherwise. It is an error to query the range of a node not present in the neighbor set as
returned bythe update upcall or the neighborSet call. Certain implementations may return
an error if rank is greater than zero. Some protocols may have multiple, disjoint ranges
of keys for which a given node is responsible. The parameter lkey allows the caller to
specify which region should be returned. If the node referenced by is responsible for key
lkey, then the resulting range includes lkey. Otherwise, the result is the nearest range
clockwise from lkey for which is responsible.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#range(rice.p2p.commonapi.NodeHandle, int, rice.p2p.commonapi.Id)">range</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>handle</CODE> - The handle whose range to check.<DD><CODE>rank</CODE> - The root rank.<DD><CODE>lkey</CODE> - An "index" in case of multiple ranges.</DL>
</DD>
</DL>
<HR>
<A NAME="range(rice.p2p.commonapi.NodeHandle, int, rice.p2p.commonapi.Id, boolean)"><!-- --></A><H3>
range</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A> <B>range</B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
int&nbsp;rank,
<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;lkey,
boolean&nbsp;cumulative)</PRE>
<DL>
<DD>This operation provides information about ranges of keys for which the node is currently
a rank-root. The operations returns null if the range could not be determined, the range
otherwise. It is an error to query the range of a node not present in the neighbor set as
returned bythe update upcall or the neighborSet call. Certain implementations may return
an error if rank is greater than zero. Some protocols may have multiple, disjoint ranges
of keys for which a given node is responsible. The parameter lkey allows the caller to
specify which region should be returned. If the node referenced by is responsible for key
lkey, then the resulting range includes lkey. Otherwise, the result is the nearest range
clockwise from lkey for which is responsible.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#range(rice.p2p.commonapi.NodeHandle, int, rice.p2p.commonapi.Id, boolean)">range</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>handle</CODE> - The handle whose range to check.<DD><CODE>rank</CODE> - The root rank.<DD><CODE>lkey</CODE> - An "index" in case of multiple ranges.<DD><CODE>cumulative</CODE> - Whether to return the cumulative or single range</DL>
</DD>
</DL>
<HR>
<A NAME="getLocalNodeHandle()"><!-- --></A><H3>
getLocalNodeHandle</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A> <B>getLocalNodeHandle</B>()</PRE>
<DL>
<DD>Returns a handle to the local node below this endpoint. This node handle is serializable,
and can therefore be sent to other nodes in the network and still be valid.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#getLocalNodeHandle()">getLocalNodeHandle</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>A NodeHandle referring to the local node.</DL>
</DD>
</DL>
<HR>
<A NAME="scheduleMessage(rice.p2p.commonapi.Message, long)"><!-- --></A><H3>
scheduleMessage</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/CancellableTask.html" title="interface in rice.p2p.commonapi">CancellableTask</A> <B>scheduleMessage</B>(<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
long&nbsp;delay)</PRE>
<DL>
<DD>Schedules a message to be delivered to this application after the provided number of
milliseconds.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#scheduleMessage(rice.p2p.commonapi.Message, long)">scheduleMessage</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>message</CODE> - The message to be delivered<DD><CODE>delay</CODE> - The number of milliseconds to wait before delivering the message</DL>
</DD>
</DL>
<HR>
<A NAME="scheduleMessage(rice.p2p.commonapi.Message, long, long)"><!-- --></A><H3>
scheduleMessage</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/CancellableTask.html" title="interface in rice.p2p.commonapi">CancellableTask</A> <B>scheduleMessage</B>(<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
long&nbsp;delay,
long&nbsp;period)</PRE>
<DL>
<DD>Schedules a message to be delivered to this application every period number of
milliseconds, after delay number of miliseconds have passed.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#scheduleMessage(rice.p2p.commonapi.Message, long, long)">scheduleMessage</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>message</CODE> - The message to be delivered<DD><CODE>delay</CODE> - The number of milliseconds to wait before delivering the fist message<DD><CODE>delay</CODE> - The number of milliseconds to wait before delivering subsequent messages</DL>
</DD>
</DL>
<HR>
<A NAME="scheduleMessageAtFixedRate(rice.p2p.commonapi.Message, long, long)"><!-- --></A><H3>
scheduleMessageAtFixedRate</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/CancellableTask.html" title="interface in rice.p2p.commonapi">CancellableTask</A> <B>scheduleMessageAtFixedRate</B>(<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message,
long&nbsp;delay,
long&nbsp;period)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#scheduleMessageAtFixedRate(rice.p2p.commonapi.Message, long, long)">Endpoint</A></CODE></B></DD>
<DD>Schedules a message to be delivered to this application every period number of
milliseconds, after delay number of miliseconds have passed.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#scheduleMessageAtFixedRate(rice.p2p.commonapi.Message, long, long)">scheduleMessageAtFixedRate</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>message</CODE> - The message to be delivered<DD><CODE>delay</CODE> - The number of milliseconds to wait before delivering the fist message</DL>
</DD>
</DL>
<HR>
<A NAME="networkNeighbors(int)"><!-- --></A><H3>
networkNeighbors</H3>
<PRE>
public java.util.List&lt;<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&gt; <B>networkNeighbors</B>(int&nbsp;num)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#networkNeighbors(int)">Endpoint</A></CODE></B></DD>
<DD>Returns an ordered list of the nearest known neighbors.
Note that proximity is usually an estimate, and can quickly become stale.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#networkNeighbors(int)">networkNeighbors</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>List of NodeHandle</DL>
</DD>
</DL>
<HR>
<A NAME="process(rice.Executable, rice.Continuation)"><!-- --></A><H3>
process</H3>
<PRE>
public void <B>process</B>(<A HREF="../../../rice/Executable.html" title="interface in rice">Executable</A>&nbsp;task,
<A HREF="../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD>Schedules a job for processing on the dedicated processing thread. CPU intensive jobs, such
as encryption, erasure encoding, or bloom filter creation should never be done in the context
of the underlying node's thread, and should only be done via this method.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#process(rice.Executable, rice.Continuation)">process</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>task</CODE> - The task to run on the processing thread<DD><CODE>command</CODE> - The command to return the result to once it's done</DL>
</DD>
</DL>
<HR>
<A NAME="deliver(rice.p2p.multiring.RingId, rice.p2p.commonapi.Message)"><!-- --></A><H3>
deliver</H3>
<PRE>
protected void <B>deliver</B>(<A HREF="../../../rice/p2p/multiring/RingId.html" title="class in rice.p2p.multiring">RingId</A>&nbsp;id,
<A HREF="../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;target)</PRE>
<DL>
<DD>Internal method which delivers the message to the application
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The target id<DD><CODE>message</CODE> - The message to deliver</DL>
</DD>
</DL>
<HR>
<A NAME="getInstance()"><!-- --></A><H3>
getInstance</H3>
<PRE>
public java.lang.String <B>getInstance</B>()</PRE>
<DL>
<DD>Returns a unique instance name of this endpoint, sort of a mailbox name for this
application.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#getInstance()">getInstance</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The unique instance name of this application</DL>
</DD>
</DL>
<HR>
<A NAME="getEnvironment()"><!-- --></A><H3>
getEnvironment</H3>
<PRE>
public <A HREF="../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A> <B>getEnvironment</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#getEnvironment()">Endpoint</A></CODE></B></DD>
<DD>Returns the environment. This allows the nodes to be virtualized within the JVM
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#getEnvironment()">getEnvironment</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the environment for this node/app.</DL>
</DD>
</DL>
<HR>
<A NAME="connect(rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.appsocket.AppSocketReceiver, int)"><!-- --></A><H3>
connect</H3>
<PRE>
public void <B>connect</B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
<A HREF="../../../rice/p2p/commonapi/appsocket/AppSocketReceiver.html" title="interface in rice.p2p.commonapi.appsocket">AppSocketReceiver</A>&nbsp;receiver,
int&nbsp;timeout)</PRE>
<DL>
<DD>Passthrough to sub endpoint.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#connect(rice.p2p.commonapi.NodeHandle, rice.p2p.commonapi.appsocket.AppSocketReceiver, int)">connect</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DD><CODE>receiver</CODE> - calls receiveSocket() when a new AppSocket is opened to this application
on a remote node.</DL>
</DD>
</DL>
<HR>
<A NAME="accept(rice.p2p.commonapi.appsocket.AppSocketReceiver)"><!-- --></A><H3>
accept</H3>
<PRE>
public void <B>accept</B>(<A HREF="../../../rice/p2p/commonapi/appsocket/AppSocketReceiver.html" title="interface in rice.p2p.commonapi.appsocket">AppSocketReceiver</A>&nbsp;receiver)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#accept(rice.p2p.commonapi.appsocket.AppSocketReceiver)">Endpoint</A></CODE></B></DD>
<DD>Set's the acceptor for this application. If no acceptor is set, then when a remote
node's application opens a socket here, they will get an *Exception*
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#accept(rice.p2p.commonapi.appsocket.AppSocketReceiver)">accept</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>receiver</CODE> - calls receiveSocket() when a new AppSocket is opened to this application
from a remote node.
Note that you must call accept() again after each socket is received to properly handle
socket backlogging</DL>
</DD>
</DL>
<HR>
<A NAME="setDeserializer(rice.p2p.commonapi.rawserialization.MessageDeserializer)"><!-- --></A><H3>
setDeserializer</H3>
<PRE>
public void <B>setDeserializer</B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/MessageDeserializer.html" title="interface in rice.p2p.commonapi.rawserialization">MessageDeserializer</A>&nbsp;md)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#setDeserializer(rice.p2p.commonapi.rawserialization.MessageDeserializer)">Endpoint</A></CODE></B></DD>
<DD>To use a more efficient serialization format than Java Serialization
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#setDeserializer(rice.p2p.commonapi.rawserialization.MessageDeserializer)">setDeserializer</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getDeserializer()"><!-- --></A><H3>
getDeserializer</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/rawserialization/MessageDeserializer.html" title="interface in rice.p2p.commonapi.rawserialization">MessageDeserializer</A> <B>getDeserializer</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#getDeserializer()">Endpoint</A></CODE></B></DD>
<DD>Returns the deserializer. The default deserializer can deserialize rice.p2p.util.JavaSerializedMessage
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#getDeserializer()">getDeserializer</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<A NAME="readId(rice.p2p.commonapi.rawserialization.InputBuffer, short)"><!-- --></A><H3>
readId</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A> <B>readId</B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/InputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">InputBuffer</A>&nbsp;buf,
short&nbsp;type)
throws java.io.IOException</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#readId(rice.p2p.commonapi.rawserialization.InputBuffer, short)">Endpoint</A></CODE></B></DD>
<DD>To use a more efficient serialization format than Java Serialization
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#readId(rice.p2p.commonapi.rawserialization.InputBuffer, short)">readId</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="readNodeHandle(rice.p2p.commonapi.rawserialization.InputBuffer)"><!-- --></A><H3>
readNodeHandle</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A> <B>readNodeHandle</B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/InputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">InputBuffer</A>&nbsp;buf)
throws java.io.IOException</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/rawserialization/NodeHandleReader.html#readNodeHandle(rice.p2p.commonapi.rawserialization.InputBuffer)">NodeHandleReader</A></CODE></B></DD>
<DD>To use Raw Serialization
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#readNodeHandle(rice.p2p.commonapi.rawserialization.InputBuffer)">readNodeHandle</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/rawserialization/NodeHandleReader.html#readNodeHandle(rice.p2p.commonapi.rawserialization.InputBuffer)">readNodeHandle</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/rawserialization/NodeHandleReader.html" title="interface in rice.p2p.commonapi.rawserialization">NodeHandleReader</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="readIdRange(rice.p2p.commonapi.rawserialization.InputBuffer)"><!-- --></A><H3>
readIdRange</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A> <B>readIdRange</B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/InputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">InputBuffer</A>&nbsp;buf)
throws java.io.IOException</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#readIdRange(rice.p2p.commonapi.rawserialization.InputBuffer)">Endpoint</A></CODE></B></DD>
<DD>To use Raw Serialization
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#readIdRange(rice.p2p.commonapi.rawserialization.InputBuffer)">readIdRange</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="coalesce(rice.p2p.commonapi.NodeHandle)"><!-- --></A><H3>
coalesce</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A> <B>coalesce</B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/rawserialization/NodeHandleReader.html#coalesce(rice.p2p.commonapi.NodeHandle)">coalesce</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/rawserialization/NodeHandleReader.html" title="interface in rice.p2p.commonapi.rawserialization">NodeHandleReader</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="readNodeHandleSet(rice.p2p.commonapi.rawserialization.InputBuffer, short)"><!-- --></A><H3>
readNodeHandleSet</H3>
<PRE>
public <A HREF="../../../rice/p2p/commonapi/NodeHandleSet.html" title="interface in rice.p2p.commonapi">NodeHandleSet</A> <B>readNodeHandleSet</B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/InputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">InputBuffer</A>&nbsp;buf,
short&nbsp;type)
throws java.io.IOException</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#readNodeHandleSet(rice.p2p.commonapi.rawserialization.InputBuffer, short)">readNodeHandleSet</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="register()"><!-- --></A><H3>
register</H3>
<PRE>
public void <B>register</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#register()">Endpoint</A></CODE></B></DD>
<DD>Call this after you have set up your Endpoint:
called setDeserializer(), called accept().
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#register()">register</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="proximity(rice.p2p.commonapi.NodeHandle)"><!-- --></A><H3>
proximity</H3>
<PRE>
public int <B>proximity</B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;nh)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#proximity(rice.p2p.commonapi.NodeHandle)">Endpoint</A></CODE></B></DD>
<DD>This replaces NodeHandle.proximity(), so that you don't have to have a "coalesced" NodeHandle.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#proximity(rice.p2p.commonapi.NodeHandle)">proximity</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<A NAME="isAlive(rice.p2p.commonapi.NodeHandle)"><!-- --></A><H3>
isAlive</H3>
<PRE>
public boolean <B>isAlive</B>(<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;nh)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#isAlive(rice.p2p.commonapi.NodeHandle)">isAlive</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setConsistentRouting(boolean)"><!-- --></A><H3>
setConsistentRouting</H3>
<PRE>
public void <B>setConsistentRouting</B>(boolean&nbsp;val)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#setConsistentRouting(boolean)">Endpoint</A></CODE></B></DD>
<DD>default value is true
Consistent routing causes RouteMessages to be dropped if we are not sure that we are
responsible for our current id range. If you set this to false, you will be delivered
messages to forward() and deliver() even if there is possible inconsistent routing.
(The overlay still does it's best to deliver the RouteMessage to the proper key,
but some protocols can guarantee consistency, for example by using leases between
nodes)
Note that when true, the overlay never purposely drops messages routed with a null
key:
endpoint.deliver(null, msg, targetNodeHandle) // will be delivered regardless of consistency
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#setConsistentRouting(boolean)">setConsistentRouting</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="routingConsistentFor(rice.p2p.commonapi.Id)"><!-- --></A><H3>
routingConsistentFor</H3>
<PRE>
public boolean <B>routingConsistentFor</B>(<A HREF="../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#routingConsistentFor(rice.p2p.commonapi.Id)">Endpoint</A></CODE></B></DD>
<DD>Can we guarantee that this id is currently ours, and routing will be consistent?
Note that this has some real timing implications, so don't cache the returned value.
Note that it will always return always returns false if you are not the root of the id.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#routingConsistentFor(rice.p2p.commonapi.Id)">routingConsistentFor</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>true if routing consistency can currently be guaranteed for this</DL>
</DD>
</DL>
<HR>
<A NAME="setSendOptions(java.util.Map)"><!-- --></A><H3>
setSendOptions</H3>
<PRE>
public void <B>setSendOptions</B>(java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#setSendOptions(java.util.Map)">Endpoint</A></CODE></B></DD>
<DD>Uses these options as defaults.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html#setSendOptions(java.util.Map)">setSendOptions</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/MultiringEndpoint.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Rice Pastry API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../rice/p2p/multiring/MultiringApplication.html" title="class in rice.p2p.multiring"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../rice/p2p/multiring/MultiringIdFactory.html" title="class in rice.p2p.multiring"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?rice/p2p/multiring/MultiringEndpoint.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="MultiringEndpoint.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
<i>Copyright &#169; 2001-2005 - Rice Pastry.</i>
</BODY>
</HTML>