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

908 lines
33 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>
NodeHandle (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="NodeHandle (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/NodeHandle.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/NetworkListener.html" title="interface in rice.pastry"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?rice/pastry/NodeHandle.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="NodeHandle.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 NodeHandle</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 "><B>rice.pastry.NodeHandle</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.io.Serializable, <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/testing/LeafSetTest.TestNodeHandle.html" title="class in rice.pastry.testing">LeafSetTest.TestNodeHandle</A>, <A HREF="../../rice/pastry/leafset/testing/MergeTest.TestNodeHandle.html" title="class in rice.pastry.leafset.testing">MergeTest.TestNodeHandle</A>, <A HREF="../../rice/pastry/socket/TransportLayerNodeHandle.html" title="class in rice.pastry.socket">TransportLayerNodeHandle</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public abstract class <B>NodeHandle</B><DT>extends <A HREF="../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A><DT>implements <A HREF="../../rice/p2p/commonapi/rawserialization/RawSerializable.html" title="interface in rice.p2p.commonapi.rawserialization">RawSerializable</A></DL>
</PRE>
<P>
Interface for handles to remote nodes.
<P>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>$Id: NodeHandle.java 4654 2009-01-08 16:33:07Z jeffh $</DD>
<DT><B>Author:</B></DT>
<DD>Andrew Ladd</DD>
<DT><B>See Also:</B><DD><A HREF="../../serialized-form.html#rice.pastry.NodeHandle">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>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#LIVENESS_ALIVE">LIVENESS_ALIVE</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;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#LIVENESS_DEAD">LIVENESS_DEAD</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;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#LIVENESS_SUSPECTED">LIVENESS_SUSPECTED</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/PastryNode.html" title="class in rice.pastry">PastryNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#localnode">localnode</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/NodeHandle.html#logger">logger</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.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><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#NodeHandle()">NodeHandle</A></B>()</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;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#addObserver(java.util.Observer)">addObserver</A></B>(java.util.Observer&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/NodeHandle.html#addObserver(java.util.Observer, int)">addObserver</A></B>(java.util.Observer&nbsp;o,
int&nbsp;priority)</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/NodeHandle.html#assertLocalNode()">assertLocalNode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;May be called from handle etc methods to ensure that local node has
been set, either on construction or on deserialization/receivemsg.</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/NodeHandle.html#bootstrap(rice.pastry.messaging.Message)">bootstrap</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;Method which is used by Pastry to start the bootstrapping process on the
local node using this handle as the bootstrap handle.</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/NodeHandle.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;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#countObservers()">countObservers</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/NodeHandle.html#deleteObserver(java.util.Observer)">deleteObserver</A></B>(java.util.Observer&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/NodeHandle.html#deleteObservers()">deleteObservers</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>abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.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;Equality operator for nodehandles.</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/NodeHandle.html#getId()">getId</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns this node's id.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#getLiveness()">getLiveness</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A more detailed version of isAlive().</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#getLocalNode()">getLocalNode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Accessor method.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;<A HREF="../../rice/pastry/Id.html" title="class in rice.pastry">Id</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#getNodeId()">getNodeId</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the nodeId of this Pastry node.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.html#hashCode()">hashCode</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Hash codes for nodehandles.</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/NodeHandle.html#isAlive()">isAlive</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>use PastryNode.isAlive(NodeHandle)</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/NodeHandle.html#notifyObservers(java.lang.Object)">notifyObservers</A></B>(java.lang.Object&nbsp;arg)</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>abstract &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.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>abstract &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.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() or Endpoint.proximity()</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.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() or Endpoint.send()</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>abstract &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/pastry/NodeHandle.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/NodeHandle.html#update(java.lang.Object)">update</A></B>(java.lang.Object&nbsp;update)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which allows the observers of this socket node handle to be updated.</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, toString, 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="LIVENESS_ALIVE"><!-- --></A><H3>
LIVENESS_ALIVE</H3>
<PRE>
public static final int <B>LIVENESS_ALIVE</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#rice.pastry.NodeHandle.LIVENESS_ALIVE">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="LIVENESS_SUSPECTED"><!-- --></A><H3>
LIVENESS_SUSPECTED</H3>
<PRE>
public static final int <B>LIVENESS_SUSPECTED</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#rice.pastry.NodeHandle.LIVENESS_SUSPECTED">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="LIVENESS_DEAD"><!-- --></A><H3>
LIVENESS_DEAD</H3>
<PRE>
public static final int <B>LIVENESS_DEAD</B></PRE>
<DL>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../constant-values.html#rice.pastry.NodeHandle.LIVENESS_DEAD">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="localnode"><!-- --></A><H3>
localnode</H3>
<PRE>
protected transient <A HREF="../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A> <B>localnode</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="logger"><!-- --></A><H3>
logger</H3>
<PRE>
protected transient <A HREF="../../rice/environment/logging/Logger.html" title="class in rice.environment.logging">Logger</A> <B>logger</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="NodeHandle()"><!-- --></A><H3>
NodeHandle</H3>
<PRE>
public <B>NodeHandle</B>()</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="getNodeId()"><!-- --></A><H3>
getNodeId</H3>
<PRE>
public abstract <A HREF="../../rice/pastry/Id.html" title="class in rice.pastry">Id</A> <B>getNodeId</B>()</PRE>
<DL>
<DD>Gets the nodeId of this Pastry node.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>the node id.</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><B>Description copied from class: <CODE><A HREF="../../rice/p2p/commonapi/NodeHandle.html#getId()">NodeHandle</A></CODE></B></DD>
<DD>Returns this node's id.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../rice/p2p/commonapi/NodeHandle.html#getId()">getId</A></CODE> in class <CODE><A HREF="../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The corresponding node's id.</DL>
</DD>
</DL>
<HR>
<A NAME="isAlive()"><!-- --></A><H3>
isAlive</H3>
<PRE>
public final boolean <B>isAlive</B>()</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use PastryNode.isAlive(NodeHandle)</I>
<P>
<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/p2p/commonapi/NodeHandle.html#isAlive()">isAlive</A></CODE> in class <CODE><A HREF="../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">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="getLiveness()"><!-- --></A><H3>
getLiveness</H3>
<PRE>
public abstract int <B>getLiveness</B>()</PRE>
<DL>
<DD>A more detailed version of isAlive(). This can return 3 states:
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>LIVENESS_ALIVE, LIVENESS_SUSPECTED, LIVENESS_DEAD</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>Specified by:</B><DD><CODE><A HREF="../../rice/p2p/commonapi/NodeHandle.html#checkLiveness()">checkLiveness</A></CODE> in class <CODE><A HREF="../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>true if node is currently alive.</DL>
</DD>
</DL>
<HR>
<A NAME="proximity()"><!-- --></A><H3>
proximity</H3>
<PRE>
public abstract int <B>proximity</B>()</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>use PastryNode.proximity() or Endpoint.proximity()</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/p2p/commonapi/NodeHandle.html#proximity()">proximity</A></CODE> in class <CODE><A HREF="../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">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 abstract 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>
</DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>true if node is currently alive.</DL>
</DD>
</DL>
<HR>
<A NAME="getLocalNode()"><!-- --></A><H3>
getLocalNode</H3>
<PRE>
public final <A HREF="../../rice/pastry/PastryNode.html" title="class in rice.pastry">PastryNode</A> <B>getLocalNode</B>()</PRE>
<DL>
<DD>Accessor method.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="assertLocalNode()"><!-- --></A><H3>
assertLocalNode</H3>
<PRE>
public void <B>assertLocalNode</B>()</PRE>
<DL>
<DD>May be called from handle etc methods to ensure that local node has
been set, either on construction or on deserialization/receivemsg.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="equals(java.lang.Object)"><!-- --></A><H3>
equals</H3>
<PRE>
public abstract boolean <B>equals</B>(java.lang.Object&nbsp;obj)</PRE>
<DL>
<DD>Equality operator for nodehandles.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>equals</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obj</CODE> - a nodehandle object
<DT><B>Returns:</B><DD>true if they are equal, false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="bootstrap(rice.pastry.messaging.Message)"><!-- --></A><H3>
bootstrap</H3>
<PRE>
public void <B>bootstrap</B>(<A HREF="../../rice/pastry/messaging/Message.html" title="class in rice.pastry.messaging">Message</A>&nbsp;msg)
throws java.io.IOException</PRE>
<DL>
<DD>Method which is used by Pastry to start the bootstrapping process on the
local node using this handle as the bootstrap handle. Default behavior is
simply to call receiveMessage(msg), but transport layer implementations may
care to perform other tasks by overriding this method, since the node is
not technically part of the ring yet.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msg</CODE> - the bootstrap message.
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="hashCode()"><!-- --></A><H3>
hashCode</H3>
<PRE>
public abstract int <B>hashCode</B>()</PRE>
<DL>
<DD>Hash codes for nodehandles.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>hashCode</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>a hash code.</DL>
</DD>
</DL>
<HR>
<A NAME="receiveMessage(rice.pastry.messaging.Message)"><!-- --></A><H3>
receiveMessage</H3>
<PRE>
public abstract 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() or Endpoint.send()</I>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>msg</CODE> - </DL>
</DD>
</DL>
<HR>
<A NAME="serialize(rice.p2p.commonapi.rawserialization.OutputBuffer)"><!-- --></A><H3>
serialize</H3>
<PRE>
public abstract 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/p2p/commonapi/NodeHandle.html#serialize(rice.p2p.commonapi.rawserialization.OutputBuffer)">serialize</A></CODE> in class <CODE><A HREF="../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="addObserver(java.util.Observer)"><!-- --></A><H3>
addObserver</H3>
<PRE>
public void <B>addObserver</B>(java.util.Observer&nbsp;o)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>addObserver</CODE> in class <CODE>java.util.Observable</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="addObserver(java.util.Observer, int)"><!-- --></A><H3>
addObserver</H3>
<PRE>
public void <B>addObserver</B>(java.util.Observer&nbsp;o,
int&nbsp;priority)</PRE>
<DL>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - <DD><CODE>priority</CODE> - higher priority observers will be called first</DL>
</DD>
</DL>
<HR>
<A NAME="deleteObserver(java.util.Observer)"><!-- --></A><H3>
deleteObserver</H3>
<PRE>
public void <B>deleteObserver</B>(java.util.Observer&nbsp;o)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>deleteObserver</CODE> in class <CODE>java.util.Observable</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="notifyObservers(java.lang.Object)"><!-- --></A><H3>
notifyObservers</H3>
<PRE>
public void <B>notifyObservers</B>(java.lang.Object&nbsp;arg)</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>notifyObservers</CODE> in class <CODE>java.util.Observable</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="countObservers()"><!-- --></A><H3>
countObservers</H3>
<PRE>
public int <B>countObservers</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>countObservers</CODE> in class <CODE>java.util.Observable</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="deleteObservers()"><!-- --></A><H3>
deleteObservers</H3>
<PRE>
public void <B>deleteObservers</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>deleteObservers</CODE> in class <CODE>java.util.Observable</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="update(java.lang.Object)"><!-- --></A><H3>
update</H3>
<PRE>
public void <B>update</B>(java.lang.Object&nbsp;update)</PRE>
<DL>
<DD>Method which allows the observers of this socket node handle to be updated.
This method sets this object as changed, and then sends out the update.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>update</CODE> - The update</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/NodeHandle.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/NetworkListener.html" title="interface in rice.pastry"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../rice/pastry/NodeHandleFactory.html" title="interface in rice.pastry"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?rice/pastry/NodeHandle.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="NodeHandle.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>