FreePastry/docs/javadoc/rice/pastry/socket/SocketNodeHandle.html
ChronosX88 aaa73fe8b3 Pew
2019-05-13 16:45:05 +04:00

779 lines
36 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_07) on Fri Mar 13 20:01:15 CET 2009 -->
<TITLE>
SocketNodeHandle (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="SocketNodeHandle (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/SocketNodeHandle.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/socket/PendingAppSocket.html" title="class in rice.pastry.socket"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../rice/pastry/socket/SocketNodeHandleFactory.html" title="class in rice.pastry.socket"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?rice/pastry/socket/SocketNodeHandle.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SocketNodeHandle.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.socket</FONT>
<BR>
Class SocketNodeHandle</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.util.Observable
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">rice.p2p.commonapi.NodeHandle</A>
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">rice.pastry.NodeHandle</A>
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../rice/pastry/socket/TransportLayerNodeHandle.html" title="class in rice.pastry.socket">rice.pastry.socket.TransportLayerNodeHandle</A>&lt;Identifier&gt;
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../rice/pastry/dist/DistNodeHandle.html" title="class in rice.pastry.dist">rice.pastry.dist.DistNodeHandle</A>&lt;<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>rice.pastry.socket.SocketNodeHandle</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, java.util.Observer, <A HREF="../../../rice/p2p/commonapi/rawserialization/RawSerializable.html" title="interface in rice.p2p.commonapi.rawserialization">RawSerializable</A></DD>
</DL>
<DL>
<DT><B>Direct Known Subclasses:</B> <DD><A HREF="../../../rice/pastry/socket/nat/rendezvous/RendezvousSocketNodeHandle.html" title="class in rice.pastry.socket.nat.rendezvous">RendezvousSocketNodeHandle</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>SocketNodeHandle</B><DT>extends <A HREF="../../../rice/pastry/dist/DistNodeHandle.html" title="class in rice.pastry.dist">DistNodeHandle</A>&lt;<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;</DL>
</PRE>
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html#rice.pastry.socket.SocketNodeHandle">Serialized Form</A></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>&nbsp;<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/pastry/socket/SocketNodeHandle.html#eaddress">eaddress</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;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/pastry/socket/SocketNodeHandle.html#epoch">epoch</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_rice.pastry.dist.DistNodeHandle"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class rice.pastry.dist.<A HREF="../../../rice/pastry/dist/DistNodeHandle.html" title="class in rice.pastry.dist">DistNodeHandle</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html#nodeId">nodeId</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_rice.pastry.NodeHandle"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class rice.pastry.<A HREF="../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../rice/pastry/NodeHandle.html#LIVENESS_ALIVE">LIVENESS_ALIVE</A>, <A HREF="../../../rice/pastry/NodeHandle.html#LIVENESS_DEAD">LIVENESS_DEAD</A>, <A HREF="../../../rice/pastry/NodeHandle.html#LIVENESS_SUSPECTED">LIVENESS_SUSPECTED</A>, <A HREF="../../../rice/pastry/NodeHandle.html#localnode">localnode</A>, <A HREF="../../../rice/pastry/NodeHandle.html#logger">logger</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_rice.p2p.commonapi.NodeHandle"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from class rice.p2p.commonapi.<A HREF="../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../rice/p2p/commonapi/NodeHandle.html#DECLARED_DEAD">DECLARED_DEAD</A>, <A HREF="../../../rice/p2p/commonapi/NodeHandle.html#DECLARED_LIVE">DECLARED_LIVE</A>, <A HREF="../../../rice/p2p/commonapi/NodeHandle.html#PROXIMITY_CHANGED">PROXIMITY_CHANGED</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 ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/pastry/socket/SocketNodeHandle.html#SocketNodeHandle(org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, long, rice.pastry.Id, rice.pastry.PastryNode)">SocketNodeHandle</A></B>(<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&nbsp;eisa,
long&nbsp;epoch,
<A HREF="../../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;id,
<A HREF="../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;node)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/pastry/socket/SocketNodeHandle.html#checkLiveness()">checkLiveness</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which FORCES a check of liveness of the remote 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/socket/SocketNodeHandle.html#equals(java.lang.Object)">equals</A></B>(java.lang.Object&nbsp;obj)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Equivalence relation for nodehandles.</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/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/pastry/socket/SocketNodeHandle.html#getAddress()">getAddress</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the InetSocketAddress that should be used to contact the node</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/pastry/socket/SocketNodeHandle.html#getEpoch()">getEpoch</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/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/pastry/socket/SocketNodeHandle.html#getIdentifier()">getIdentifier</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.net.InetSocketAddress</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/pastry/socket/SocketNodeHandle.html#getInetSocketAddress()">getInetSocketAddress</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/socket/SocketNodeHandle.html#getLiveness()">getLiveness</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the last known liveness information about the Pastry node
associated with this 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/socket/SocketNodeHandle.html#hashCode()">hashCode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hash codes for node handles.</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/socket/SocketNodeHandle.html#isLocal()">isLocal</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which returns whether or not this node handle is on its
home 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/socket/SocketNodeHandle.html#ping()">ping</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ping the node.</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/socket/SocketNodeHandle.html#proximity()">proximity</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use PastryNode.proximity(nh)</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/socket/SocketNodeHandle.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;<B>Deprecated.</B>&nbsp;<I>use PastryNode.send(msg, nh)</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/socket/SocketNodeHandle.html#serialize(rice.p2p.commonapi.rawserialization.OutputBuffer)">serialize</A></B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/OutputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">OutputBuffer</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/socket/SocketNodeHandle.html#setLocalNode(rice.pastry.PastryNode)">setLocalNode</A></B>(<A HREF="../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</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/socket/SocketNodeHandle.html#toString()">toString</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns a String representation of this DistNodeHandle.</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/socket/SocketNodeHandle.html#toStringFull()">toStringFull</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/socket/SocketNodeHandle.html#update(java.util.Observable, java.lang.Object)">update</A></B>(java.util.Observable&nbsp;o,
java.lang.Object&nbsp;obj)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DESCRIBE THE METHOD</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_rice.pastry.dist.DistNodeHandle"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class rice.pastry.dist.<A HREF="../../../rice/pastry/dist/DistNodeHandle.html" title="class in rice.pastry.dist">DistNodeHandle</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html#getNodeId()">getNodeId</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_rice.pastry.NodeHandle"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class rice.pastry.<A HREF="../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../rice/pastry/NodeHandle.html#addObserver(java.util.Observer)">addObserver</A>, <A HREF="../../../rice/pastry/NodeHandle.html#addObserver(java.util.Observer, int)">addObserver</A>, <A HREF="../../../rice/pastry/NodeHandle.html#assertLocalNode()">assertLocalNode</A>, <A HREF="../../../rice/pastry/NodeHandle.html#bootstrap(rice.pastry.messaging.Message)">bootstrap</A>, <A HREF="../../../rice/pastry/NodeHandle.html#countObservers()">countObservers</A>, <A HREF="../../../rice/pastry/NodeHandle.html#deleteObserver(java.util.Observer)">deleteObserver</A>, <A HREF="../../../rice/pastry/NodeHandle.html#deleteObservers()">deleteObservers</A>, <A HREF="../../../rice/pastry/NodeHandle.html#getId()">getId</A>, <A HREF="../../../rice/pastry/NodeHandle.html#getLocalNode()">getLocalNode</A>, <A HREF="../../../rice/pastry/NodeHandle.html#isAlive()">isAlive</A>, <A HREF="../../../rice/pastry/NodeHandle.html#notifyObservers(java.lang.Object)">notifyObservers</A>, <A HREF="../../../rice/pastry/NodeHandle.html#update(java.lang.Object)">update</A></CODE></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>clearChanged, hasChanged, 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, finalize, getClass, 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="eaddress"><!-- --></A><H3>
eaddress</H3>
<PRE>
public <A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A> <B>eaddress</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="epoch"><!-- --></A><H3>
epoch</H3>
<PRE>
protected long <B>epoch</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="SocketNodeHandle(org.mpisws.p2p.transport.multiaddress.MultiInetSocketAddress, long, rice.pastry.Id, rice.pastry.PastryNode)"><!-- --></A><H3>
SocketNodeHandle</H3>
<PRE>
protected <B>SocketNodeHandle</B>(<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&nbsp;eisa,
long&nbsp;epoch,
<A HREF="../../../rice/pastry/Id.html" title="class in rice.pastry">Id</A>&nbsp;id,
<A HREF="../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;node)</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="getEpoch()"><!-- --></A><H3>
getEpoch</H3>
<PRE>
public long <B>getEpoch</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/socket/TransportLayerNodeHandle.html#getEpoch()">getEpoch</A></CODE> in class <CODE><A HREF="../../../rice/pastry/socket/TransportLayerNodeHandle.html" title="class in rice.pastry.socket">TransportLayerNodeHandle</A>&lt;<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setLocalNode(rice.pastry.PastryNode)"><!-- --></A><H3>
setLocalNode</H3>
<PRE>
public void <B>setLocalNode</B>(<A HREF="../../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A>&nbsp;pn)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getIdentifier()"><!-- --></A><H3>
getIdentifier</H3>
<PRE>
public <A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A> <B>getIdentifier</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="getLiveness()"><!-- --></A><H3>
getLiveness</H3>
<PRE>
public int <B>getLiveness</B>()</PRE>
<DL>
<DD>Returns the last known liveness information about the Pastry node
associated with this handle. Invoking this method does not cause network
activity.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/NodeHandle.html#getLiveness()">getLiveness</A></CODE> in class <CODE><A HREF="../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>true if the node is alive, false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="getAddress()"><!-- --></A><H3>
getAddress</H3>
<PRE>
public <A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A> <B>getAddress</B>()</PRE>
<DL>
<DD>Returns the InetSocketAddress that should be used to contact the node
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/socket/TransportLayerNodeHandle.html#getAddress()">getAddress</A></CODE> in class <CODE><A HREF="../../../rice/pastry/socket/TransportLayerNodeHandle.html" title="class in rice.pastry.socket">TransportLayerNodeHandle</A>&lt;<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>addressList</CODE> - The sorted list of address alieses. From Internet to LAN
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>
<A NAME="getInetSocketAddress()"><!-- --></A><H3>
getInetSocketAddress</H3>
<PRE>
public java.net.InetSocketAddress <B>getInetSocketAddress</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html#getInetSocketAddress()">getInetSocketAddress</A></CODE> in class <CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html" title="class in rice.pastry.dist">DistNodeHandle</A>&lt;<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="checkLiveness()"><!-- --></A><H3>
checkLiveness</H3>
<PRE>
public boolean <B>checkLiveness</B>()</PRE>
<DL>
<DD>Method which FORCES a check of liveness of the remote node. Note that
this method should ONLY be called by internal Pastry maintenance algorithms -
this is NOT to be used by applications. Doing so will likely cause a
blowup of liveness traffic.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../rice/pastry/NodeHandle.html#checkLiveness()">checkLiveness</A></CODE> in class <CODE><A HREF="../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>true if node is currently alive.</DL>
</DD>
</DL>
<HR>
<A NAME="isLocal()"><!-- --></A><H3>
isLocal</H3>
<PRE>
public boolean <B>isLocal</B>()</PRE>
<DL>
<DD>Method which returns whether or not this node handle is on its
home node.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>Whether or not this handle is local</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><B>Deprecated.</B>&nbsp;<I>use PastryNode.send(msg, nh)</I>
<P>
<DD>Called to send a message to the node corresponding to this handle.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/NodeHandle.html#receiveMessage(rice.pastry.messaging.Message)">receiveMessage</A></CODE> in class <CODE><A HREF="../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msg</CODE> - Message to be delivered, may or may not be routeMessage.</DL>
</DD>
</DL>
<HR>
<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>()</PRE>
<DL>
<DD>Returns a String representation of this DistNodeHandle. This method is
designed to be called by clients using the node handle, and is provided in
order to ensure that the right node handle is being talked to.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html#toString()">toString</A></CODE> in class <CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html" title="class in rice.pastry.dist">DistNodeHandle</A>&lt;<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>A String representation of the node handle.</DL>
</DD>
</DL>
<HR>
<A NAME="toStringFull()"><!-- --></A><H3>
toStringFull</H3>
<PRE>
public java.lang.String <B>toStringFull</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public boolean <B>equals</B>(java.lang.Object&nbsp;obj)</PRE>
<DL>
<DD>Equivalence relation for nodehandles. They are equal if and only if their
corresponding NodeIds are equal.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html#equals(java.lang.Object)">equals</A></CODE> in class <CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html" title="class in rice.pastry.dist">DistNodeHandle</A>&lt;<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obj</CODE> - the other nodehandle .
<DT><B>Returns:</B><DD>true if they are equal, false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="hashCode()"><!-- --></A><H3>
hashCode</H3>
<PRE>
public int <B>hashCode</B>()</PRE>
<DL>
<DD>Hash codes for node handles. It is the hashcode of their corresponding
NodeId's.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html#hashCode()">hashCode</A></CODE> in class <CODE><A HREF="../../../rice/pastry/dist/DistNodeHandle.html" title="class in rice.pastry.dist">DistNodeHandle</A>&lt;<A HREF="../../../org/mpisws/p2p/transport/multiaddress/MultiInetSocketAddress.html" title="class in org.mpisws.p2p.transport.multiaddress">MultiInetSocketAddress</A>&gt;</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>a hash code.</DL>
</DD>
</DL>
<HR>
<A NAME="proximity()"><!-- --></A><H3>
proximity</H3>
<PRE>
public int <B>proximity</B>()</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use PastryNode.proximity(nh)</I>
<P>
<DD>Returns the last known proximity information about the Pastry node
associated with this handle. Invoking this method does not cause network
activity. Smaller values imply greater proximity. The exact nature and
interpretation of the proximity metric implementation-specific.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/NodeHandle.html#proximity()">proximity</A></CODE> in class <CODE><A HREF="../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the proximity metric value</DL>
</DD>
</DL>
<HR>
<A NAME="ping()"><!-- --></A><H3>
ping</H3>
<PRE>
public boolean <B>ping</B>()</PRE>
<DL>
<DD>Ping the node. Refreshes the cached liveness status and proximity value of
the Pastry node associated with this. Invoking this method causes network
activity.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/NodeHandle.html#ping()">ping</A></CODE> in class <CODE><A HREF="../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>true if node is currently alive.</DL>
</DD>
</DL>
<HR>
<A NAME="update(java.util.Observable, java.lang.Object)"><!-- --></A><H3>
update</H3>
<PRE>
public void <B>update</B>(java.util.Observable&nbsp;o,
java.lang.Object&nbsp;obj)</PRE>
<DL>
<DD>DESCRIBE THE METHOD
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - DESCRIBE THE PARAMETER<DD><CODE>obj</CODE> - DESCRIBE THE PARAMETER</DL>
</DD>
</DL>
<HR>
<A NAME="serialize(rice.p2p.commonapi.rawserialization.OutputBuffer)"><!-- --></A><H3>
serialize</H3>
<PRE>
public void <B>serialize</B>(<A HREF="../../../rice/p2p/commonapi/rawserialization/OutputBuffer.html" title="interface in rice.p2p.commonapi.rawserialization">OutputBuffer</A>&nbsp;buf)
throws java.io.IOException</PRE>
<DL>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/p2p/commonapi/rawserialization/RawSerializable.html#serialize(rice.p2p.commonapi.rawserialization.OutputBuffer)">serialize</A></CODE> in interface <CODE><A HREF="../../../rice/p2p/commonapi/rawserialization/RawSerializable.html" title="interface in rice.p2p.commonapi.rawserialization">RawSerializable</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../rice/pastry/NodeHandle.html#serialize(rice.p2p.commonapi.rawserialization.OutputBuffer)">serialize</A></CODE> in class <CODE><A HREF="../../../rice/pastry/NodeHandle.html" title="class in rice.pastry">NodeHandle</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></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/SocketNodeHandle.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/socket/PendingAppSocket.html" title="class in rice.pastry.socket"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../rice/pastry/socket/SocketNodeHandleFactory.html" title="class in rice.pastry.socket"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?rice/pastry/socket/SocketNodeHandle.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SocketNodeHandle.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>