FreePastry/docs/javadoc/rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html
ChronosX88 aaa73fe8b3 Pew
2019-05-13 16:45:05 +04:00

419 lines
22 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:19 CET 2009 -->
<TITLE>
ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy (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="ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy (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/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.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/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&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;FIELD&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.scribe.maintenance</FONT>
<BR>
Class ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>rice.p2p.scribe.maintenance.ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy</A></DD>
</DL>
<DL>
<DT><B>Enclosing interface:</B><DD><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public static class <B>ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy</B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy</A></DL>
</PRE>
<P>
<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>
</TABLE>
&nbsp;<A NAME="nested_classes_inherited_from_class_rice.p2p.scribe.maintenance.ScribeMaintenancePolicy"><!-- --></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 interface rice.p2p.scribe.maintenance.<A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html" title="class in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy</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/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html#ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy(rice.environment.Environment)">ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy</A></B>(<A HREF="../../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A>&nbsp;environment)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html#doMaintenance(rice.p2p.scribe.maintenance.MaintainableScribe)">doMaintenance</A></B>(<A HREF="../../../../rice/p2p/scribe/maintenance/MaintainableScribe.html" title="interface in rice.p2p.scribe.maintenance">MaintainableScribe</A>&nbsp;scribe)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called periodically.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../rice/p2p/scribe/rawserialization/RawScribeContent.html" title="interface in rice.p2p.scribe.rawserialization">RawScribeContent</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html#implicitSubscribe(java.util.List)">implicitSubscribe</A></B>(java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;topics)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when subscribing for maintenance or tree rearrangement (such as parent death).</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/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html#nodeFaulty(rice.p2p.scribe.maintenance.MaintainableScribe, rice.p2p.commonapi.NodeHandle, java.util.List, java.util.List)">nodeFaulty</A></B>(<A HREF="../../../../rice/p2p/scribe/maintenance/MaintainableScribe.html" title="interface in rice.p2p.scribe.maintenance">MaintainableScribe</A>&nbsp;scribe,
<A HREF="../../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;nodeWasParent,
java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;nodeWasChild)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When anyone in any Topic (child or parent) is detected faulty.</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/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html#noLongerRoot(rice.p2p.scribe.maintenance.MaintainableScribe, java.util.List)">noLongerRoot</A></B>(<A HREF="../../../../rice/p2p/scribe/maintenance/MaintainableScribe.html" title="interface in rice.p2p.scribe.maintenance">MaintainableScribe</A>&nbsp;scribe,
java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;topics)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Called when membership changes "near" the local node, in overlay space.</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/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html#subscribeFailed(rice.p2p.scribe.maintenance.MaintainableScribe, java.util.List)">subscribeFailed</A></B>(<A HREF="../../../../rice/p2p/scribe/maintenance/MaintainableScribe.html" title="interface in rice.p2p.scribe.maintenance">MaintainableScribe</A>&nbsp;scribe,
java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;failedTopics)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The subscription failed.</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>
<!-- ========= 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="ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy(rice.environment.Environment)"><!-- --></A><H3>
ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy</H3>
<PRE>
public <B>ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy</B>(<A HREF="../../../../rice/environment/Environment.html" title="class in rice.environment">Environment</A>&nbsp;environment)</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="doMaintenance(rice.p2p.scribe.maintenance.MaintainableScribe)"><!-- --></A><H3>
doMaintenance</H3>
<PRE>
public void <B>doMaintenance</B>(<A HREF="../../../../rice/p2p/scribe/maintenance/MaintainableScribe.html" title="interface in rice.p2p.scribe.maintenance">MaintainableScribe</A>&nbsp;scribe)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html#doMaintenance(rice.p2p.scribe.maintenance.MaintainableScribe)">ScribeMaintenancePolicy</A></CODE></B></DD>
<DD>Called periodically.
Can be specified in millis by by the parameter:
p2p_scribe_maintenance_interval (default 180000) // 3 minutes
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html#doMaintenance(rice.p2p.scribe.maintenance.MaintainableScribe)">doMaintenance</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="noLongerRoot(rice.p2p.scribe.maintenance.MaintainableScribe, java.util.List)"><!-- --></A><H3>
noLongerRoot</H3>
<PRE>
public void <B>noLongerRoot</B>(<A HREF="../../../../rice/p2p/scribe/maintenance/MaintainableScribe.html" title="interface in rice.p2p.scribe.maintenance">MaintainableScribe</A>&nbsp;scribe,
java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;topics)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html#noLongerRoot(rice.p2p.scribe.maintenance.MaintainableScribe, java.util.List)">ScribeMaintenancePolicy</A></CODE></B></DD>
<DD>Called when membership changes "near" the local node, in overlay space.
The typical use of this function would be to detect if the root has
changed and subscribe to the new root, like this:
<pre>
for (Topic topic : topics) {
scribe.subscribe(topic);
}
</pre>
Note however that this approach can cause a long tail at the head of the tree.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html#noLongerRoot(rice.p2p.scribe.maintenance.MaintainableScribe, java.util.List)">noLongerRoot</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="nodeFaulty(rice.p2p.scribe.maintenance.MaintainableScribe, rice.p2p.commonapi.NodeHandle, java.util.List, java.util.List)"><!-- --></A><H3>
nodeFaulty</H3>
<PRE>
public void <B>nodeFaulty</B>(<A HREF="../../../../rice/p2p/scribe/maintenance/MaintainableScribe.html" title="interface in rice.p2p.scribe.maintenance">MaintainableScribe</A>&nbsp;scribe,
<A HREF="../../../../rice/p2p/commonapi/NodeHandle.html" title="class in rice.p2p.commonapi">NodeHandle</A>&nbsp;handle,
java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;nodeWasParent,
java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;nodeWasChild)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html#nodeFaulty(rice.p2p.scribe.maintenance.MaintainableScribe, rice.p2p.commonapi.NodeHandle, java.util.List, java.util.List)">ScribeMaintenancePolicy</A></CODE></B></DD>
<DD>When anyone in any Topic (child or parent) is detected faulty.
<pre>
for (Topic topic : nodeWasParent) {
if (!isRoot(topic)) {
scribe.subscribe(topic);
}
}
</pre>
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html#nodeFaulty(rice.p2p.scribe.maintenance.MaintainableScribe, rice.p2p.commonapi.NodeHandle, java.util.List, java.util.List)">nodeFaulty</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="subscribeFailed(rice.p2p.scribe.maintenance.MaintainableScribe, java.util.List)"><!-- --></A><H3>
subscribeFailed</H3>
<PRE>
public void <B>subscribeFailed</B>(<A HREF="../../../../rice/p2p/scribe/maintenance/MaintainableScribe.html" title="interface in rice.p2p.scribe.maintenance">MaintainableScribe</A>&nbsp;scribe,
java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;failedTopics)</PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html#subscribeFailed(rice.p2p.scribe.maintenance.MaintainableScribe, java.util.List)">ScribeMaintenancePolicy</A></CODE></B></DD>
<DD>The subscription failed. This is called if no particular client requested the Subscription.
TODO: Does this belong in the normal policy instead?
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html#subscribeFailed(rice.p2p.scribe.maintenance.MaintainableScribe, java.util.List)">subscribeFailed</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="implicitSubscribe(java.util.List)"><!-- --></A><H3>
implicitSubscribe</H3>
<PRE>
public <A HREF="../../../../rice/p2p/scribe/rawserialization/RawScribeContent.html" title="interface in rice.p2p.scribe.rawserialization">RawScribeContent</A> <B>implicitSubscribe</B>(java.util.List&lt;<A HREF="../../../../rice/p2p/scribe/Topic.html" title="class in rice.p2p.scribe">Topic</A>&gt;&nbsp;topics)</PRE>
<DL>
<DD>Called when subscribing for maintenance or tree rearrangement (such as parent death).
This gives the MaintenancePolicy a chance to set the ScribeContent in these messages.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html#implicitSubscribe(java.util.List)">implicitSubscribe</A></CODE> in interface <CODE><A HREF="../../../../rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance">ScribeMaintenancePolicy</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>topics</CODE> - the topics we are implicitly subscribing to
<DT><B>Returns:</B><DD>the ScribeContent to put into the SubscribeMessage (null is ok)</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/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.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/scribe/maintenance/ScribeMaintenancePolicy.html" title="interface in rice.p2p.scribe.maintenance"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?rice/p2p/scribe/maintenance/ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ScribeMaintenancePolicy.DefaultScribeMaintenancePolicy.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&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;FIELD&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>