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

947 lines
57 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:02 CET 2009 -->
<TITLE>
GCPastImpl (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="GCPastImpl (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/GCPastImpl.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/past/gc/GCPastException.ObjectNotFoundException.html" title="class in rice.p2p.past.gc"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../rice/p2p/past/gc/GCPastImpl.GCPastDeserializer.html" title="class in rice.p2p.past.gc"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?rice/p2p/past/gc/GCPastImpl.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="GCPastImpl.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.past.gc</FONT>
<BR>
Class GCPastImpl</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">rice.p2p.past.PastImpl</A>
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>rice.p2p.past.gc.GCPastImpl</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/past/gc/GCPast.html" title="interface in rice.p2p.past.gc">GCPast</A>, <A HREF="../../../../rice/p2p/past/Past.html" title="interface in rice.p2p.past">Past</A>, <A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>GCPastImpl</B><DT>extends <A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A><DT>implements <A HREF="../../../../rice/p2p/past/gc/GCPast.html" title="interface in rice.p2p.past.gc">GCPast</A></DL>
</PRE>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>$Id: GCPastImpl.java 4654 2009-01-08 16:33:07Z jeffh $</DD>
<DT><B>Author:</B></DT>
<DD>Alan Mislove, Andreas Haeberlen</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/past/gc/GCPastImpl.GCPastDeserializer.html" title="class in rice.p2p.past.gc">GCPastImpl.GCPastDeserializer</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;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/past/gc/GCPastImpl.ReplicaMap.html" title="class in rice.p2p.past.gc">GCPastImpl.ReplicaMap</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="nested_classes_inherited_from_class_rice.p2p.past.PastImpl"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Nested classes/interfaces inherited from class rice.p2p.past.<A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.MessageBuilder.html" title="interface in rice.p2p.past">PastImpl.MessageBuilder</A>, <A HREF="../../../../rice/p2p/past/PastImpl.PastDeserializer.html" title="class in rice.p2p.past">PastImpl.PastDeserializer</A></CODE></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>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/past/gc/GCPastImpl.html#collected">collected</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;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/past/gc/GCPastImpl.html#DEFAULT_EXPIRATION">DEFAULT_EXPIRATION</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The default expiration, or when objects inserted with no timeout will expire</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/past/gc/GCPastImpl.html#realFactory">realFactory</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The real factory, which is not wrapped with a GCIdFactory</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/past/gc/GCPastImpl.html#refreshed">refreshed</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.past.PastImpl"><!-- --></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.past.<A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#backup">backup</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#contentDeserializer">contentDeserializer</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#contentHandleDeserializer">contentHandleDeserializer</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#endpoint">endpoint</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#environment">environment</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#factory">factory</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#fetchHandles">fetchHandles</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#inserts">inserts</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#instance">instance</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#lockManager">lockManager</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#logger">logger</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#lookups">lookups</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#MESSAGE_TIMEOUT">MESSAGE_TIMEOUT</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#other">other</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#policy">policy</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#replicaManager">replicaManager</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#replicationFactor">replicationFactor</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#socketStrategy">socketStrategy</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#storage">storage</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#SUCCESSFUL_INSERT_THRESHOLD">SUCCESSFUL_INSERT_THRESHOLD</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#trash">trash</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_rice.p2p.past.gc.GCPast"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface rice.p2p.past.gc.<A HREF="../../../../rice/p2p/past/gc/GCPast.html" title="interface in rice.p2p.past.gc">GCPast</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../rice/p2p/past/gc/GCPast.html#INFINITY_EXPIRATION">INFINITY_EXPIRATION</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/p2p/past/gc/GCPastImpl.html#GCPastImpl(rice.p2p.commonapi.Node, rice.persistence.StorageManager, rice.persistence.Cache, int, java.lang.String, rice.p2p.past.PastPolicy, long, rice.persistence.StorageManager)">GCPastImpl</A></B>(<A HREF="../../../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>&nbsp;node,
<A HREF="../../../../rice/persistence/StorageManager.html" title="interface in rice.persistence">StorageManager</A>&nbsp;manager,
<A HREF="../../../../rice/persistence/Cache.html" title="interface in rice.persistence">Cache</A>&nbsp;backup,
int&nbsp;replicas,
java.lang.String&nbsp;instance,
<A HREF="../../../../rice/p2p/past/PastPolicy.html" title="interface in rice.p2p.past">PastPolicy</A>&nbsp;policy,
long&nbsp;collectionInterval,
<A HREF="../../../../rice/persistence/StorageManager.html" title="interface in rice.persistence">StorageManager</A>&nbsp;trash)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for GCPast</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../rice/p2p/past/gc/GCPastImpl.html#GCPastImpl(rice.p2p.commonapi.Node, rice.persistence.StorageManager, int, java.lang.String, rice.p2p.past.PastPolicy, long)">GCPastImpl</A></B>(<A HREF="../../../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>&nbsp;node,
<A HREF="../../../../rice/persistence/StorageManager.html" title="interface in rice.persistence">StorageManager</A>&nbsp;manager,
int&nbsp;replicas,
java.lang.String&nbsp;instance,
<A HREF="../../../../rice/p2p/past/PastPolicy.html" title="interface in rice.p2p.past">PastPolicy</A>&nbsp;policy,
long&nbsp;collectionInterval)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor for GCPast</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/past/gc/GCPastImpl.html#collect(java.util.SortedMap, rice.Continuation)">collect</A></B>(java.util.SortedMap&nbsp;map,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal method which collects all of the objects in the given set</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/past/gc/GCPastImpl.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;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/past/gc/GCPastImpl.html#exists(rice.p2p.commonapi.Id)">exists</A></B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This upcall should return whether or not the given id is currently stored
by the client.</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/past/gc/GCPastImpl.html#existsInOverlay(rice.p2p.commonapi.Id, rice.Continuation)">existsInOverlay</A></B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This upcall should return whether or not the given id is currently stored
somewhere in the overlay by the client.</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/past/gc/GCPastImpl.html#fetch(rice.p2p.commonapi.Id, rice.p2p.commonapi.NodeHandle, rice.Continuation)">fetch</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,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This upcall is invoked to tell the client to fetch the given id,
and to call the given command with the boolean result once the fetch
is completed.</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/past/gc/GCPastImpl.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;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/past/gc/GCPastImpl.html#insert(rice.p2p.past.PastContent, rice.Continuation)">insert</A></B>(<A HREF="../../../../rice/p2p/past/PastContent.html" title="interface in rice.p2p.past">PastContent</A>&nbsp;obj,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts an object with the given ID into this instance of Past.</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/past/gc/GCPastImpl.html#insert(rice.p2p.past.PastContent, long, rice.Continuation)">insert</A></B>(<A HREF="../../../../rice/p2p/past/PastContent.html" title="interface in rice.p2p.past">PastContent</A>&nbsp;obj,
long&nbsp;expiration,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Inserts an object with the given ID into this instance of Past.</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/past/gc/GCPastImpl.html#refresh(rice.p2p.past.gc.GCIdSet, rice.Continuation)">refresh</A></B>(<A HREF="../../../../rice/p2p/past/gc/GCIdSet.html" title="class in rice.p2p.past.gc">GCIdSet</A>&nbsp;ids,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Internal method which actually does the refreshing.</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/past/gc/GCPastImpl.html#refresh(rice.p2p.commonapi.Id[], long[], rice.Continuation)">refresh</A></B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>[]&nbsp;array,
long[]&nbsp;expirations,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the objects stored under the provided keys id to expire no
earlier than the provided expiration time.</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/past/gc/GCPastImpl.html#refresh(rice.p2p.commonapi.Id[], long, rice.Continuation)">refresh</A></B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>[]&nbsp;array,
long&nbsp;expiration,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Updates the objects stored under the provided keys id to expire no
earlier than the provided expiration time.</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/past/gc/GCPastImpl.html#reInsert(rice.p2p.commonapi.Id, rice.Continuation)">reInsert</A></B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Asks a client to reinsert an object it already holds into the overlay</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/past/gc/GCPastImpl.html#remove(rice.p2p.commonapi.Id, rice.Continuation)">remove</A></B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This upcall is to notify the client that the given id can be safely removed
from the storage.</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/past/gc/GCPastImpl.html#scan()">scan</A></B>()</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.</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/past/gc/GCPastImpl.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>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/past/gc/GCPastImpl.html#toString()">toString</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_rice.p2p.past.PastImpl"><!-- --></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.p2p.past.<A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#buildReplicationManager(rice.p2p.commonapi.Node, java.lang.String)">buildReplicationManager</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#cache(rice.p2p.past.PastContent, rice.Continuation)">cache</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#doInsert(rice.p2p.commonapi.Id, rice.p2p.past.PastImpl.MessageBuilder, rice.Continuation, boolean)">doInsert</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#fetch(rice.p2p.past.PastContentHandle, rice.Continuation)">fetch</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getEndpoint()">getEndpoint</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getEnvironment()">getEnvironment</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getFetchResponseContinuation(rice.p2p.past.messaging.PastMessage)">getFetchResponseContinuation</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getHandles(rice.p2p.commonapi.Id, int, rice.Continuation)">getHandles</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getInstance()">getInstance</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getLocalNodeHandle()">getLocalNodeHandle</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getOutstandingMessages()">getOutstandingMessages</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getReplication()">getReplication</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getReplicationFactor()">getReplicationFactor</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getResponseContinuation(rice.p2p.past.messaging.PastMessage)">getResponseContinuation</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getStorageManager()">getStorageManager</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#getUID()">getUID</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#lookup(rice.p2p.commonapi.Id, boolean, rice.Continuation)">lookup</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#lookup(rice.p2p.commonapi.Id, rice.Continuation)">lookup</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#lookupHandle(rice.p2p.commonapi.Id, rice.p2p.commonapi.NodeHandle, rice.Continuation)">lookupHandle</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#lookupHandles(rice.p2p.commonapi.Id, int, rice.Continuation)">lookupHandles</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#sendRequest(rice.p2p.commonapi.Id, rice.p2p.past.messaging.PastMessage, rice.Continuation)">sendRequest</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#sendRequest(rice.p2p.commonapi.Id, rice.p2p.past.messaging.PastMessage, rice.p2p.commonapi.NodeHandle, rice.Continuation)">sendRequest</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#sendRequest(rice.p2p.commonapi.NodeHandle, rice.p2p.past.messaging.PastMessage, rice.Continuation)">sendRequest</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#setContentDeserializer(rice.p2p.past.rawserialization.PastContentDeserializer)">setContentDeserializer</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#setContentHandleDeserializer(rice.p2p.past.rawserialization.PastContentHandleDeserializer)">setContentHandleDeserializer</A>, <A HREF="../../../../rice/p2p/past/PastImpl.html#update(rice.p2p.commonapi.NodeHandle, boolean)">update</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_rice.p2p.past.Past"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface rice.p2p.past.<A HREF="../../../../rice/p2p/past/Past.html" title="interface in rice.p2p.past">Past</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../rice/p2p/past/Past.html#fetch(rice.p2p.past.PastContentHandle, rice.Continuation)">fetch</A>, <A HREF="../../../../rice/p2p/past/Past.html#getEnvironment()">getEnvironment</A>, <A HREF="../../../../rice/p2p/past/Past.html#getInstance()">getInstance</A>, <A HREF="../../../../rice/p2p/past/Past.html#getLocalNodeHandle()">getLocalNodeHandle</A>, <A HREF="../../../../rice/p2p/past/Past.html#getReplicationFactor()">getReplicationFactor</A>, <A HREF="../../../../rice/p2p/past/Past.html#lookup(rice.p2p.commonapi.Id, boolean, rice.Continuation)">lookup</A>, <A HREF="../../../../rice/p2p/past/Past.html#lookup(rice.p2p.commonapi.Id, rice.Continuation)">lookup</A>, <A HREF="../../../../rice/p2p/past/Past.html#lookupHandle(rice.p2p.commonapi.Id, rice.p2p.commonapi.NodeHandle, rice.Continuation)">lookupHandle</A>, <A HREF="../../../../rice/p2p/past/Past.html#lookupHandles(rice.p2p.commonapi.Id, int, rice.Continuation)">lookupHandles</A>, <A HREF="../../../../rice/p2p/past/Past.html#setContentDeserializer(rice.p2p.past.rawserialization.PastContentDeserializer)">setContentDeserializer</A>, <A HREF="../../../../rice/p2p/past/Past.html#setContentHandleDeserializer(rice.p2p.past.rawserialization.PastContentHandleDeserializer)">setContentHandleDeserializer</A></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="DEFAULT_EXPIRATION"><!-- --></A><H3>
DEFAULT_EXPIRATION</H3>
<PRE>
public static final long <B>DEFAULT_EXPIRATION</B></PRE>
<DL>
<DD>The default expiration, or when objects inserted with no timeout will expire
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#rice.p2p.past.gc.GCPastImpl.DEFAULT_EXPIRATION">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="realFactory"><!-- --></A><H3>
realFactory</H3>
<PRE>
protected <A HREF="../../../../rice/p2p/commonapi/IdFactory.html" title="interface in rice.p2p.commonapi">IdFactory</A> <B>realFactory</B></PRE>
<DL>
<DD>The real factory, which is not wrapped with a GCIdFactory
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="collected"><!-- --></A><H3>
collected</H3>
<PRE>
public int <B>collected</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="refreshed"><!-- --></A><H3>
refreshed</H3>
<PRE>
public int <B>refreshed</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="GCPastImpl(rice.p2p.commonapi.Node, rice.persistence.StorageManager, int, java.lang.String, rice.p2p.past.PastPolicy, long)"><!-- --></A><H3>
GCPastImpl</H3>
<PRE>
public <B>GCPastImpl</B>(<A HREF="../../../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>&nbsp;node,
<A HREF="../../../../rice/persistence/StorageManager.html" title="interface in rice.persistence">StorageManager</A>&nbsp;manager,
int&nbsp;replicas,
java.lang.String&nbsp;instance,
<A HREF="../../../../rice/p2p/past/PastPolicy.html" title="interface in rice.p2p.past">PastPolicy</A>&nbsp;policy,
long&nbsp;collectionInterval)</PRE>
<DL>
<DD>Constructor for GCPast
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - The node below this Past implementation<DD><CODE>manager</CODE> - The storage manager to be used by Past<DD><CODE>replicas</CODE> - The number of object replicas<DD><CODE>instance</CODE> - The unique instance name of this Past<DD><CODE>policy</CODE> - The policy this past instance should use<DD><CODE>collectionInterval</CODE> - The frequency with which GCPast should collection local expired objects</DL>
</DL>
<HR>
<A NAME="GCPastImpl(rice.p2p.commonapi.Node, rice.persistence.StorageManager, rice.persistence.Cache, int, java.lang.String, rice.p2p.past.PastPolicy, long, rice.persistence.StorageManager)"><!-- --></A><H3>
GCPastImpl</H3>
<PRE>
public <B>GCPastImpl</B>(<A HREF="../../../../rice/p2p/commonapi/Node.html" title="interface in rice.p2p.commonapi">Node</A>&nbsp;node,
<A HREF="../../../../rice/persistence/StorageManager.html" title="interface in rice.persistence">StorageManager</A>&nbsp;manager,
<A HREF="../../../../rice/persistence/Cache.html" title="interface in rice.persistence">Cache</A>&nbsp;backup,
int&nbsp;replicas,
java.lang.String&nbsp;instance,
<A HREF="../../../../rice/p2p/past/PastPolicy.html" title="interface in rice.p2p.past">PastPolicy</A>&nbsp;policy,
long&nbsp;collectionInterval,
<A HREF="../../../../rice/persistence/StorageManager.html" title="interface in rice.persistence">StorageManager</A>&nbsp;trash)</PRE>
<DL>
<DD>Constructor for GCPast
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>node</CODE> - The node below this Past implementation<DD><CODE>manager</CODE> - The storage manager to be used by Past<DD><CODE>backup</CODE> - The cache used for previously-responsible objects (can be null)<DD><CODE>replicas</CODE> - The number of object replicas<DD><CODE>instance</CODE> - The unique instance name of this Past<DD><CODE>trash</CODE> - The storage manager to place the deleted objects into (if null, they are removed)<DD><CODE>policy</CODE> - The policy this past instance should use<DD><CODE>collectionInterval</CODE> - The frequency with which GCPast should collection local expired objects</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="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#toString()">toString</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="insert(rice.p2p.past.PastContent, rice.Continuation)"><!-- --></A><H3>
insert</H3>
<PRE>
public void <B>insert</B>(<A HREF="../../../../rice/p2p/past/PastContent.html" title="interface in rice.p2p.past">PastContent</A>&nbsp;obj,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD>Inserts an object with the given ID into this instance of Past.
Asynchronously returns a PastException to command, if the
operation was unsuccessful. If the operation was successful, a
Boolean[] is returned representing the responses from each of
the replicas which inserted the object.
This method is equivalent to
insert(obj, INFINITY_EXPIRATION, command)
as it inserts the object with a timeout value of infinity. This
is done for simplicity, as well as backwards-compatibility for
applications.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/past/gc/GCPast.html#insert(rice.p2p.past.PastContent, rice.Continuation)">insert</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/past/gc/GCPast.html" title="interface in rice.p2p.past.gc">GCPast</A></CODE><DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/past/Past.html#insert(rice.p2p.past.PastContent, rice.Continuation)">insert</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/past/Past.html" title="interface in rice.p2p.past">Past</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#insert(rice.p2p.past.PastContent, rice.Continuation)">insert</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obj</CODE> - the object to be inserted<DD><CODE>command</CODE> - Command to be performed when the result is received</DL>
</DD>
</DL>
<HR>
<A NAME="insert(rice.p2p.past.PastContent, long, rice.Continuation)"><!-- --></A><H3>
insert</H3>
<PRE>
public void <B>insert</B>(<A HREF="../../../../rice/p2p/past/PastContent.html" title="interface in rice.p2p.past">PastContent</A>&nbsp;obj,
long&nbsp;expiration,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD>Inserts an object with the given ID into this instance of Past.
Asynchronously returns a PastException to command, if the
operation was unsuccessful. If the operation was successful, a
Boolean[] is returned representing the responses from each of
the replicas which inserted the object.
The contract for this method is that the provided object will be
stored until the provided expiration time. Thus, if the application
determines that it is still interested in this object, it must refresh
the object via the refresh() method.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/past/gc/GCPast.html#insert(rice.p2p.past.PastContent, long, rice.Continuation)">insert</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/past/gc/GCPast.html" title="interface in rice.p2p.past.gc">GCPast</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obj</CODE> - the object to be inserted<DD><CODE>expiration</CODE> - the time until which the object must be stored<DD><CODE>command</CODE> - Command to be performed when the result is received</DL>
</DD>
</DL>
<HR>
<A NAME="refresh(rice.p2p.commonapi.Id[], long, rice.Continuation)"><!-- --></A><H3>
refresh</H3>
<PRE>
public void <B>refresh</B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>[]&nbsp;array,
long&nbsp;expiration,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD>Updates the objects stored under the provided keys id to expire no
earlier than the provided expiration time. Asyncroniously returns
the result to the caller via the provided continuation.
The result of this operation is an Object[], which is the same length
as the input array of Ids. Each element in the array is either
Boolean(true), representing that the refresh succeeded for the
cooresponding Id, or an Exception describing why the refresh failed.
Specifically, the possible exceptions which can be returned are:
ObjectNotFoundException - if no object was found under the given key
RefreshFailedException - if the refresh operation failed for any other
reason (the getMessage() will describe the failure)
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/past/gc/GCPast.html#refresh(rice.p2p.commonapi.Id[], long, rice.Continuation)">refresh</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/past/gc/GCPast.html" title="interface in rice.p2p.past.gc">GCPast</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The keys which to refresh<DD><CODE>expiration</CODE> - The time to extend the lifetime to<DD><CODE>command</CODE> - Command to be performed when the result is received</DL>
</DD>
</DL>
<HR>
<A NAME="refresh(rice.p2p.commonapi.Id[], long[], rice.Continuation)"><!-- --></A><H3>
refresh</H3>
<PRE>
public void <B>refresh</B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>[]&nbsp;array,
long[]&nbsp;expirations,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD>Updates the objects stored under the provided keys id to expire no
earlier than the provided expiration time. Asyncroniously returns
the result to the caller via the provided continuation.
The result of this operation is an Object[], which is the same length
as the input array of Ids. Each element in the array is either
Boolean(true), representing that the refresh succeeded for the
cooresponding Id, or an Exception describing why the refresh failed.
Specifically, the possible exceptions which can be returned are:
ObjectNotFoundException - if no object was found under the given key
RefreshFailedException - if the refresh operation failed for any other
reason (the getMessage() will describe the failure)
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/past/gc/GCPast.html#refresh(rice.p2p.commonapi.Id[], long[], rice.Continuation)">refresh</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/past/gc/GCPast.html" title="interface in rice.p2p.past.gc">GCPast</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The keys which to refresh<DD><CODE>expiration</CODE> - The time to extend the lifetime to<DD><CODE>command</CODE> - Command to be performed when the result is received</DL>
</DD>
</DL>
<HR>
<A NAME="refresh(rice.p2p.past.gc.GCIdSet, rice.Continuation)"><!-- --></A><H3>
refresh</H3>
<PRE>
protected void <B>refresh</B>(<A HREF="../../../../rice/p2p/past/gc/GCIdSet.html" title="class in rice.p2p.past.gc">GCIdSet</A>&nbsp;ids,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD>Internal method which actually does the refreshing. Should not be called
by external applications.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>ids</CODE> - The ids to refresh<DD><CODE>expiration</CODE> - The time to extend the lifetime until<DD><CODE>command</CODE> - The command to return the result to</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><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#forward(rice.p2p.commonapi.RouteMessage)">forward</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</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><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#deliver(rice.p2p.commonapi.Id, rice.p2p.commonapi.Message)">deliver</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</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="collect(java.util.SortedMap, rice.Continuation)"><!-- --></A><H3>
collect</H3>
<PRE>
protected void <B>collect</B>(java.util.SortedMap&nbsp;map,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD>Internal method which collects all of the objects in the given set
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>set</CODE> - THe set to collect<DD><CODE>command</CODE> - The command to call once done</DL>
</DD>
</DL>
<HR>
<A NAME="fetch(rice.p2p.commonapi.Id, rice.p2p.commonapi.NodeHandle, rice.Continuation)"><!-- --></A><H3>
fetch</H3>
<PRE>
public void <B>fetch</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,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD>This upcall is invoked to tell the client to fetch the given id,
and to call the given command with the boolean result once the fetch
is completed. The client *MUST* call the command at some point in the
future, as the manager waits for the command to return before continuing.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html#fetch(rice.p2p.commonapi.Id, rice.p2p.commonapi.NodeHandle, rice.Continuation)">fetch</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#fetch(rice.p2p.commonapi.Id, rice.p2p.commonapi.NodeHandle, rice.Continuation)">fetch</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The id to fetch<DD><CODE>hint</CODE> - A hint where to find the key from. This is where the local node
heard about the key.<DD><CODE>command</CODE> - The command to return the result to</DL>
</DD>
</DL>
<HR>
<A NAME="remove(rice.p2p.commonapi.Id, rice.Continuation)"><!-- --></A><H3>
remove</H3>
<PRE>
public void <B>remove</B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD>This upcall is to notify the client that the given id can be safely removed
from the storage. The client may choose to perform advanced behavior, such
as caching the object, or may simply delete it.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html#remove(rice.p2p.commonapi.Id, rice.Continuation)">remove</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#remove(rice.p2p.commonapi.Id, rice.Continuation)">remove</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The id to remove</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.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html#scan(rice.p2p.commonapi.IdRange)">scan</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#scan(rice.p2p.commonapi.IdRange)">scan</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>range</CODE> - the requested range</DL>
</DD>
</DL>
<HR>
<A NAME="scan()"><!-- --></A><H3>
scan</H3>
<PRE>
public <A HREF="../../../../rice/p2p/commonapi/IdSet.html" title="interface in rice.p2p.commonapi">IdSet</A> <B>scan</B>()</PRE>
<DL>
<DD>This upcall should return the set of keys that the application
currently stores. Should return a empty IdSet (not null),
in the case that no keys belong to this range.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#scan()">scan</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>range</CODE> - the requested range</DL>
</DD>
</DL>
<HR>
<A NAME="exists(rice.p2p.commonapi.Id)"><!-- --></A><H3>
exists</H3>
<PRE>
public boolean <B>exists</B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id)</PRE>
<DL>
<DD>This upcall should return whether or not the given id is currently stored
by the client.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html#exists(rice.p2p.commonapi.Id)">exists</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#exists(rice.p2p.commonapi.Id)">exists</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The id in question
<DT><B>Returns:</B><DD>Whether or not the id exists</DL>
</DD>
</DL>
<HR>
<A NAME="existsInOverlay(rice.p2p.commonapi.Id, rice.Continuation)"><!-- --></A><H3>
existsInOverlay</H3>
<PRE>
public void <B>existsInOverlay</B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html#existsInOverlay(rice.p2p.commonapi.Id, rice.Continuation)">ReplicationManagerClient</A></CODE></B></DD>
<DD>This upcall should return whether or not the given id is currently stored
somewhere in the overlay by the client.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html#existsInOverlay(rice.p2p.commonapi.Id, rice.Continuation)">existsInOverlay</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#existsInOverlay(rice.p2p.commonapi.Id, rice.Continuation)">existsInOverlay</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The id in question</DL>
</DD>
</DL>
<HR>
<A NAME="reInsert(rice.p2p.commonapi.Id, rice.Continuation)"><!-- --></A><H3>
reInsert</H3>
<PRE>
public void <B>reInsert</B>(<A HREF="../../../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
<A HREF="../../../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;command)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html#reInsert(rice.p2p.commonapi.Id, rice.Continuation)">ReplicationManagerClient</A></CODE></B></DD>
<DD>Asks a client to reinsert an object it already holds into the overlay
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html#reInsert(rice.p2p.commonapi.Id, rice.Continuation)">reInsert</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/replication/manager/ReplicationManagerClient.html" title="interface in rice.p2p.replication.manager">ReplicationManagerClient</A></CODE><DT><B>Overrides:</B><DD><CODE><A HREF="../../../../rice/p2p/past/PastImpl.html#reInsert(rice.p2p.commonapi.Id, rice.Continuation)">reInsert</A></CODE> in class <CODE><A HREF="../../../../rice/p2p/past/PastImpl.html" title="class in rice.p2p.past">PastImpl</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The id in question</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/GCPastImpl.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/past/gc/GCPastException.ObjectNotFoundException.html" title="class in rice.p2p.past.gc"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../rice/p2p/past/gc/GCPastImpl.GCPastDeserializer.html" title="class in rice.p2p.past.gc"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?rice/p2p/past/gc/GCPastImpl.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="GCPastImpl.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>