FreePastry/docs/javadoc/rice/pastry/PastryNode.html

2985 lines
131 KiB
HTML
Raw Permalink Normal View History

2019-05-13 16:45:05 +04:00
<!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:13 CET 2009 -->
<TITLE>
PastryNode (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="PastryNode (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/PastryNode.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/pastry/NodeSetUpdate.html" title="class in rice.pastry"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../rice/pastry/PastryNodeFactory.html" title="class in rice.pastry"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?rice/pastry/PastryNode.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="PastryNode.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.pastry</FONT>
<BR>
Class PastryNode</H2>
<PRE>
java.lang.Object
<IMG SRC="../../resources/inherit.gif" ALT="extended by ">java.util.Observable
<IMG SRC="../../resources/inherit.gif" ALT="extended by "><B>rice.pastry.PastryNode</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessListener.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;, <A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;, <A HREF="../../org/mpisws/p2p/transport/liveness/LivenessTypes.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessTypes</A>, <A HREF="../../org/mpisws/p2p/transport/proximity/ProximityListener.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;, <A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;, <A HREF="../../org/mpisws/p2p/transport/TransportLayerCallback.html" title="interface in org.mpisws.p2p.transport">TransportLayerCallback</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt;, <A HREF="../../rice/Destructable.html" title="interface in rice">Destructable</A>, <A HREF="../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>, <A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>PastryNode</B><DT>extends java.util.Observable<DT>implements <A HREF="../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>, <A HREF="../../rice/Destructable.html" title="interface in rice">Destructable</A>, <A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A>, <A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;, <A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;, <A HREF="../../org/mpisws/p2p/transport/proximity/ProximityListener.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;, <A HREF="../../org/mpisws/p2p/transport/TransportLayerCallback.html" title="interface in org.mpisws.p2p.transport">TransportLayerCallback</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt;, <A HREF="../../org/mpisws/p2p/transport/liveness/LivenessListener.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</DL>
</PRE>
<P>
A Pastry node is single entity in the pastry network.
<P>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>$Id: PastryNode.java 4664 2009-02-23 18:06:07Z jeffh $</DD>
<DT><B>Author:</B></DT>
<DD>Andrew Ladd</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;java.util.Vector</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#apps">apps</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/boot/Bootstrapper.html" title="interface in rice.pastry.boot">Bootstrapper</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#bootstrapper">bootstrapper</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call boot on this class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#CONNECTION_NO_ACCEPTOR">CONNECTION_NO_ACCEPTOR</A></B></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>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#CONNECTION_NO_APP">CONNECTION_NO_APP</A></B></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>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#CONNECTION_OK">CONNECTION_OK</A></B></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>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#CONNECTION_UNKNOWN">CONNECTION_UNKNOWN</A></B></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>static&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#CONNECTION_UNKNOWN_ERROR">CONNECTION_UNKNOWN_ERROR</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used by AppSockets</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#handleFactory">handleFactory</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used to deserialize NodeHandles</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#isDestroyed">isDestroyed</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/join/JoinProtocol.html" title="interface in rice.pastry.join">JoinProtocol</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#joiner">joiner</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call initiateJoin on this class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#joinFailed">joinFailed</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/JoinFailedException.html" title="class in rice.pastry">JoinFailedException</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#joinFailedReason">joinFailedReason</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#leafSet">leafSet</A></B></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>protected &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#leafSetMaintFreq">leafSetMaintFreq</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#leafSetRoutineMaintenance">leafSetRoutineMaintenance</A></B></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>protected &nbsp;<A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#livenessProvider">livenessProvider</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#localhandle">localhandle</A></B></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>protected &nbsp;<A HREF="../../rice/environment/logging/Logger.html" title="class in rice.environment.logging">Logger</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#logger">logger</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/Id.html" title="class in rice.pastry">Id</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#myNodeId">myNodeId</A></B></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>protected &nbsp;<A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#proxProvider">proxProvider</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/routing/Router.html" title="interface in rice.pastry.routing">Router</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#router">router</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#routeSet">routeSet</A></B></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>protected &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#routeSetMaintFreq">routeSetMaintFreq</A></B></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>protected &nbsp;<A HREF="../../rice/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#routeSetRoutineMaintenance">routeSetRoutineMaintenance</A></B></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>protected &nbsp;<A HREF="../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#tl">tl</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The top level transport layer.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.mpisws.p2p.transport.proximity.ProximityProvider"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface org.mpisws.p2p.transport.proximity.<A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html#DEFAULT_PROXIMITY">DEFAULT_PROXIMITY</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_org.mpisws.p2p.transport.liveness.LivenessTypes"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface org.mpisws.p2p.transport.liveness.<A HREF="../../org/mpisws/p2p/transport/liveness/LivenessTypes.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessTypes</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessTypes.html#LIVENESS_ALIVE">LIVENESS_ALIVE</A>, <A HREF="../../org/mpisws/p2p/transport/liveness/LivenessTypes.html#LIVENESS_DEAD">LIVENESS_DEAD</A>, <A HREF="../../org/mpisws/p2p/transport/liveness/LivenessTypes.html#LIVENESS_DEAD_FOREVER">LIVENESS_DEAD_FOREVER</A>, <A HREF="../../org/mpisws/p2p/transport/liveness/LivenessTypes.html#LIVENESS_SUSPECTED">LIVENESS_SUSPECTED</A></CODE></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><CODE><B><A HREF="../../rice/pastry/PastryNode.html#PastryNode(rice.pastry.Id, rice.environment.Environment)">PastryNode</A></B>(<A HREF="../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;id,
<A HREF="../../rice/environment/Environment.html" title="class in rice.environment">Environment</A>&nbsp;e)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor, with NodeId.</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>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#acceptAppSocket(int)">acceptAppSocket</A></B>(int&nbsp;appId)</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/Destructable.html" title="interface in rice">Destructable</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#addDestructable(rice.Destructable)">addDestructable</A></B>(<A HREF="../../rice/Destructable.html" title="interface in rice">Destructable</A>&nbsp;d)</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/pastry/PastryNode.html#addLeafSetListener(rice.pastry.NodeSetListener)">addLeafSetListener</A></B>(<A HREF="../../rice/pastry/NodeSetListener.html" title="interface in rice.pastry">NodeSetListener</A>&nbsp;listener)</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/pastry/PastryNode.html#addLeafSetObserver(java.util.Observer)">addLeafSetObserver</A></B>(java.util.Observer&nbsp;o)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use addLeafSetListener</I></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/pastry/PastryNode.html#addLivenessListener(org.mpisws.p2p.transport.liveness.LivenessListener)">addLivenessListener</A></B>(<A HREF="../../org/mpisws/p2p/transport/liveness/LivenessListener.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;name)</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/pastry/PastryNode.html#addNetworkListener(rice.pastry.NetworkListener)">addNetworkListener</A></B>(<A HREF="../../rice/pastry/NetworkListener.html" title="interface in rice.pastry">NetworkListener</A>&nbsp;listener)</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/pastry/PastryNode.html#addNodeHandleFactoryListener(rice.pastry.NodeHandleFactoryListener)">addNodeHandleFactoryListener</A></B>(<A HREF="../../rice/pastry/NodeHandleFactoryListener.html" title="interface in rice.pastry">NodeHandleFactoryListener</A>&nbsp;listener)</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/pastry/PastryNode.html#addProximityListener(org.mpisws.p2p.transport.proximity.ProximityListener)">addProximityListener</A></B>(<A HREF="../../org/mpisws/p2p/transport/proximity/ProximityListener.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;listener)</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/pastry/PastryNode.html#addRouteSetListener(rice.pastry.NodeSetListener)">addRouteSetListener</A></B>(<A HREF="../../rice/pastry/NodeSetListener.html" title="interface in rice.pastry">NodeSetListener</A>&nbsp;listener)</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/pastry/PastryNode.html#addRouteSetObserver(java.util.Observer)">addRouteSetObserver</A></B>(java.util.Observer&nbsp;o)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use addRouteSetListener</I></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/pastry/PastryNode.html#boot(java.util.Collection)">boot</A></B>(java.util.Collection&nbsp;o2)</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/pastry/PastryNode.html#boot(java.lang.Object)">boot</A></B>(java.lang.Object&nbsp;o)</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/pastry/PastryNode.html#broadcastChannelClosed(java.net.InetSocketAddress)">broadcastChannelClosed</A></B>(java.net.InetSocketAddress&nbsp;addr)</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/pastry/PastryNode.html#broadcastChannelOpened(java.net.InetSocketAddress, int)">broadcastChannelOpened</A></B>(java.net.InetSocketAddress&nbsp;addr,
int&nbsp;reason)</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/pastry/PastryNode.html#broadcastReceivedListeners(int, short, java.net.InetSocketAddress, int, int)">broadcastReceivedListeners</A></B>(int&nbsp;address,
short&nbsp;msgType,
java.net.InetSocketAddress&nbsp;from,
int&nbsp;size,
int&nbsp;wireType)</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/pastry/PastryNode.html#broadcastSentListeners(int, short, java.net.InetSocketAddress, int, int)">broadcastSentListeners</A></B>(int&nbsp;address,
short&nbsp;msgType,
java.net.InetSocketAddress&nbsp;dest,
int&nbsp;size,
int&nbsp;wireType)</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/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#buildEndpoint(rice.p2p.commonapi.Application, java.lang.String)">buildEndpoint</A></B>(<A HREF="../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A>&nbsp;application,
java.lang.String&nbsp;instance)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Same as register application, but returns an unregistered 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/pastry/PastryNode.html#checkLiveness(rice.pastry.NodeHandle, java.util.Map)">checkLiveness</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
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;Returns whether a new notification will occur.</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/pastry/PastryNode.html#clearState(rice.pastry.NodeHandle)">clearState</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Force layer to clear the existing state related to the Identifier.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#coalesce(rice.pastry.NodeHandle)">coalesce</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;newHandle)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Needed for legacy java deserialization of NodeHanlde because we aren't given any
other way to do this properly such as a protected constructor.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../org/mpisws/p2p/transport/SocketRequestHandle.html" title="interface in org.mpisws.p2p.transport">SocketRequestHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#connect(rice.pastry.NodeHandle, rice.p2p.commonapi.appsocket.AppSocketReceiver, rice.pastry.client.PastryAppl, int)">connect</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
<A HREF="../../rice/p2p/commonapi/appsocket/AppSocketReceiver.html" title="interface in rice.p2p.commonapi.appsocket">AppSocketReceiver</A>&nbsp;deliverSocketToMe,
<A HREF="../../rice/pastry/client/PastryAppl.html" title="class in rice.pastry.client">PastryAppl</A>&nbsp;appl,
int&nbsp;timeout)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called by PastryAppl to ask the transport layer to open a Socket to its counterpart on another node.</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/pastry/PastryNode.html#deleteLeafSetListener(rice.pastry.NodeSetListener)">deleteLeafSetListener</A></B>(<A HREF="../../rice/pastry/NodeSetListener.html" title="interface in rice.pastry">NodeSetListener</A>&nbsp;listener)</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/pastry/PastryNode.html#deleteLeafSetObserver(java.util.Observer)">deleteLeafSetObserver</A></B>(java.util.Observer&nbsp;o)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use deleteLeafSetListener</I></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/pastry/PastryNode.html#deleteRouteSetObserver(java.util.Observer)">deleteRouteSetObserver</A></B>(java.util.Observer&nbsp;o)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use deleteRouteSetListener</I></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/pastry/PastryNode.html#destroy()">destroy</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which kills a PastryNode.</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/pastry/PastryNode.html#doneNode(java.util.Collection)">doneNode</A></B>(java.util.Collection&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;bootstrap)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called after the node is initialized.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/pastry/boot/Bootstrapper.html" title="interface in rice.pastry.boot">Bootstrapper</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getBootstrapper()">getBootstrapper</A></B>()</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/pastry/ReadyStrategy.html" title="interface in rice.pastry">ReadyStrategy</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getDefaultReadyStrategy()">getDefaultReadyStrategy</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Simple Ready Strategy</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/pastry/PastryNode.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/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getHandleFactroy()">getHandleFactroy</A></B>()</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/Id.html" title="interface in rice.p2p.commonapi">Id</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getId()">getId</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the Id of this node</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/p2p/commonapi/IdFactory.html" title="interface in rice.p2p.commonapi">IdFactory</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getIdFactory()">getIdFactory</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a factory for Ids specific to this node's protocol.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getLeafSet()">getLeafSet</A></B>()</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;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getLiveness(rice.pastry.NodeHandle)">getLiveness</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i)</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;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getLiveness(rice.pastry.NodeHandle, java.util.Map)">getLiveness</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
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;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getLivenessProvider()">getLivenessProvider</A></B>()</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/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getLocalHandle()">getLocalHandle</A></B>()</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/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getLocalNodeHandle()">getLocalNodeHandle</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a handle to the local node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/pastry/messaging/MessageDispatch.html" title="class in rice.pastry.messaging">MessageDispatch</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getMessageDispatch()">getMessageDispatch</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FOR TESTING ONLY - DO NOT USE!</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Iterable&lt;<A HREF="../../rice/pastry/NetworkListener.html" title="interface in rice.pastry">NetworkListener</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getNetworkListeners()">getNetworkListeners</A></B>()</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/pastry/PastryNode.html#getNodeHandle(java.lang.Object, rice.Continuation)">getNodeHandle</A></B>(java.lang.Object&nbsp;o,
<A HREF="../../rice/Continuation.html" title="interface in rice">Continuation</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,java.lang.Exception&gt;&nbsp;c)</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/pastry/Id.html" title="class in rice.pastry">Id</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getNodeId()">getNodeId</A></B>()</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="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getProxProvider()">getProxProvider</A></B>()</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/pastry/routing/Router.html" title="interface in rice.pastry.routing">Router</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getRouter()">getRouter</A></B>()</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/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getRoutingTable()">getRoutingTable</A></B>()</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="../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getTL()">getTL</A></B>()</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;java.util.Map&lt;java.lang.String,java.lang.Object&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#getVars()">getVars</A></B>()</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/pastry/PastryNode.html#incomingSocket(org.mpisws.p2p.transport.P2PSocket)">incomingSocket</A></B>(<A HREF="../../org/mpisws/p2p/transport/P2PSocket.html" title="interface in org.mpisws.p2p.transport">P2PSocket</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;s)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Notification of a new socket.</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/pastry/PastryNode.html#isAlive(rice.pastry.NodeHandle)">isAlive</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i)</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;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#isClosest(rice.pastry.Id)">isClosest</A></B>(<A HREF="../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;key)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called by the layered Pastry application to check if the local pastry node
is the one that is currently closest to the object key id.</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/pastry/PastryNode.html#isReady()">isReady</A></B>()</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;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#joinFailed()">joinFailed</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns true if there was a fatal error Joining</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/pastry/PastryNode.html#joinFailed(rice.pastry.JoinFailedException)">joinFailed</A></B>(<A HREF="../../rice/pastry/JoinFailedException.html" title="class in rice.pastry">JoinFailedException</A>&nbsp;cje)</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/pastry/JoinFailedException.html" title="class in rice.pastry">JoinFailedException</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#joinFailedReason()">joinFailedReason</A></B>()</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/pastry/PastryNode.html#livenessChanged(rice.pastry.NodeHandle, int, java.util.Map)">livenessChanged</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
int&nbsp;val,
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;Called when the liveness changes.</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/pastry/PastryNode.html#messageReceived(rice.pastry.NodeHandle, rice.p2p.commonapi.rawserialization.RawMessage, java.util.Map)">messageReceived</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&nbsp;m,
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;Called when a new message is received.</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/pastry/PastryNode.html#nodeIsReady()">nodeIsReady</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use nodeIsReady(boolean)</I></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/pastry/PastryNode.html#nodeIsReady(boolean)">nodeIsReady</A></B>(boolean&nbsp;state)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden by derived classes, and invoked when the node has joined
successfully.</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/pastry/PastryNode.html#notifyLivenessListeners(rice.pastry.NodeHandle, int, java.util.Map)">notifyLivenessListeners</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
int&nbsp;val,
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;&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/pastry/PastryNode.html#notifyReadyObservers()">notifyReadyObservers</A></B>()</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;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#printRouteState()">printRouteState</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For debugging: print the internal routing state of the Node.</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/pastry/PastryNode.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, should
one exist.</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/pastry/PastryNode.html#proximity(rice.pastry.NodeHandle)">proximity</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;nh)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The proximity of the node handle.</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/pastry/PastryNode.html#proximity(rice.pastry.NodeHandle, java.util.Map)">proximity</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;nh,
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;&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/pastry/PastryNode.html#proximityChanged(rice.pastry.NodeHandle, int, java.util.Map)">proximityChanged</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;handle,
int&nbsp;val,
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;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.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;&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/pastry/PastryNode.html#receiveMessage(rice.pastry.messaging.Message)">receiveMessage</A></B>(<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message receiver interface.</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/pastry/PastryNode.html#registerApp(rice.pastry.client.PastryAppl)">registerApp</A></B>(<A HREF="../../rice/pastry/client/PastryAppl.html" title="class in rice.pastry.client">PastryAppl</A>&nbsp;app)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers an application with this pastry node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&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/pastry/PastryNode.html#registerApplication(rice.p2p.commonapi.Application, java.lang.String)">registerApplication</A></B>(<A HREF="../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A>&nbsp;application,
java.lang.String&nbsp;instance)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use buildEndpoint() endpoint.register()</I></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/pastry/PastryNode.html#registerReceiver(int, rice.pastry.client.PastryAppl)">registerReceiver</A></B>(int&nbsp;address,
<A HREF="../../rice/pastry/client/PastryAppl.html" title="class in rice.pastry.client">PastryAppl</A>&nbsp;receiver)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers a message receiver with this Pastry node.</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/pastry/PastryNode.html#removeDestructable(rice.Destructable)">removeDestructable</A></B>(<A HREF="../../rice/Destructable.html" title="interface in rice">Destructable</A>&nbsp;d)</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;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#removeLivenessListener(org.mpisws.p2p.transport.liveness.LivenessListener)">removeLivenessListener</A></B>(<A HREF="../../org/mpisws/p2p/transport/liveness/LivenessListener.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;name)</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/pastry/PastryNode.html#removeNetworkListener(rice.pastry.NetworkListener)">removeNetworkListener</A></B>(<A HREF="../../rice/pastry/NetworkListener.html" title="interface in rice.pastry">NetworkListener</A>&nbsp;listener)</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/pastry/PastryNode.html#removeNodeHandleFactoryListener(rice.pastry.NodeHandleFactoryListener)">removeNodeHandleFactoryListener</A></B>(<A HREF="../../rice/pastry/NodeHandleFactoryListener.html" title="interface in rice.pastry">NodeHandleFactoryListener</A>&nbsp;listener)</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;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#removeProximityListener(org.mpisws.p2p.transport.proximity.ProximityListener)">removeProximityListener</A></B>(<A HREF="../../org/mpisws/p2p/transport/proximity/ProximityListener.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;listener)</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/pastry/PastryNode.html#removeRouteSetListener(rice.pastry.NodeSetListener)">removeRouteSetListener</A></B>(<A HREF="../../rice/pastry/NodeSetListener.html" title="interface in rice.pastry">NodeSetListener</A>&nbsp;listener)</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/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#scheduleMsg(rice.pastry.messaging.Message, long)">scheduleMsg</A></B>(<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg,
long&nbsp;delay)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schedule the specified message to be sent to the local node after a
specified delay.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#scheduleMsg(rice.pastry.messaging.Message, long, long)">scheduleMsg</A></B>(<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg,
long&nbsp;delay,
long&nbsp;period)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schedule the specified message for repeated fixed-delay delivery to the
local node, beginning after the specified delay.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#scheduleMsgAtFixedRate(rice.pastry.messaging.Message, long, long)">scheduleMsgAtFixedRate</A></B>(<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg,
long&nbsp;delay,
long&nbsp;period)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Schedule the specified message for repeated fixed-rate delivery to the
local node, beginning after the specified delay.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/pastry/transport/PMessageReceipt.html" title="interface in rice.pastry.transport">PMessageReceipt</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.html#send(rice.pastry.NodeHandle, rice.pastry.messaging.Message, rice.pastry.transport.PMessageNotification, java.util.Map)">send</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;handle,
<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg,
<A HREF="../../rice/pastry/transport/PMessageNotification.html" title="interface in rice.pastry.transport">PMessageNotification</A>&nbsp;deliverAckToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;tempOptions)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deliver message to the NodeHandle.</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/pastry/PastryNode.html#setElements(rice.pastry.NodeHandle, rice.pastry.messaging.MessageDispatch, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable, rice.pastry.routing.Router)">setElements</A></B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;lh,
<A HREF="../../rice/pastry/messaging/MessageDispatch.html" title="class in rice.pastry.messaging">MessageDispatch</A>&nbsp;md,
<A HREF="../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A>&nbsp;ls,
<A HREF="../../rice/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A>&nbsp;rt,
<A HREF="../../rice/pastry/routing/Router.html" title="interface in rice.pastry.routing">Router</A>&nbsp;router)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Combined accessor method for various members of PastryNode.</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/pastry/PastryNode.html#setJoinProtocols(rice.pastry.boot.Bootstrapper, rice.pastry.join.JoinProtocol, rice.pastry.leafset.LeafSetProtocol, rice.pastry.routing.RouteSetProtocol)">setJoinProtocols</A></B>(<A HREF="../../rice/pastry/boot/Bootstrapper.html" title="interface in rice.pastry.boot">Bootstrapper</A>&nbsp;boot,
<A HREF="../../rice/pastry/join/JoinProtocol.html" title="interface in rice.pastry.join">JoinProtocol</A>&nbsp;joinP,
<A HREF="../../rice/pastry/leafset/LeafSetProtocol.html" title="interface in rice.pastry.leafset">LeafSetProtocol</A>&nbsp;leafsetP,
<A HREF="../../rice/pastry/routing/RouteSetProtocol.html" title="interface in rice.pastry.routing">RouteSetProtocol</A>&nbsp;routeP)</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/pastry/PastryNode.html#setMessageDispatch(rice.pastry.messaging.MessageDispatch)">setMessageDispatch</A></B>(<A HREF="../../rice/pastry/messaging/MessageDispatch.html" title="class in rice.pastry.messaging">MessageDispatch</A>&nbsp;md)</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/pastry/PastryNode.html#setNodeHandleFetcher(rice.pastry.NodeHandleFetcher)">setNodeHandleFetcher</A></B>(<A HREF="../../rice/pastry/NodeHandleFetcher.html" title="interface in rice.pastry">NodeHandleFetcher</A>&nbsp;nodeHandleFetcher)</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/pastry/PastryNode.html#setReady()">setReady</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden by derived classes to initiate the join process</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/pastry/PastryNode.html#setReady(boolean)">setReady</A></B>(boolean&nbsp;ready)</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/pastry/PastryNode.html#setReadyStrategy(rice.pastry.ReadyStrategy)">setReadyStrategy</A></B>(<A HREF="../../rice/pastry/ReadyStrategy.html" title="interface in rice.pastry">ReadyStrategy</A>&nbsp;rs)</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/pastry/PastryNode.html#setSocketElements(int, int, org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.proximity.ProximityProvider, rice.pastry.NodeHandleFactory)">setSocketElements</A></B>(int&nbsp;lsmf,
int&nbsp;rsmf,
<A HREF="../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt;&nbsp;tl,
<A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;livenessProvider,
<A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;proxProvider,
<A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A>&nbsp;handleFactory)</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;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/PastryNode.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.util.Observable"><!-- --></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.util.Observable</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged</CODE></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="CONNECTION_UNKNOWN_ERROR"><!-- --></A><H3>
CONNECTION_UNKNOWN_ERROR</H3>
<PRE>
public static final byte <B>CONNECTION_UNKNOWN_ERROR</B></PRE>
<DL>
<DD>Used by AppSockets
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#rice.pastry.PastryNode.CONNECTION_UNKNOWN_ERROR">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="CONNECTION_UNKNOWN"><!-- --></A><H3>
CONNECTION_UNKNOWN</H3>
<PRE>
public static final byte <B>CONNECTION_UNKNOWN</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#rice.pastry.PastryNode.CONNECTION_UNKNOWN">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="CONNECTION_OK"><!-- --></A><H3>
CONNECTION_OK</H3>
<PRE>
public static final byte <B>CONNECTION_OK</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#rice.pastry.PastryNode.CONNECTION_OK">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="CONNECTION_NO_APP"><!-- --></A><H3>
CONNECTION_NO_APP</H3>
<PRE>
public static final byte <B>CONNECTION_NO_APP</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#rice.pastry.PastryNode.CONNECTION_NO_APP">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="CONNECTION_NO_ACCEPTOR"><!-- --></A><H3>
CONNECTION_NO_ACCEPTOR</H3>
<PRE>
public static final byte <B>CONNECTION_NO_ACCEPTOR</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#rice.pastry.PastryNode.CONNECTION_NO_ACCEPTOR">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="myNodeId"><!-- --></A><H3>
myNodeId</H3>
<PRE>
protected <A HREF="../../rice/pastry/Id.html" title="class in rice.pastry">Id</A> <B>myNodeId</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="leafSet"><!-- --></A><H3>
leafSet</H3>
<PRE>
protected <A HREF="../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A> <B>leafSet</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="routeSet"><!-- --></A><H3>
routeSet</H3>
<PRE>
protected <A HREF="../../rice/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A> <B>routeSet</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="localhandle"><!-- --></A><H3>
localhandle</H3>
<PRE>
protected <A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A> <B>localhandle</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="apps"><!-- --></A><H3>
apps</H3>
<PRE>
protected java.util.Vector <B>apps</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="logger"><!-- --></A><H3>
logger</H3>
<PRE>
protected <A HREF="../../rice/environment/logging/Logger.html" title="class in rice.environment.logging">Logger</A> <B>logger</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="joinFailed"><!-- --></A><H3>
joinFailed</H3>
<PRE>
protected boolean <B>joinFailed</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="isDestroyed"><!-- --></A><H3>
isDestroyed</H3>
<PRE>
protected boolean <B>isDestroyed</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="router"><!-- --></A><H3>
router</H3>
<PRE>
protected <A HREF="../../rice/pastry/routing/Router.html" title="interface in rice.pastry.routing">Router</A> <B>router</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="handleFactory"><!-- --></A><H3>
handleFactory</H3>
<PRE>
protected <A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A> <B>handleFactory</B></PRE>
<DL>
<DD>Used to deserialize NodeHandles
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="joiner"><!-- --></A><H3>
joiner</H3>
<PRE>
protected <A HREF="../../rice/pastry/join/JoinProtocol.html" title="interface in rice.pastry.join">JoinProtocol</A> <B>joiner</B></PRE>
<DL>
<DD>Call initiateJoin on this class.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="bootstrapper"><!-- --></A><H3>
bootstrapper</H3>
<PRE>
protected <A HREF="../../rice/pastry/boot/Bootstrapper.html" title="interface in rice.pastry.boot">Bootstrapper</A> <B>bootstrapper</B></PRE>
<DL>
<DD>Call boot on this class.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="tl"><!-- --></A><H3>
tl</H3>
<PRE>
protected <A HREF="../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt; <B>tl</B></PRE>
<DL>
<DD>The top level transport layer.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="proxProvider"><!-- --></A><H3>
proxProvider</H3>
<PRE>
protected <A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt; <B>proxProvider</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="joinFailedReason"><!-- --></A><H3>
joinFailedReason</H3>
<PRE>
protected <A HREF="../../rice/pastry/JoinFailedException.html" title="class in rice.pastry">JoinFailedException</A> <B>joinFailedReason</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="leafSetMaintFreq"><!-- --></A><H3>
leafSetMaintFreq</H3>
<PRE>
protected int <B>leafSetMaintFreq</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="routeSetMaintFreq"><!-- --></A><H3>
routeSetMaintFreq</H3>
<PRE>
protected int <B>routeSetMaintFreq</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="leafSetRoutineMaintenance"><!-- --></A><H3>
leafSetRoutineMaintenance</H3>
<PRE>
protected <A HREF="../../rice/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A> <B>leafSetRoutineMaintenance</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="routeSetRoutineMaintenance"><!-- --></A><H3>
routeSetRoutineMaintenance</H3>
<PRE>
protected <A HREF="../../rice/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A> <B>routeSetRoutineMaintenance</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="livenessProvider"><!-- --></A><H3>
livenessProvider</H3>
<PRE>
protected <A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt; <B>livenessProvider</B></PRE>
<DL>
<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="PastryNode(rice.pastry.Id, rice.environment.Environment)"><!-- --></A><H3>
PastryNode</H3>
<PRE>
public <B>PastryNode</B>(<A HREF="../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;id,
<A HREF="../../rice/environment/Environment.html" title="class in rice.environment">Environment</A>&nbsp;e)</PRE>
<DL>
<DD>Constructor, with NodeId. Need to set the node's ID before this node is
inserted as localHandle.localNode.
<P>
</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="boot(java.lang.Object)"><!-- --></A><H3>
boot</H3>
<PRE>
public void <B>boot</B>(java.lang.Object&nbsp;o)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="boot(java.util.Collection)"><!-- --></A><H3>
boot</H3>
<PRE>
public void <B>boot</B>(java.util.Collection&nbsp;o2)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getDefaultReadyStrategy()"><!-- --></A><H3>
getDefaultReadyStrategy</H3>
<PRE>
public <A HREF="../../rice/pastry/ReadyStrategy.html" title="interface in rice.pastry">ReadyStrategy</A> <B>getDefaultReadyStrategy</B>()</PRE>
<DL>
<DD>Simple Ready Strategy
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setReadyStrategy(rice.pastry.ReadyStrategy)"><!-- --></A><H3>
setReadyStrategy</H3>
<PRE>
public void <B>setReadyStrategy</B>(<A HREF="../../rice/pastry/ReadyStrategy.html" title="interface in rice.pastry">ReadyStrategy</A>&nbsp;rs)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setElements(rice.pastry.NodeHandle, rice.pastry.messaging.MessageDispatch, rice.pastry.leafset.LeafSet, rice.pastry.routing.RoutingTable, rice.pastry.routing.Router)"><!-- --></A><H3>
setElements</H3>
<PRE>
public void <B>setElements</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;lh,
<A HREF="../../rice/pastry/messaging/MessageDispatch.html" title="class in rice.pastry.messaging">MessageDispatch</A>&nbsp;md,
<A HREF="../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A>&nbsp;ls,
<A HREF="../../rice/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A>&nbsp;rt,
<A HREF="../../rice/pastry/routing/Router.html" title="interface in rice.pastry.routing">Router</A>&nbsp;router)</PRE>
<DL>
<DD>Combined accessor method for various members of PastryNode. These are
generated by node factories, and assigned here.
Other elements specific to the wire protocol are assigned via methods
set{RMI,Direct}Elements in the respective derived classes.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>lh</CODE> - Node handle corresponding to this node.<DD><CODE>sm</CODE> - Security manager.<DD><CODE>md</CODE> - Message dispatcher.<DD><CODE>ls</CODE> - Leaf set.<DD><CODE>rt</CODE> - Routing table.</DL>
</DD>
</DL>
<HR>
<A NAME="setJoinProtocols(rice.pastry.boot.Bootstrapper, rice.pastry.join.JoinProtocol, rice.pastry.leafset.LeafSetProtocol, rice.pastry.routing.RouteSetProtocol)"><!-- --></A><H3>
setJoinProtocols</H3>
<PRE>
public void <B>setJoinProtocols</B>(<A HREF="../../rice/pastry/boot/Bootstrapper.html" title="interface in rice.pastry.boot">Bootstrapper</A>&nbsp;boot,
<A HREF="../../rice/pastry/join/JoinProtocol.html" title="interface in rice.pastry.join">JoinProtocol</A>&nbsp;joinP,
<A HREF="../../rice/pastry/leafset/LeafSetProtocol.html" title="interface in rice.pastry.leafset">LeafSetProtocol</A>&nbsp;leafsetP,
<A HREF="../../rice/pastry/routing/RouteSetProtocol.html" title="interface in rice.pastry.routing">RouteSetProtocol</A>&nbsp;routeP)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</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><B>Description copied from interface: <CODE><A HREF="../../rice/p2p/commonapi/Node.html#getLocalNodeHandle()">Node</A></CODE></B></DD>
<DD>Returns a handle to the local node. 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/Node.html#getLocalNodeHandle()">getLocalNodeHandle</A></CODE> in interface <CODE><A HREF="../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>A NodeHandle referring to the local node.</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/Node.html#getEnvironment()">Node</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/Node.html#getEnvironment()">getEnvironment</A></CODE> in interface <CODE><A HREF="../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the environment for this node/app.</DL>
</DD>
</DL>
<HR>
<A NAME="getLocalHandle()"><!-- --></A><H3>
getLocalHandle</H3>
<PRE>
public <A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A> <B>getLocalHandle</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getNodeId()"><!-- --></A><H3>
getNodeId</H3>
<PRE>
public <A HREF="../../rice/pastry/Id.html" title="class in rice.pastry">Id</A> <B>getNodeId</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isReady()"><!-- --></A><H3>
isReady</H3>
<PRE>
public boolean <B>isReady</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getMessageDispatch()"><!-- --></A><H3>
getMessageDispatch</H3>
<PRE>
public <A HREF="../../rice/pastry/messaging/MessageDispatch.html" title="class in rice.pastry.messaging">MessageDispatch</A> <B>getMessageDispatch</B>()</PRE>
<DL>
<DD>FOR TESTING ONLY - DO NOT USE!
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setMessageDispatch(rice.pastry.messaging.MessageDispatch)"><!-- --></A><H3>
setMessageDispatch</H3>
<PRE>
public void <B>setMessageDispatch</B>(<A HREF="../../rice/pastry/messaging/MessageDispatch.html" title="class in rice.pastry.messaging">MessageDispatch</A>&nbsp;md)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="addDestructable(rice.Destructable)"><!-- --></A><H3>
addDestructable</H3>
<PRE>
public <A HREF="../../rice/Destructable.html" title="interface in rice">Destructable</A> <B>addDestructable</B>(<A HREF="../../rice/Destructable.html" title="interface in rice">Destructable</A>&nbsp;d)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="removeDestructable(rice.Destructable)"><!-- --></A><H3>
removeDestructable</H3>
<PRE>
public boolean <B>removeDestructable</B>(<A HREF="../../rice/Destructable.html" title="interface in rice">Destructable</A>&nbsp;d)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nodeIsReady(boolean)"><!-- --></A><H3>
nodeIsReady</H3>
<PRE>
public void <B>nodeIsReady</B>(boolean&nbsp;state)</PRE>
<DL>
<DD>Overridden by derived classes, and invoked when the node has joined
successfully. This should probably be abstract, but maybe in a later
version.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>state</CODE> - true when the node is ready, false when not</DL>
</DD>
</DL>
<HR>
<A NAME="setReady()"><!-- --></A><H3>
setReady</H3>
<PRE>
public void <B>setReady</B>()</PRE>
<DL>
<DD>Overridden by derived classes to initiate the join process
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>bootstrap</CODE> - Node handle to bootstrap with.</DL>
</DD>
</DL>
<HR>
<A NAME="setReady(boolean)"><!-- --></A><H3>
setReady</H3>
<PRE>
public void <B>setReady</B>(boolean&nbsp;ready)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="coalesce(rice.pastry.NodeHandle)"><!-- --></A><H3>
coalesce</H3>
<PRE>
public <A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A> <B>coalesce</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;newHandle)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../rice/pastry/NodeHandleFactory.html#coalesce(NH)">NodeHandleFactory</A></CODE></B></DD>
<DD>Needed for legacy java deserialization of NodeHanlde because we aren't given any
other way to do this properly such as a protected constructor.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/pastry/NodeHandleFactory.html#coalesce(NH)">coalesce</A></CODE> in interface <CODE><A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<A NAME="notifyReadyObservers()"><!-- --></A><H3>
notifyReadyObservers</H3>
<PRE>
public void <B>notifyReadyObservers</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isClosest(rice.pastry.Id)"><!-- --></A><H3>
isClosest</H3>
<PRE>
public boolean <B>isClosest</B>(<A HREF="../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;key)</PRE>
<DL>
<DD>Called by the layered Pastry application to check if the local pastry node
is the one that is currently closest to the object key id.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>key</CODE> - the object key id
<DT><B>Returns:</B><DD>true if the local node is currently the closest to the key.</DL>
</DD>
</DL>
<HR>
<A NAME="getLeafSet()"><!-- --></A><H3>
getLeafSet</H3>
<PRE>
public <A HREF="../../rice/pastry/leafset/LeafSet.html" title="class in rice.pastry.leafset">LeafSet</A> <B>getLeafSet</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getRoutingTable()"><!-- --></A><H3>
getRoutingTable</H3>
<PRE>
public <A HREF="../../rice/pastry/routing/RoutingTable.html" title="class in rice.pastry.routing">RoutingTable</A> <B>getRoutingTable</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="addLeafSetObserver(java.util.Observer)"><!-- --></A><H3>
addLeafSetObserver</H3>
<PRE>
public void <B>addLeafSetObserver</B>(java.util.Observer&nbsp;o)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use addLeafSetListener</I>
<P>
<DD>Add a leaf set observer to the Pastry node.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - the observer.</DL>
</DD>
</DL>
<HR>
<A NAME="deleteLeafSetObserver(java.util.Observer)"><!-- --></A><H3>
deleteLeafSetObserver</H3>
<PRE>
public void <B>deleteLeafSetObserver</B>(java.util.Observer&nbsp;o)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use deleteLeafSetListener</I>
<P>
<DD>Delete a leaf set observer from the Pastry node.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - the observer.</DL>
</DD>
</DL>
<HR>
<A NAME="addLeafSetListener(rice.pastry.NodeSetListener)"><!-- --></A><H3>
addLeafSetListener</H3>
<PRE>
public void <B>addLeafSetListener</B>(<A HREF="../../rice/pastry/NodeSetListener.html" title="interface in rice.pastry">NodeSetListener</A>&nbsp;listener)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="deleteLeafSetListener(rice.pastry.NodeSetListener)"><!-- --></A><H3>
deleteLeafSetListener</H3>
<PRE>
public void <B>deleteLeafSetListener</B>(<A HREF="../../rice/pastry/NodeSetListener.html" title="interface in rice.pastry">NodeSetListener</A>&nbsp;listener)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="addRouteSetObserver(java.util.Observer)"><!-- --></A><H3>
addRouteSetObserver</H3>
<PRE>
public void <B>addRouteSetObserver</B>(java.util.Observer&nbsp;o)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use addRouteSetListener</I>
<P>
<DD>Add a route set observer to the Pastry node.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - the observer.</DL>
</DD>
</DL>
<HR>
<A NAME="deleteRouteSetObserver(java.util.Observer)"><!-- --></A><H3>
deleteRouteSetObserver</H3>
<PRE>
public void <B>deleteRouteSetObserver</B>(java.util.Observer&nbsp;o)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use deleteRouteSetListener</I>
<P>
<DD>Delete a route set observer from the Pastry node.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - the observer.</DL>
</DD>
</DL>
<HR>
<A NAME="addRouteSetListener(rice.pastry.NodeSetListener)"><!-- --></A><H3>
addRouteSetListener</H3>
<PRE>
public void <B>addRouteSetListener</B>(<A HREF="../../rice/pastry/NodeSetListener.html" title="interface in rice.pastry">NodeSetListener</A>&nbsp;listener)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="removeRouteSetListener(rice.pastry.NodeSetListener)"><!-- --></A><H3>
removeRouteSetListener</H3>
<PRE>
public void <B>removeRouteSetListener</B>(<A HREF="../../rice/pastry/NodeSetListener.html" title="interface in rice.pastry">NodeSetListener</A>&nbsp;listener)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="receiveMessage(rice.pastry.messaging.Message)"><!-- --></A><H3>
receiveMessage</H3>
<PRE>
public void <B>receiveMessage</B>(<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg)</PRE>
<DL>
<DD>message receiver interface. synchronized so that the external message
processing thread and the leafset/route maintenance thread won't interfere
with application messages.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="registerReceiver(int, rice.pastry.client.PastryAppl)"><!-- --></A><H3>
registerReceiver</H3>
<PRE>
public void <B>registerReceiver</B>(int&nbsp;address,
<A HREF="../../rice/pastry/client/PastryAppl.html" title="class in rice.pastry.client">PastryAppl</A>&nbsp;receiver)</PRE>
<DL>
<DD>Registers a message receiver with this Pastry node.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>cred</CODE> - the credentials.<DD><CODE>address</CODE> - the address that the receiver will be at.<DD><CODE>receiver</CODE> - the message receiver.</DL>
</DD>
</DL>
<HR>
<A NAME="registerApp(rice.pastry.client.PastryAppl)"><!-- --></A><H3>
registerApp</H3>
<PRE>
public void <B>registerApp</B>(<A HREF="../../rice/pastry/client/PastryAppl.html" title="class in rice.pastry.client">PastryAppl</A>&nbsp;app)</PRE>
<DL>
<DD>Registers an application with this pastry node.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>app</CODE> - the application</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="registerApplication(rice.p2p.commonapi.Application, java.lang.String)"><!-- --></A><H3>
registerApplication</H3>
<PRE>
public <A HREF="../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A> <B>registerApplication</B>(<A HREF="../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A>&nbsp;application,
java.lang.String&nbsp;instance)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use buildEndpoint() endpoint.register()</I>
<P>
<DD>This returns a VirtualizedNode specific to the given application and
instance name to the application, which the application can then use in
order to send an receive messages.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/p2p/commonapi/Node.html#registerApplication(rice.p2p.commonapi.Application, java.lang.String)">registerApplication</A></CODE> in interface <CODE><A HREF="../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>application</CODE> - The Application<DD><CODE>instance</CODE> - An identifier for a given instance
<DT><B>Returns:</B><DD>The endpoint specific to this applicationk, which can be used for
message sending/receiving.</DL>
</DD>
</DL>
<HR>
<A NAME="buildEndpoint(rice.p2p.commonapi.Application, java.lang.String)"><!-- --></A><H3>
buildEndpoint</H3>
<PRE>
public <A HREF="../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A> <B>buildEndpoint</B>(<A HREF="../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A>&nbsp;application,
java.lang.String&nbsp;instance)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../rice/p2p/commonapi/Node.html#buildEndpoint(rice.p2p.commonapi.Application, java.lang.String)">Node</A></CODE></B></DD>
<DD>Same as register application, but returns an unregistered Endpoint. This allows
the application to finish initialization that may require the endpoint
before it receives messages from the network and notification of changes.
When then application is ready, it must call endpoint.register() to receive messages.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/p2p/commonapi/Node.html#buildEndpoint(rice.p2p.commonapi.Application, java.lang.String)">buildEndpoint</A></CODE> in interface <CODE><A HREF="../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<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 the Id of this node
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/p2p/commonapi/Node.html#getId()">getId</A></CODE> in interface <CODE><A HREF="../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>This node's Id</DL>
</DD>
</DL>
<HR>
<A NAME="getIdFactory()"><!-- --></A><H3>
getIdFactory</H3>
<PRE>
public <A HREF="../../rice/p2p/commonapi/IdFactory.html" title="interface in rice.p2p.commonapi">IdFactory</A> <B>getIdFactory</B>()</PRE>
<DL>
<DD>Returns a factory for Ids specific to this node's protocol.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/p2p/commonapi/Node.html#getIdFactory()">getIdFactory</A></CODE> in interface <CODE><A HREF="../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>A factory for creating Ids.</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, should
one exist. 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>
</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="destroy()"><!-- --></A><H3>
destroy</H3>
<PRE>
public void <B>destroy</B>()</PRE>
<DL>
<DD>Method which kills a PastryNode. Note, this doesn't implicitly kill the environment.
Make sure to call super.destroy() !!!
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/Destructable.html#destroy()">destroy</A></CODE> in interface <CODE><A HREF="../../rice/Destructable.html" title="interface in rice">Destructable</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="connect(rice.pastry.NodeHandle, rice.p2p.commonapi.appsocket.AppSocketReceiver, rice.pastry.client.PastryAppl, int)"><!-- --></A><H3>
connect</H3>
<PRE>
public <A HREF="../../org/mpisws/p2p/transport/SocketRequestHandle.html" title="interface in org.mpisws.p2p.transport">SocketRequestHandle</A> <B>connect</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
<A HREF="../../rice/p2p/commonapi/appsocket/AppSocketReceiver.html" title="interface in rice.p2p.commonapi.appsocket">AppSocketReceiver</A>&nbsp;deliverSocketToMe,
<A HREF="../../rice/pastry/client/PastryAppl.html" title="class in rice.pastry.client">PastryAppl</A>&nbsp;appl,
int&nbsp;timeout)</PRE>
<DL>
<DD>Called by PastryAppl to ask the transport layer to open a Socket to its counterpart on another node.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>handle</CODE> - <DD><CODE>receiver</CODE> - <DD><CODE>appl</CODE> - </DL>
</DD>
</DL>
<HR>
<A NAME="joinFailed(rice.pastry.JoinFailedException)"><!-- --></A><H3>
joinFailed</H3>
<PRE>
public void <B>joinFailed</B>(<A HREF="../../rice/pastry/JoinFailedException.html" title="class in rice.pastry">JoinFailedException</A>&nbsp;cje)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="joinFailed()"><!-- --></A><H3>
joinFailed</H3>
<PRE>
public boolean <B>joinFailed</B>()</PRE>
<DL>
<DD>Returns true if there was a fatal error Joining
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<A NAME="joinFailedReason()"><!-- --></A><H3>
joinFailedReason</H3>
<PRE>
public <A HREF="../../rice/pastry/JoinFailedException.html" title="class in rice.pastry">JoinFailedException</A> <B>joinFailedReason</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getRouter()"><!-- --></A><H3>
getRouter</H3>
<PRE>
public <A HREF="../../rice/pastry/routing/Router.html" title="interface in rice.pastry.routing">Router</A> <B>getRouter</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="printRouteState()"><!-- --></A><H3>
printRouteState</H3>
<PRE>
public java.lang.String <B>printRouteState</B>()</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../rice/p2p/commonapi/Node.html#printRouteState()">Node</A></CODE></B></DD>
<DD>For debugging: print the internal routing state of the Node.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/p2p/commonapi/Node.html#printRouteState()">printRouteState</A></CODE> in interface <CODE><A HREF="../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<A NAME="setSocketElements(int, int, org.mpisws.p2p.transport.TransportLayer, org.mpisws.p2p.transport.liveness.LivenessProvider, org.mpisws.p2p.transport.proximity.ProximityProvider, rice.pastry.NodeHandleFactory)"><!-- --></A><H3>
setSocketElements</H3>
<PRE>
public void <B>setSocketElements</B>(int&nbsp;lsmf,
int&nbsp;rsmf,
<A HREF="../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt;&nbsp;tl,
<A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;livenessProvider,
<A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;proxProvider,
<A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A>&nbsp;handleFactory)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getVars()"><!-- --></A><H3>
getVars</H3>
<PRE>
public java.util.Map&lt;java.lang.String,java.lang.Object&gt; <B>getVars</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="incomingSocket(org.mpisws.p2p.transport.P2PSocket)"><!-- --></A><H3>
incomingSocket</H3>
<PRE>
public void <B>incomingSocket</B>(<A HREF="../../org/mpisws/p2p/transport/P2PSocket.html" title="interface in org.mpisws.p2p.transport">P2PSocket</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;s)
throws java.io.IOException</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mpisws/p2p/transport/TransportLayerCallback.html#incomingSocket(org.mpisws.p2p.transport.P2PSocket)">TransportLayerCallback</A></CODE></B></DD>
<DD>Notification of a new socket.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/TransportLayerCallback.html#incomingSocket(org.mpisws.p2p.transport.P2PSocket)">incomingSocket</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/TransportLayerCallback.html" title="interface in org.mpisws.p2p.transport">TransportLayerCallback</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt;</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>s</CODE> - the incoming socket
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="acceptAppSocket(int)"><!-- --></A><H3>
acceptAppSocket</H3>
<PRE>
protected void <B>acceptAppSocket</B>(int&nbsp;appId)
throws <A HREF="../../rice/p2p/commonapi/exception/AppSocketException.html" title="class in rice.p2p.commonapi.exception">AppSocketException</A></PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../rice/p2p/commonapi/exception/AppSocketException.html" title="class in rice.p2p.commonapi.exception">AppSocketException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="proximity(rice.pastry.NodeHandle)"><!-- --></A><H3>
proximity</H3>
<PRE>
public int <B>proximity</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;nh)</PRE>
<DL>
<DD>The proximity of the node handle.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nh</CODE> -
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<A NAME="proximity(rice.pastry.NodeHandle, java.util.Map)"><!-- --></A><H3>
proximity</H3>
<PRE>
public int <B>proximity</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;nh,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html#proximity(Identifier, java.util.Map)">proximity</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="scheduleMsg(rice.pastry.messaging.Message, long)"><!-- --></A><H3>
scheduleMsg</H3>
<PRE>
public <A HREF="../../rice/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A> <B>scheduleMsg</B>(<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg,
long&nbsp;delay)</PRE>
<DL>
<DD>Schedule the specified message to be sent to the local node after a
specified delay. Useful to provide timeouts.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msg</CODE> - a message that will be delivered to the local node after the
specified delay<DD><CODE>delay</CODE> - time in milliseconds before message is to be delivered
<DT><B>Returns:</B><DD>the scheduled event object; can be used to cancel the message</DL>
</DD>
</DL>
<HR>
<A NAME="scheduleMsg(rice.pastry.messaging.Message, long, long)"><!-- --></A><H3>
scheduleMsg</H3>
<PRE>
public <A HREF="../../rice/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A> <B>scheduleMsg</B>(<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg,
long&nbsp;delay,
long&nbsp;period)</PRE>
<DL>
<DD>Schedule the specified message for repeated fixed-delay delivery to the
local node, beginning after the specified delay. Subsequent executions take
place at approximately regular intervals separated by the specified period.
Useful to initiate periodic tasks.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msg</CODE> - a message that will be delivered to the local node after the
specified delay<DD><CODE>delay</CODE> - time in milliseconds before message is to be delivered<DD><CODE>period</CODE> - time in milliseconds between successive message deliveries
<DT><B>Returns:</B><DD>the scheduled event object; can be used to cancel the message</DL>
</DD>
</DL>
<HR>
<A NAME="scheduleMsgAtFixedRate(rice.pastry.messaging.Message, long, long)"><!-- --></A><H3>
scheduleMsgAtFixedRate</H3>
<PRE>
public <A HREF="../../rice/pastry/ScheduledMessage.html" title="class in rice.pastry">ScheduledMessage</A> <B>scheduleMsgAtFixedRate</B>(<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg,
long&nbsp;delay,
long&nbsp;period)</PRE>
<DL>
<DD>Schedule the specified message for repeated fixed-rate delivery to the
local node, beginning after the specified delay. Subsequent executions take
place at approximately regular intervals, separated by the specified
period.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msg</CODE> - a message that will be delivered to the local node after the
specified delay<DD><CODE>delay</CODE> - time in milliseconds before message is to be delivered<DD><CODE>period</CODE> - time in milliseconds between successive message deliveries
<DT><B>Returns:</B><DD>the scheduled event object; can be used to cancel the message</DL>
</DD>
</DL>
<HR>
<A NAME="send(rice.pastry.NodeHandle, rice.pastry.messaging.Message, rice.pastry.transport.PMessageNotification, java.util.Map)"><!-- --></A><H3>
send</H3>
<PRE>
public <A HREF="../../rice/pastry/transport/PMessageReceipt.html" title="interface in rice.pastry.transport">PMessageReceipt</A> <B>send</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;handle,
<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg,
<A HREF="../../rice/pastry/transport/PMessageNotification.html" title="interface in rice.pastry.transport">PMessageNotification</A>&nbsp;deliverAckToMe,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;tempOptions)</PRE>
<DL>
<DD>Deliver message to the NodeHandle.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>nh</CODE> - <DD><CODE>m</CODE> -
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<A NAME="messageReceived(rice.pastry.NodeHandle, rice.p2p.commonapi.rawserialization.RawMessage, java.util.Map)"><!-- --></A><H3>
messageReceived</H3>
<PRE>
public void <B>messageReceived</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&nbsp;m,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)
throws java.io.IOException</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mpisws/p2p/transport/TransportLayerCallback.html#messageReceived(Identifier, MessageType, java.util.Map)">TransportLayerCallback</A></CODE></B></DD>
<DD>Called when a new message is received.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/TransportLayerCallback.html#messageReceived(Identifier, MessageType, java.util.Map)">messageReceived</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/TransportLayerCallback.html" title="interface in org.mpisws.p2p.transport">TransportLayerCallback</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt;</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>i</CODE> - The node it is coming from<DD><CODE>m</CODE> - the message<DD><CODE>options</CODE> - describe how the message arrived (udp/tcp, encrypted etc)
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - if there is a problem decoding the message</DL>
</DD>
</DL>
<HR>
<A NAME="readNodeHandle(rice.p2p.commonapi.rawserialization.InputBuffer)"><!-- --></A><H3>
readNodeHandle</H3>
<PRE>
public <A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">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><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/pastry/NodeHandleFactory.html#readNodeHandle(rice.p2p.commonapi.rawserialization.InputBuffer)">readNodeHandle</A></CODE> in interface <CODE><A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="getBootstrapper()"><!-- --></A><H3>
getBootstrapper</H3>
<PRE>
public <A HREF="../../rice/pastry/boot/Bootstrapper.html" title="interface in rice.pastry.boot">Bootstrapper</A> <B>getBootstrapper</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="doneNode(java.util.Collection)"><!-- --></A><H3>
doneNode</H3>
<PRE>
public void <B>doneNode</B>(java.util.Collection&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;bootstrap)</PRE>
<DL>
<DD>Called after the node is initialized.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>bootstrap</CODE> - The node which this node should boot off of.</DL>
</DD>
</DL>
<HR>
<A NAME="livenessChanged(rice.pastry.NodeHandle, int, java.util.Map)"><!-- --></A><H3>
livenessChanged</H3>
<PRE>
public void <B>livenessChanged</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
int&nbsp;val,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessListener.html#livenessChanged(Identifier, int, java.util.Map)">LivenessListener</A></CODE></B></DD>
<DD>Called when the liveness changes.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessListener.html#livenessChanged(Identifier, int, java.util.Map)">livenessChanged</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessListener.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="addLivenessListener(org.mpisws.p2p.transport.liveness.LivenessListener)"><!-- --></A><H3>
addLivenessListener</H3>
<PRE>
public void <B>addLivenessListener</B>(<A HREF="../../org/mpisws/p2p/transport/liveness/LivenessListener.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;name)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html#addLivenessListener(org.mpisws.p2p.transport.liveness.LivenessListener)">addLivenessListener</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="removeLivenessListener(org.mpisws.p2p.transport.liveness.LivenessListener)"><!-- --></A><H3>
removeLivenessListener</H3>
<PRE>
public boolean <B>removeLivenessListener</B>(<A HREF="../../org/mpisws/p2p/transport/liveness/LivenessListener.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;name)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html#removeLivenessListener(org.mpisws.p2p.transport.liveness.LivenessListener)">removeLivenessListener</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="notifyLivenessListeners(rice.pastry.NodeHandle, int, java.util.Map)"><!-- --></A><H3>
notifyLivenessListeners</H3>
<PRE>
protected void <B>notifyLivenessListeners</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
int&nbsp;val,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="checkLiveness(rice.pastry.NodeHandle, java.util.Map)"><!-- --></A><H3>
checkLiveness</H3>
<PRE>
public boolean <B>checkLiveness</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html#checkLiveness(Identifier, java.util.Map)">LivenessProvider</A></CODE></B></DD>
<DD>Returns whether a new notification will occur.
Will return false if a liveness check has recently completed.
Will return true if a new liveness check starts, or an existing one is in progress.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html#checkLiveness(Identifier, java.util.Map)">checkLiveness</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>i</CODE> - the node to check
<DT><B>Returns:</B><DD>true if there will be an update (either a ping, or a change in liveness)
false if there won't be an update due to bandwidth concerns</DL>
</DD>
</DL>
<HR>
<A NAME="getLiveness(rice.pastry.NodeHandle, java.util.Map)"><!-- --></A><H3>
getLiveness</H3>
<PRE>
public int <B>getLiveness</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html#getLiveness(Identifier, java.util.Map)">getLiveness</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getLiveness(rice.pastry.NodeHandle)"><!-- --></A><H3>
getLiveness</H3>
<PRE>
public int <B>getLiveness</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="isAlive(rice.pastry.NodeHandle)"><!-- --></A><H3>
isAlive</H3>
<PRE>
public boolean <B>isAlive</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="proximityChanged(rice.pastry.NodeHandle, int, java.util.Map)"><!-- --></A><H3>
proximityChanged</H3>
<PRE>
public void <B>proximityChanged</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;handle,
int&nbsp;val,
java.util.Map&lt;java.lang.String,java.lang.Object&gt;&nbsp;options)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityListener.html#proximityChanged(Identifier, int, java.util.Map)">proximityChanged</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityListener.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getLivenessProvider()"><!-- --></A><H3>
getLivenessProvider</H3>
<PRE>
public <A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt; <B>getLivenessProvider</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getProxProvider()"><!-- --></A><H3>
getProxProvider</H3>
<PRE>
public <A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt; <B>getProxProvider</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getTL()"><!-- --></A><H3>
getTL</H3>
<PRE>
public <A HREF="../../org/mpisws/p2p/transport/TransportLayer.html" title="interface in org.mpisws.p2p.transport">TransportLayer</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,<A HREF="../../rice/p2p/commonapi/rawserialization/RawMessage.html" title="interface in rice.p2p.commonapi.rawserialization">RawMessage</A>&gt; <B>getTL</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="clearState(rice.pastry.NodeHandle)"><!-- --></A><H3>
clearState</H3>
<PRE>
public void <B>clearState</B>(<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&nbsp;i)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html#clearState(Identifier)">LivenessProvider</A></CODE></B></DD>
<DD>Force layer to clear the existing state related to the Identifier. Usually
if there is reason to believe a node has returned.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html#clearState(Identifier)">clearState</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/liveness/LivenessProvider.html" title="interface in org.mpisws.p2p.transport.liveness">LivenessProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html#clearState(Identifier)">clearState</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="addProximityListener(org.mpisws.p2p.transport.proximity.ProximityListener)"><!-- --></A><H3>
addProximityListener</H3>
<PRE>
public void <B>addProximityListener</B>(<A HREF="../../org/mpisws/p2p/transport/proximity/ProximityListener.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;listener)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html#addProximityListener(org.mpisws.p2p.transport.proximity.ProximityListener)">addProximityListener</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="removeProximityListener(org.mpisws.p2p.transport.proximity.ProximityListener)"><!-- --></A><H3>
removeProximityListener</H3>
<PRE>
public boolean <B>removeProximityListener</B>(<A HREF="../../org/mpisws/p2p/transport/proximity/ProximityListener.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityListener</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;&nbsp;listener)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html#removeProximityListener(org.mpisws.p2p.transport.proximity.ProximityListener)">removeProximityListener</A></CODE> in interface <CODE><A HREF="../../org/mpisws/p2p/transport/proximity/ProximityProvider.html" title="interface in org.mpisws.p2p.transport.proximity">ProximityProvider</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nodeIsReady()"><!-- --></A><H3>
nodeIsReady</H3>
<PRE>
public void <B>nodeIsReady</B>()</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use nodeIsReady(boolean)</I>
<P>
<DD>Overridden by derived classes, and invoked when the node has joined
successfully.
This one is for backwards compatability. It will soon be deprecated.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getHandleFactroy()"><!-- --></A><H3>
getHandleFactroy</H3>
<PRE>
public <A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A> <B>getHandleFactroy</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="addNetworkListener(rice.pastry.NetworkListener)"><!-- --></A><H3>
addNetworkListener</H3>
<PRE>
public void <B>addNetworkListener</B>(<A HREF="../../rice/pastry/NetworkListener.html" title="interface in rice.pastry">NetworkListener</A>&nbsp;listener)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="removeNetworkListener(rice.pastry.NetworkListener)"><!-- --></A><H3>
removeNetworkListener</H3>
<PRE>
public void <B>removeNetworkListener</B>(<A HREF="../../rice/pastry/NetworkListener.html" title="interface in rice.pastry">NetworkListener</A>&nbsp;listener)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getNetworkListeners()"><!-- --></A><H3>
getNetworkListeners</H3>
<PRE>
protected java.lang.Iterable&lt;<A HREF="../../rice/pastry/NetworkListener.html" title="interface in rice.pastry">NetworkListener</A>&gt; <B>getNetworkListeners</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="broadcastChannelClosed(java.net.InetSocketAddress)"><!-- --></A><H3>
broadcastChannelClosed</H3>
<PRE>
public void <B>broadcastChannelClosed</B>(java.net.InetSocketAddress&nbsp;addr)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="broadcastChannelOpened(java.net.InetSocketAddress, int)"><!-- --></A><H3>
broadcastChannelOpened</H3>
<PRE>
public void <B>broadcastChannelOpened</B>(java.net.InetSocketAddress&nbsp;addr,
int&nbsp;reason)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="broadcastSentListeners(int, short, java.net.InetSocketAddress, int, int)"><!-- --></A><H3>
broadcastSentListeners</H3>
<PRE>
public void <B>broadcastSentListeners</B>(int&nbsp;address,
short&nbsp;msgType,
java.net.InetSocketAddress&nbsp;dest,
int&nbsp;size,
int&nbsp;wireType)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="broadcastReceivedListeners(int, short, java.net.InetSocketAddress, int, int)"><!-- --></A><H3>
broadcastReceivedListeners</H3>
<PRE>
public void <B>broadcastReceivedListeners</B>(int&nbsp;address,
short&nbsp;msgType,
java.net.InetSocketAddress&nbsp;from,
int&nbsp;size,
int&nbsp;wireType)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="addNodeHandleFactoryListener(rice.pastry.NodeHandleFactoryListener)"><!-- --></A><H3>
addNodeHandleFactoryListener</H3>
<PRE>
public void <B>addNodeHandleFactoryListener</B>(<A HREF="../../rice/pastry/NodeHandleFactoryListener.html" title="interface in rice.pastry">NodeHandleFactoryListener</A>&nbsp;listener)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/pastry/NodeHandleFactory.html#addNodeHandleFactoryListener(rice.pastry.NodeHandleFactoryListener)">addNodeHandleFactoryListener</A></CODE> in interface <CODE><A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="removeNodeHandleFactoryListener(rice.pastry.NodeHandleFactoryListener)"><!-- --></A><H3>
removeNodeHandleFactoryListener</H3>
<PRE>
public void <B>removeNodeHandleFactoryListener</B>(<A HREF="../../rice/pastry/NodeHandleFactoryListener.html" title="interface in rice.pastry">NodeHandleFactoryListener</A>&nbsp;listener)</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/pastry/NodeHandleFactory.html#removeNodeHandleFactoryListener(rice.pastry.NodeHandleFactoryListener)">removeNodeHandleFactoryListener</A></CODE> in interface <CODE><A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry">NodeHandleFactory</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setNodeHandleFetcher(rice.pastry.NodeHandleFetcher)"><!-- --></A><H3>
setNodeHandleFetcher</H3>
<PRE>
public void <B>setNodeHandleFetcher</B>(<A HREF="../../rice/pastry/NodeHandleFetcher.html" title="interface in rice.pastry">NodeHandleFetcher</A>&nbsp;nodeHandleFetcher)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getNodeHandle(java.lang.Object, rice.Continuation)"><!-- --></A><H3>
getNodeHandle</H3>
<PRE>
public void <B>getNodeHandle</B>(java.lang.Object&nbsp;o,
<A HREF="../../rice/Continuation.html" title="interface in rice">Continuation</A>&lt;<A HREF="../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A>,java.lang.Exception&gt;&nbsp;c)</PRE>
<DL>
<DD><DL>
</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/PastryNode.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/pastry/NodeSetUpdate.html" title="class in rice.pastry"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../rice/pastry/PastryNodeFactory.html" title="class in rice.pastry"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?rice/pastry/PastryNode.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="PastryNode.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>