345 lines
15 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:03 CET 2009 -->
<TITLE>
Cache (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="Cache (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/Cache.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;PREV CLASS&nbsp;
&nbsp;<A HREF="../../rice/persistence/Catalog.html" title="interface in rice.persistence"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?rice/persistence/Cache.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="Cache.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;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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.persistence</FONT>
<BR>
Interface Cache</H2>
<DL>
<DT><B>All Superinterfaces:</B> <DD><A HREF="../../rice/persistence/Catalog.html" title="interface in rice.persistence">Catalog</A></DD>
</DL>
<DL>
<DT><B>All Known Subinterfaces:</B> <DD><A HREF="../../rice/persistence/StorageManager.html" title="interface in rice.persistence">StorageManager</A></DD>
</DL>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../rice/persistence/EmptyCache.html" title="class in rice.persistence">EmptyCache</A>, <A HREF="../../rice/persistence/LRUCache.html" title="class in rice.persistence">LRUCache</A>, <A HREF="../../rice/persistence/StorageManagerImpl.html" title="class in rice.persistence">StorageManagerImpl</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public interface <B>Cache</B><DT>extends <A HREF="../../rice/persistence/Catalog.html" title="interface in rice.persistence">Catalog</A></DL>
</PRE>
<P>
This interface is the abstraction of something which provides a
caching service. Implementations should take in parameters specific
to the cache algorithm. Two implementations are provided,
the LRUCache and GDSCache. This interface extends the Catalog
interface, as the cache provides a Catalog service.
<P>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>$Id: Cache.java 4654 2009-01-08 16:33:07Z jeffh $</DD>
</DL>
<HR>
<P>
<!-- ========== 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/persistence/Cache.html#cache(rice.p2p.commonapi.Id, java.io.Serializable, java.io.Serializable, rice.Continuation)">cache</A></B>(<A HREF="../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
java.io.Serializable&nbsp;metadata,
java.io.Serializable&nbsp;obj,
<A HREF="../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;c)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Caches an object in this storage.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../rice/persistence/Cache.html#getMaximumSize()">getMaximumSize</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the maximum size of the cache, in bytes.</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/persistence/Cache.html#setMaximumSize(int, rice.Continuation)">setMaximumSize</A></B>(int&nbsp;size,
<A HREF="../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;c)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets the maximum size of the cache, in bytes.</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/persistence/Cache.html#uncache(rice.p2p.commonapi.Id, rice.Continuation)">uncache</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;c)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Removes the object from the list of cached objects.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_rice.persistence.Catalog"><!-- --></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.persistence.<A HREF="../../rice/persistence/Catalog.html" title="interface in rice.persistence">Catalog</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="../../rice/persistence/Catalog.html#exists(rice.p2p.commonapi.Id)">exists</A>, <A HREF="../../rice/persistence/Catalog.html#flush(rice.Continuation)">flush</A>, <A HREF="../../rice/persistence/Catalog.html#getMetadata(rice.p2p.commonapi.Id)">getMetadata</A>, <A HREF="../../rice/persistence/Catalog.html#getObject(rice.p2p.commonapi.Id, rice.Continuation)">getObject</A>, <A HREF="../../rice/persistence/Catalog.html#getSize()">getSize</A>, <A HREF="../../rice/persistence/Catalog.html#getTotalSize()">getTotalSize</A>, <A HREF="../../rice/persistence/Catalog.html#rename(rice.p2p.commonapi.Id, rice.p2p.commonapi.Id, rice.Continuation)">rename</A>, <A HREF="../../rice/persistence/Catalog.html#scan()">scan</A>, <A HREF="../../rice/persistence/Catalog.html#scan(rice.p2p.commonapi.IdRange)">scan</A>, <A HREF="../../rice/persistence/Catalog.html#scanMetadata()">scanMetadata</A>, <A HREF="../../rice/persistence/Catalog.html#scanMetadata(rice.p2p.commonapi.IdRange)">scanMetadata</A>, <A HREF="../../rice/persistence/Catalog.html#scanMetadataValuesHead(java.lang.Object)">scanMetadataValuesHead</A>, <A HREF="../../rice/persistence/Catalog.html#scanMetadataValuesNull()">scanMetadataValuesNull</A>, <A HREF="../../rice/persistence/Catalog.html#setMetadata(rice.p2p.commonapi.Id, java.io.Serializable, rice.Continuation)">setMetadata</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ 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="cache(rice.p2p.commonapi.Id, java.io.Serializable, java.io.Serializable, rice.Continuation)"><!-- --></A><H3>
cache</H3>
<PRE>
void <B>cache</B>(<A HREF="../../rice/p2p/commonapi/Id.html" title="interface in rice.p2p.commonapi">Id</A>&nbsp;id,
java.io.Serializable&nbsp;metadata,
java.io.Serializable&nbsp;obj,
<A HREF="../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;c)</PRE>
<DL>
<DD>Caches an object in this storage. This method is non-blocking.
If the object has already been stored at the location id, this
method has the effect of calling <code>uncache(id)</code> followed
by <code>cache(id, obj)</code>. This method finishes by calling
receiveResult() on the provided continuation with whether or not
the object was cached. Note that the object may not actually be
cached due to the cache replacement policy.
Returns <code>True</code> if the cache actaully stores the object, else
<code>False</code> (through receiveResult on c).
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>id</CODE> - The object's id.<DD><CODE>metadata</CODE> - The object's metdatadata<DD><CODE>obj</CODE> - The object to cache.<DD><CODE>c</CODE> - The command to run once the operation is complete</DL>
</DD>
</DL>
<HR>
<A NAME="uncache(rice.p2p.commonapi.Id, rice.Continuation)"><!-- --></A><H3>
uncache</H3>
<PRE>
void <B>uncache</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;c)</PRE>
<DL>
<DD>Removes the object from the list of cached objects. This method is
non-blocking. If the object was not in the cached list in the first place,
nothing happens and <code>False</code> is returned.
Returns <code>True</code> if the action succeeds, else
<code>False</code> (through receiveResult on c).
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>pid</CODE> - The object's id<DD><CODE>c</CODE> - The command to run once the operation is complete</DL>
</DD>
</DL>
<HR>
<A NAME="getMaximumSize()"><!-- --></A><H3>
getMaximumSize</H3>
<PRE>
long <B>getMaximumSize</B>()</PRE>
<DL>
<DD>Returns the maximum size of the cache, in bytes. The result
is returned via the receiveResult method on the provided
Continuation with an Integer representing the size.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - The command to run once the operation is complete</DL>
</DD>
</DL>
<HR>
<A NAME="setMaximumSize(int, rice.Continuation)"><!-- --></A><H3>
setMaximumSize</H3>
<PRE>
void <B>setMaximumSize</B>(int&nbsp;size,
<A HREF="../../rice/Continuation.html" title="interface in rice">Continuation</A>&nbsp;c)</PRE>
<DL>
<DD>Sets the maximum size of the cache, in bytes. Setting this
value to a smaller value than the current value may result in
object being evicted from the cache.
Returns the success or failure of the setSize operation
(through receiveResult on c).
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>size</CODE> - The new maximum size, in bytes, of the cache.<DD><CODE>c</CODE> - The command to run once the operation is complete</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/Cache.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;PREV CLASS&nbsp;
&nbsp;<A HREF="../../rice/persistence/Catalog.html" title="interface in rice.persistence"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../index.html?rice/persistence/Cache.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="Cache.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;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&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>