FreePastry/docs/javadoc/rice/p2p/replication/manager/ReplicationManagerImpl.html

841 lines
40 KiB
HTML
Raw 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:29 CET 2009 -->
<TITLE>
ReplicationManagerImpl (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="ReplicationManagerImpl (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/ReplicationManagerImpl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Rice Pastry API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.ReplicationManagerDeleter.html" title="class in rice.p2p.replication.manager"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?rice/p2p/replication/manager/ReplicationManagerImpl.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ReplicationManagerImpl.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;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
rice.p2p.replication.manager</FONT>
<BR>
Class ReplicationManagerImpl</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>rice.p2p.replication.manager.ReplicationManagerImpl</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A>, <A HREF="../../../../rice/p2p/replication/manager/ReplicationManager.html" title="interface in rice.p2p.replication.manager">ReplicationManager</A>, <A HREF="../../../../rice/p2p/replication/ReplicationClient.html" title="interface in rice.p2p.replication">ReplicationClient</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>ReplicationManagerImpl</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../rice/p2p/replication/manager/ReplicationManager.html" title="interface in rice.p2p.replication.manager">ReplicationManager</A>, <A HREF="../../../../rice/p2p/replication/ReplicationClient.html" title="interface in rice.p2p.replication">ReplicationClient</A>, <A HREF="../../../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A></DL>
</PRE>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>$Id: ReplicationManagerImpl.java 4654 2009-01-08 16:33:07Z jeffh $</DD>
<DT><B>Author:</B></DT>
<DD>Alan Mislove</DD>
</DL>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<A NAME="nested_class_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>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.ReplicationManagerDeleter.html" title="class in rice.p2p.replication.manager">ReplicationManagerImpl.ReplicationManagerDeleter</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner class which keeps track of the keys which we are currently deleting</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.ReplicationManagerHelper.html" title="class in rice.p2p.replication.manager">ReplicationManagerImpl.ReplicationManagerHelper</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inner class which keeps track of the state we're in- waiting, sleeping, or with
nothing to do.</TD>
</TR>
</TABLE>
&nbsp;<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#client">client</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The client of this manager</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.ReplicationManagerDeleter.html" title="class in rice.p2p.replication.manager">ReplicationManagerImpl.ReplicationManagerDeleter</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#deleter">deleter</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The deleter, for managing ids to delete</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#endpoint">endpoint</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The endpoint used for sending reminder messages</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#environment">environment</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/p2p/commonapi/IdFactory.html" title="interface in rice.p2p.commonapi">IdFactory</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#factory">factory</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The id factory used for manipulating ids</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#FETCH_DELAY">FETCH_DELAY</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The amount of time to wait between fetch calls to the client</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.ReplicationManagerHelper.html" title="class in rice.p2p.replication.manager">ReplicationManagerImpl.ReplicationManagerHelper</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#helper">helper</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The helper for the replication manager</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#instance">instance</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/p2p/replication/manager/ReplicationManagerImpl.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>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#NUM_DELETE_AT_ONCE">NUM_DELETE_AT_ONCE</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The number of ids to delete at a given time - others will be deleted later</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../rice/p2p/replication/ReplicationImpl.html" title="class in rice.p2p.replication">ReplicationImpl</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#replication">replication</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The replication used by the manager</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#TIMEOUT_DELAY">TIMEOUT_DELAY</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The amount of time to wait before giving up on a client fetch</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/p2p/replication/manager/ReplicationManagerImpl.html#ReplicationManagerImpl(rice.p2p.commonapi.Node, rice.p2p.replication.manager.ReplicationManagerClient, int, java.lang.String)">ReplicationManagerImpl</A></B>(<A HREF="../../../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>&nbsp;node,
<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A>&nbsp;client,
int&nbsp;replicationFactor,
java.lang.String&nbsp;instance)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#ReplicationManagerImpl(rice.p2p.commonapi.Node, rice.p2p.replication.manager.ReplicationManagerClient, int, java.lang.String, rice.p2p.replication.ReplicationPolicy)">ReplicationManagerImpl</A></B>(<A HREF="../../../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>&nbsp;node,
<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A>&nbsp;client,
int&nbsp;replicationFactor,
java.lang.String&nbsp;instance,
<A HREF="../../../../rice/p2p/replication/ReplicationPolicy.html" title="interface in rice.p2p.replication">ReplicationPolicy</A>&nbsp;policy)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../../rice/p2p/commonapi/IdSet.html" title="interface in rice.p2p.commonapi">IdSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#clone(rice.p2p.commonapi.IdSet)">clone</A></B>(<A HREF="../../../../rice/p2p/commonapi/IdSet.html" title="interface in rice.p2p.commonapi">IdSet</A>&nbsp;keySet)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal method which clones an IdSet, so that iterators work as expected</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#deliver(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message)">deliver</A></B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is called on the application at the destination node
for the given id.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#fetch(rice.p2p.commonapi.IdSet, rice.p2p.commonapi.NodeHandle)">fetch</A></B>(<A HREF="../../../../rice/p2p/commonapi/IdSet.html" title="interface in rice.p2p.commonapi">IdSet</A>&nbsp;keySet,
<A HREF="../../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This upcall is invoked to notify the application that is should
fetch the cooresponding keys in this set, since the node is now
responsible for these keys also.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#forward(rice.p2p.commonapi.RouteMessage)">forward</A></B>(<A HREF="../../../../rice/p2p/commonapi/RouteMessage.html" title="interface in rice.p2p.commonapi">RouteMessage</A>&nbsp;message)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is invoked on applications when the underlying node
is about to forward the given message with the provided target to
the specified next hop.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../rice/p2p/replication/Replication.html" title="interface in rice.p2p.replication">Replication</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#getReplication()">getReplication</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method which returns the underlying replication object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#informClient(rice.p2p.commonapi.Id, rice.p2p.commonapi.NodeHandle)">informClient</A></B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal method which informs the client of the next id to fetch</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../rice/p2p/commonapi/IdSet.html" title="interface in rice.p2p.commonapi">IdSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#scan(rice.p2p.commonapi.IdRange)">scan</A></B>(<A HREF="../../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A>&nbsp;range)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This upcall should return the set of keys that the application
currently stores in this range.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#scheduleNext()">scheduleNext</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal method which schedules the next reminder message (if it is necessary),
or simply resets the active flag if there's nothing to be fetched.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#setRange(rice.p2p.commonapi.IdRange)">setRange</A></B>(<A HREF="../../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A>&nbsp;range)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This upcall is to notify the application of the range of keys for
which it is responsible.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.html#update(rice.p2p.commonapi.NodeHandle, boolean)">update</A></B>(<A HREF="../../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
boolean&nbsp;joined)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This method is invoked to inform the application that the given node
has either joined or left the neighbor set of the local node, as the set
would be returned by the neighborSet call.</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, 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="FETCH_DELAY"><!-- --></A><H3>
FETCH_DELAY</H3>
<PRE>
public final int <B>FETCH_DELAY</B></PRE>
<DL>
<DD>The amount of time to wait between fetch calls to the client
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="TIMEOUT_DELAY"><!-- --></A><H3>
TIMEOUT_DELAY</H3>
<PRE>
public final int <B>TIMEOUT_DELAY</B></PRE>
<DL>
<DD>The amount of time to wait before giving up on a client fetch
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="NUM_DELETE_AT_ONCE"><!-- --></A><H3>
NUM_DELETE_AT_ONCE</H3>
<PRE>
public final int <B>NUM_DELETE_AT_ONCE</B></PRE>
<DL>
<DD>The number of ids to delete at a given time - others will be deleted later
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="factory"><!-- --></A><H3>
factory</H3>
<PRE>
protected <A HREF="../../../../rice/p2p/commonapi/IdFactory.html" title="interface in rice.p2p.commonapi">IdFactory</A> <B>factory</B></PRE>
<DL>
<DD>The id factory used for manipulating ids
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="endpoint"><!-- --></A><H3>
endpoint</H3>
<PRE>
protected <A HREF="../../../../rice/p2p/commonapi/Endpoint.html" title="interface in rice.p2p.commonapi">Endpoint</A> <B>endpoint</B></PRE>
<DL>
<DD>The endpoint used for sending reminder messages
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="replication"><!-- --></A><H3>
replication</H3>
<PRE>
protected <A HREF="../../../../rice/p2p/replication/ReplicationImpl.html" title="class in rice.p2p.replication">ReplicationImpl</A> <B>replication</B></PRE>
<DL>
<DD>The replication used by the manager
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="client"><!-- --></A><H3>
client</H3>
<PRE>
protected <A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A> <B>client</B></PRE>
<DL>
<DD>The client of this manager
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="helper"><!-- --></A><H3>
helper</H3>
<PRE>
protected <A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.ReplicationManagerHelper.html" title="class in rice.p2p.replication.manager">ReplicationManagerImpl.ReplicationManagerHelper</A> <B>helper</B></PRE>
<DL>
<DD>The helper for the replication manager
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="deleter"><!-- --></A><H3>
deleter</H3>
<PRE>
protected <A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.ReplicationManagerDeleter.html" title="class in rice.p2p.replication.manager">ReplicationManagerImpl.ReplicationManagerDeleter</A> <B>deleter</B></PRE>
<DL>
<DD>The deleter, for managing ids to delete
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="instance"><!-- --></A><H3>
instance</H3>
<PRE>
protected java.lang.String <B>instance</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="environment"><!-- --></A><H3>
environment</H3>
<PRE>
protected <A HREF="../../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A> <B>environment</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>
<!-- ========= 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="ReplicationManagerImpl(rice.p2p.commonapi.Node, rice.p2p.replication.manager.ReplicationManagerClient, int, java.lang.String)"><!-- --></A><H3>
ReplicationManagerImpl</H3>
<PRE>
public <B>ReplicationManagerImpl</B>(<A HREF="../../../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>&nbsp;node,
<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A>&nbsp;client,
int&nbsp;replicationFactor,
java.lang.String&nbsp;instance)</PRE>
<DL>
<DD>Constructor
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - The node below this Replication implementation<DD><CODE>client</CODE> - The client for this Replication<DD><CODE>replicationFactor</CODE> - The replication factor for this instance<DD><CODE>instance</CODE> - The unique instance name of this Replication</DL>
</DL>
<HR>
<A NAME="ReplicationManagerImpl(rice.p2p.commonapi.Node, rice.p2p.replication.manager.ReplicationManagerClient, int, java.lang.String, rice.p2p.replication.ReplicationPolicy)"><!-- --></A><H3>
ReplicationManagerImpl</H3>
<PRE>
public <B>ReplicationManagerImpl</B>(<A HREF="../../../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>&nbsp;node,
<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A>&nbsp;client,
int&nbsp;replicationFactor,
java.lang.String&nbsp;instance,
<A HREF="../../../../rice/p2p/replication/ReplicationPolicy.html" title="interface in rice.p2p.replication">ReplicationPolicy</A>&nbsp;policy)</PRE>
<DL>
<DD>Constructor
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - The node below this Replication implementation<DD><CODE>client</CODE> - The client for this Replication<DD><CODE>replicationFactor</CODE> - The replication factor for this instance<DD><CODE>instance</CODE> - The unique instance name of this Replication<DD><CODE>policy</CODE> - The replication policy to use</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="clone(rice.p2p.commonapi.IdSet)"><!-- --></A><H3>
clone</H3>
<PRE>
protected <A HREF="../../../../rice/p2p/commonapi/IdSet.html" title="interface in rice.p2p.commonapi">IdSet</A> <B>clone</B>(<A HREF="../../../../rice/p2p/commonapi/IdSet.html" title="interface in rice.p2p.commonapi">IdSet</A>&nbsp;keySet)</PRE>
<DL>
<DD>Internal method which clones an IdSet, so that iterators work as expected
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>keySet</CODE> - The set to clone
<DT><B>Returns:</B><DD>The cloned set</DL>
</DD>
</DL>
<HR>
<A NAME="informClient(rice.p2p.commonapi.Id, rice.p2p.commonapi.NodeHandle)"><!-- --></A><H3>
informClient</H3>
<PRE>
protected void <B>informClient</B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint)</PRE>
<DL>
<DD>Internal method which informs the client of the next id to fetch
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The id which the client should fetch<DD><CODE>hint</CODE> - The hint where the id may be</DL>
</DD>
</DL>
<HR>
<A NAME="scheduleNext()"><!-- --></A><H3>
scheduleNext</H3>
<PRE>
protected void <B>scheduleNext</B>()</PRE>
<DL>
<DD>Internal method which schedules the next reminder message (if it is necessary),
or simply resets the active flag if there's nothing to be fetched.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="fetch(rice.p2p.commonapi.IdSet, rice.p2p.commonapi.NodeHandle)"><!-- --></A><H3>
fetch</H3>
<PRE>
public void <B>fetch</B>(<A HREF="../../../../rice/p2p/commonapi/IdSet.html" title="interface in rice.p2p.commonapi">IdSet</A>&nbsp;keySet,
<A HREF="../../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;hint)</PRE>
<DL>
<DD>This upcall is invoked to notify the application that is should
fetch the cooresponding keys in this set, since the node is now
responsible for these keys also.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/ReplicationClient.html#fetch(rice.p2p.commonapi.IdSet, rice.p2p.commonapi.NodeHandle)">fetch</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/ReplicationClient.html" title="interface in rice.p2p.replication">ReplicationClient</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>keySet</CODE> - set containing the keys that needs to be fetched<DD><CODE>hint</CODE> - A hint as to where to find the ids in the key set. This
is where the local node heard about the keys from.</DL>
</DD>
</DL>
<HR>
<A NAME="setRange(rice.p2p.commonapi.IdRange)"><!-- --></A><H3>
setRange</H3>
<PRE>
public void <B>setRange</B>(<A HREF="../../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A>&nbsp;range)</PRE>
<DL>
<DD>This upcall is to notify the application of the range of keys for
which it is responsible. The application might choose to react to
call by calling a scan(complement of this range) to the persistance
manager and get the keys for which it is not responsible and
call delete on the persistance manager for those objects.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/ReplicationClient.html#setRange(rice.p2p.commonapi.IdRange)">setRange</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/ReplicationClient.html" title="interface in rice.p2p.replication">ReplicationClient</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>range</CODE> - the range of keys for which the local node is currently
responsible</DL>
</DD>
</DL>
<HR>
<A NAME="scan(rice.p2p.commonapi.IdRange)"><!-- --></A><H3>
scan</H3>
<PRE>
public <A HREF="../../../../rice/p2p/commonapi/IdSet.html" title="interface in rice.p2p.commonapi">IdSet</A> <B>scan</B>(<A HREF="../../../../rice/p2p/commonapi/IdRange.html" title="interface in rice.p2p.commonapi">IdRange</A>&nbsp;range)</PRE>
<DL>
<DD>This upcall should return the set of keys that the application
currently stores in this range. Should return a empty IdSet (not null),
in the case that no keys belong to this range.
In this case, it returns the list of keys the client has, along with the
keys which we have yet to tell the client to fetch.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/ReplicationClient.html#scan(rice.p2p.commonapi.IdRange)">scan</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/ReplicationClient.html" title="interface in rice.p2p.replication">ReplicationClient</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>range</CODE> - the requested range</DL>
</DD>
</DL>
<HR>
<A NAME="forward(rice.p2p.commonapi.RouteMessage)"><!-- --></A><H3>
forward</H3>
<PRE>
public boolean <B>forward</B>(<A HREF="../../../../rice/p2p/commonapi/RouteMessage.html" title="interface in rice.p2p.commonapi">RouteMessage</A>&nbsp;message)</PRE>
<DL>
<DD>This method is invoked on applications when the underlying node
is about to forward the given message with the provided target to
the specified next hop. Applications can change the contents of
the message, specify a different nextHop (through re-routing), or
completely terminate the message.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/commonapi/Application.html#forward(rice.p2p.commonapi.RouteMessage)">forward</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>message</CODE> - The message being sent, containing an internal message
along with a destination key and nodeHandle next hop.
<DT><B>Returns:</B><DD>Whether or not to forward the message further</DL>
</DD>
</DL>
<HR>
<A NAME="deliver(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message)"><!-- --></A><H3>
deliver</H3>
<PRE>
public void <B>deliver</B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/p2p/commonapi/Message.html" title="interface in rice.p2p.commonapi">Message</A>&nbsp;message)</PRE>
<DL>
<DD>This method is called on the application at the destination node
for the given id.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/commonapi/Application.html#deliver(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message)">deliver</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The destination id of the message<DD><CODE>message</CODE> - The message being sent</DL>
</DD>
</DL>
<HR>
<A NAME="update(rice.p2p.commonapi.NodeHandle, boolean)"><!-- --></A><H3>
update</H3>
<PRE>
public void <B>update</B>(<A HREF="../../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
boolean&nbsp;joined)</PRE>
<DL>
<DD>This method is invoked to inform the application that the given node
has either joined or left the neighbor set of the local node, as the set
would be returned by the neighborSet call.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/commonapi/Application.html#update(rice.p2p.commonapi.NodeHandle, boolean)">update</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/commonapi/Application.html" title="interface in rice.p2p.commonapi">Application</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>handle</CODE> - The handle that has joined/left<DD><CODE>joined</CODE> - Whether the node has joined or left</DL>
</DD>
</DL>
<HR>
<A NAME="getReplication()"><!-- --></A><H3>
getReplication</H3>
<PRE>
public <A HREF="../../../../rice/p2p/replication/Replication.html" title="interface in rice.p2p.replication">Replication</A> <B>getReplication</B>()</PRE>
<DL>
<DD>Utility method which returns the underlying replication object. Should only
be used for testing - messing with this causes undefined behavior.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManager.html#getReplication()">getReplication</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManager.html" title="interface in rice.p2p.replication.manager">ReplicationManager</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The underlying replication object</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/ReplicationManagerImpl.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Rice Pastry API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerImpl.ReplicationManagerDeleter.html" title="class in rice.p2p.replication.manager"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?rice/p2p/replication/manager/ReplicationManagerImpl.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ReplicationManagerImpl.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;<A HREF="#nested_class_summary">NESTED</A>&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>