blob: 4e0a728c9c68551b6efd79ac05f4c0997881b7f4 [file] [log] [blame]
<!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.5.0_22) on Sun Oct 21 11:03:15 GMT+01:00 2012 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
MemcachedHttpCacheStorage (HttpComponents Client 4.2.2 API)
</TITLE>
<META NAME="keywords" CONTENT="org.apache.http.impl.client.cache.memcached.MemcachedHttpCacheStorage class">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="MemcachedHttpCacheStorage (HttpComponents Client 4.2.2 API)";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= 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/MemcachedHttpCacheStorage.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>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedCacheEntryImpl.html" title="class in org.apache.http.impl.client.cache.memcached"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedKeyHashingException.html" title="class in org.apache.http.impl.client.cache.memcached"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../../index.html?org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="MemcachedHttpCacheStorage.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">
org.apache.http.impl.client.cache.memcached</FONT>
<BR>
Class MemcachedHttpCacheStorage</H2>
<PRE>
<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../../../../../resources/inherit.gif" ALT="extended by "><B>org.apache.http.impl.client.cache.memcached.MemcachedHttpCacheStorage</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html" title="interface in org.apache.http.client.cache">HttpCacheStorage</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>MemcachedHttpCacheStorage</B><DT>extends <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A><DT>implements <A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html" title="interface in org.apache.http.client.cache">HttpCacheStorage</A></DL>
</PRE>
<P>
<p>This class is a storage backend that uses an external <i>memcached</i>
for storing cached origin responses. This storage option provides a
couple of interesting advantages over the default in-memory storage
backend:
<ol>
<li>in-memory cached objects can survive an application restart since
they are held in a separate process</li>
<li>it becomes possible for several cooperating applications to share
a large <i>memcached</i> farm together</li>
</ol>
Note that in a shared memcached pool setting you may wish to make use
of the Ketama consistent hashing algorithm to reduce the number of
cache misses that might result if one of the memcached cluster members
fails (see the <a href="http://dustin.github.com/java-memcached-client/apidocs/net/spy/memcached/KetamaConnectionFactory.html">
KetamaConnectionFactory</a>).
</p>
<p>Because memcached places limits on the size of its keys, we need to
introduce a key hashing scheme to map the annotated URLs the higher-level
<A HREF="../../../../../../../org/apache/http/impl/client/cache/CachingHttpClient.html" title="class in org.apache.http.impl.client.cache"><CODE>CachingHttpClient</CODE></A> wants to use as keys onto ones that are suitable
for use with memcached. Please see <A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/KeyHashingScheme.html" title="interface in org.apache.http.impl.client.cache.memcached"><CODE>KeyHashingScheme</CODE></A> if you would
like to use something other than the provided <A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/SHA256KeyHashingScheme.html" title="class in org.apache.http.impl.client.cache.memcached"><CODE>SHA256KeyHashingScheme</CODE></A>.</p>
<p>Because this hashing scheme can potentially result in key collisions (though
highly unlikely), we need to store the higher-level logical storage key along
with the <A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheEntry.html" title="class in org.apache.http.client.cache"><CODE>HttpCacheEntry</CODE></A> so that we can re-check it on retrieval. There
is a default serialization scheme provided for this, although you can provide
your own implementations of <A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedCacheEntry.html" title="interface in org.apache.http.impl.client.cache.memcached"><CODE>MemcachedCacheEntry</CODE></A> and
<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedCacheEntryFactory.html" title="interface in org.apache.http.impl.client.cache.memcached"><CODE>MemcachedCacheEntryFactory</CODE></A> to customize this serialization.</p>
<p>Please refer to the <a href="http://code.google.com/p/memcached/wiki/NewStart">
memcached documentation</a> and in particular to the documentation for
the <a href="http://code.google.com/p/spymemcached/">spymemcached
documentation</a> for details about how to set up and configure memcached
and the Java client used here, respectively.</p>
<P>
<P>
<DL>
<DT><B>Since:</B></DT>
<DD>4.1</DD>
</DL>
<HR>
<P>
<!-- ======== 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="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html#MemcachedHttpCacheStorage(java.net.InetSocketAddress)">MemcachedHttpCacheStorage</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/net/InetSocketAddress.html" title="class or interface in java.net">InetSocketAddress</A>&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a storage backend talking to a <i>memcached</i> instance
listening on the specified host and port.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html#MemcachedHttpCacheStorage(net.spy.memcached.MemcachedClientIF)">MemcachedHttpCacheStorage</A></B>(net.spy.memcached.MemcachedClientIF&nbsp;cache)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a storage backend using the pre-configured given
<i>memcached</i> client.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html#MemcachedHttpCacheStorage(net.spy.memcached.MemcachedClientIF, org.apache.http.impl.client.cache.CacheConfig, org.apache.http.client.cache.HttpCacheEntrySerializer)">MemcachedHttpCacheStorage</A></B>(net.spy.memcached.MemcachedClientIF&nbsp;client,
<A HREF="../../../../../../../org/apache/http/impl/client/cache/CacheConfig.html" title="class in org.apache.http.impl.client.cache">CacheConfig</A>&nbsp;config,
<A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheEntrySerializer.html" title="interface in org.apache.http.client.cache">HttpCacheEntrySerializer</A>&nbsp;serializer)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<B>Deprecated.</B>&nbsp;<I>(4.2) do not use</I></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html#MemcachedHttpCacheStorage(net.spy.memcached.MemcachedClientIF, org.apache.http.impl.client.cache.CacheConfig, org.apache.http.impl.client.cache.memcached.MemcachedCacheEntryFactory, org.apache.http.impl.client.cache.memcached.KeyHashingScheme)">MemcachedHttpCacheStorage</A></B>(net.spy.memcached.MemcachedClientIF&nbsp;client,
<A HREF="../../../../../../../org/apache/http/impl/client/cache/CacheConfig.html" title="class in org.apache.http.impl.client.cache">CacheConfig</A>&nbsp;config,
<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedCacheEntryFactory.html" title="interface in org.apache.http.impl.client.cache.memcached">MemcachedCacheEntryFactory</A>&nbsp;memcachedCacheEntryFactory,
<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/KeyHashingScheme.html" title="interface in org.apache.http.impl.client.cache.memcached">KeyHashingScheme</A>&nbsp;keyHashingScheme)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a storage backend using the given <i>memcached</i> client and
applying the given cache configuration, serialization, and hashing
mechanisms.</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;<A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheEntry.html" title="class in org.apache.http.client.cache">HttpCacheEntry</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html#getEntry(java.lang.String)">getEntry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;url)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieves the cache entry stored under the given key
or null if no entry exists under that key.</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="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html#putEntry(java.lang.String, org.apache.http.client.cache.HttpCacheEntry)">putEntry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;url,
<A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheEntry.html" title="class in org.apache.http.client.cache">HttpCacheEntry</A>&nbsp;entry)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Store a given cache entry under the given key.</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="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html#removeEntry(java.lang.String)">removeEntry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;url)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deletes/invalidates/removes any cache entries currently
stored under the given key.</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="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html#updateEntry(java.lang.String, org.apache.http.client.cache.HttpCacheUpdateCallback)">updateEntry</A></B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;url,
<A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheUpdateCallback.html" title="interface in org.apache.http.client.cache">HttpCacheUpdateCallback</A>&nbsp;callback)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Atomically applies the given callback to update an existing cache
entry under a given key.</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.<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html#wait(long, int)" title="class or interface in java.lang">wait</A></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="MemcachedHttpCacheStorage(java.net.InetSocketAddress)"><!-- --></A><H3>
MemcachedHttpCacheStorage</H3>
<PRE>
public <B>MemcachedHttpCacheStorage</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/net/InetSocketAddress.html" title="class or interface in java.net">InetSocketAddress</A>&nbsp;address)
throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD>Create a storage backend talking to a <i>memcached</i> instance
listening on the specified host and port. This is useful if you
just have a single local memcached instance running on the same
machine as your application, for example.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - where the <i>memcached</i> daemon is running
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE> - in case of an error</DL>
</DL>
<HR>
<A NAME="MemcachedHttpCacheStorage(net.spy.memcached.MemcachedClientIF)"><!-- --></A><H3>
MemcachedHttpCacheStorage</H3>
<PRE>
public <B>MemcachedHttpCacheStorage</B>(net.spy.memcached.MemcachedClientIF&nbsp;cache)</PRE>
<DL>
<DD>Create a storage backend using the pre-configured given
<i>memcached</i> client.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>cache</CODE> - client to use for communicating with <i>memcached</i></DL>
</DL>
<HR>
<A NAME="MemcachedHttpCacheStorage(net.spy.memcached.MemcachedClientIF, org.apache.http.impl.client.cache.CacheConfig, org.apache.http.client.cache.HttpCacheEntrySerializer)"><!-- --></A><H3>
MemcachedHttpCacheStorage</H3>
<PRE>
<FONT SIZE="-1"><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Deprecated.html" title="class or interface in java.lang">@Deprecated</A>
</FONT>public <B>MemcachedHttpCacheStorage</B>(net.spy.memcached.MemcachedClientIF&nbsp;client,
<A HREF="../../../../../../../org/apache/http/impl/client/cache/CacheConfig.html" title="class in org.apache.http.impl.client.cache">CacheConfig</A>&nbsp;config,
<A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheEntrySerializer.html" title="interface in org.apache.http.client.cache">HttpCacheEntrySerializer</A>&nbsp;serializer)</PRE>
<DL>
<DD><B>Deprecated.</B>&nbsp;<I>(4.2) do not use</I>
<P>
<DD>Create a storage backend using the given <i>memcached</i> client and
applying the given cache configuration and cache entry serialization
mechanism. <b>Deprecation note:</b> In the process of fixing a bug
based on the need to hash logical storage keys onto memcached cache
keys, the serialization process was revamped. This constructor still
works, but the serializer argument will be ignored and default
implementations of the new framework will be used. You can still
provide custom serialization by using the
<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html#MemcachedHttpCacheStorage(net.spy.memcached.MemcachedClientIF, org.apache.http.impl.client.cache.CacheConfig, org.apache.http.impl.client.cache.memcached.MemcachedCacheEntryFactory, org.apache.http.impl.client.cache.memcached.KeyHashingScheme)"><CODE>MemcachedHttpCacheStorage(MemcachedClientIF, CacheConfig,
MemcachedCacheEntryFactory, KeyHashingScheme)</CODE></A> constructor.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>client</CODE> - how to talk to <i>memcached</i><DD><CODE>config</CODE> - apply HTTP cache-related options<DD><CODE>serializer</CODE> - <b>ignored</b></DL>
</DL>
<HR>
<A NAME="MemcachedHttpCacheStorage(net.spy.memcached.MemcachedClientIF, org.apache.http.impl.client.cache.CacheConfig, org.apache.http.impl.client.cache.memcached.MemcachedCacheEntryFactory, org.apache.http.impl.client.cache.memcached.KeyHashingScheme)"><!-- --></A><H3>
MemcachedHttpCacheStorage</H3>
<PRE>
public <B>MemcachedHttpCacheStorage</B>(net.spy.memcached.MemcachedClientIF&nbsp;client,
<A HREF="../../../../../../../org/apache/http/impl/client/cache/CacheConfig.html" title="class in org.apache.http.impl.client.cache">CacheConfig</A>&nbsp;config,
<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedCacheEntryFactory.html" title="interface in org.apache.http.impl.client.cache.memcached">MemcachedCacheEntryFactory</A>&nbsp;memcachedCacheEntryFactory,
<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/KeyHashingScheme.html" title="interface in org.apache.http.impl.client.cache.memcached">KeyHashingScheme</A>&nbsp;keyHashingScheme)</PRE>
<DL>
<DD>Create a storage backend using the given <i>memcached</i> client and
applying the given cache configuration, serialization, and hashing
mechanisms.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>client</CODE> - how to talk to <i>memcached</i><DD><CODE>config</CODE> - apply HTTP cache-related options<DD><CODE>memcachedCacheEntryFactory</CODE> - Factory pattern used for obtaining
instances of alternative cache entry serialization mechanisms<DD><CODE>keyHashingScheme</CODE> - how to map higher-level logical "storage keys"
onto "cache keys" suitable for use with memcached</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="putEntry(java.lang.String, org.apache.http.client.cache.HttpCacheEntry)"><!-- --></A><H3>
putEntry</H3>
<PRE>
public void <B>putEntry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;url,
<A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheEntry.html" title="class in org.apache.http.client.cache">HttpCacheEntry</A>&nbsp;entry)
throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html#putEntry(java.lang.String, org.apache.http.client.cache.HttpCacheEntry)">HttpCacheStorage</A></CODE></B></DD>
<DD>Store a given cache entry under the given key.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html#putEntry(java.lang.String, org.apache.http.client.cache.HttpCacheEntry)">putEntry</A></CODE> in interface <CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html" title="interface in org.apache.http.client.cache">HttpCacheStorage</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>url</CODE> - where in the cache to store the entry<DD><CODE>entry</CODE> - cached response to store
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="getEntry(java.lang.String)"><!-- --></A><H3>
getEntry</H3>
<PRE>
public <A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheEntry.html" title="class in org.apache.http.client.cache">HttpCacheEntry</A> <B>getEntry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;url)
throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html#getEntry(java.lang.String)">HttpCacheStorage</A></CODE></B></DD>
<DD>Retrieves the cache entry stored under the given key
or null if no entry exists under that key.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html#getEntry(java.lang.String)">getEntry</A></CODE> in interface <CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html" title="interface in org.apache.http.client.cache">HttpCacheStorage</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>url</CODE> - cache key
<DT><B>Returns:</B><DD>an <A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheEntry.html" title="class in org.apache.http.client.cache"><CODE>HttpCacheEntry</CODE></A> or <code>null</code> if no
entry exists
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="removeEntry(java.lang.String)"><!-- --></A><H3>
removeEntry</H3>
<PRE>
public void <B>removeEntry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;url)
throws <A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html#removeEntry(java.lang.String)">HttpCacheStorage</A></CODE></B></DD>
<DD>Deletes/invalidates/removes any cache entries currently
stored under the given key.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html#removeEntry(java.lang.String)">removeEntry</A></CODE> in interface <CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html" title="interface in org.apache.http.client.cache">HttpCacheStorage</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="updateEntry(java.lang.String, org.apache.http.client.cache.HttpCacheUpdateCallback)"><!-- --></A><H3>
updateEntry</H3>
<PRE>
public void <B>updateEntry</B>(<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html" title="class or interface in java.lang">String</A>&nbsp;url,
<A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheUpdateCallback.html" title="interface in org.apache.http.client.cache">HttpCacheUpdateCallback</A>&nbsp;callback)
throws <A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheUpdateException.html" title="class in org.apache.http.client.cache">HttpCacheUpdateException</A>,
<A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></PRE>
<DL>
<DD><B>Description copied from interface: <CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html#updateEntry(java.lang.String, org.apache.http.client.cache.HttpCacheUpdateCallback)">HttpCacheStorage</A></CODE></B></DD>
<DD>Atomically applies the given callback to update an existing cache
entry under a given key.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html#updateEntry(java.lang.String, org.apache.http.client.cache.HttpCacheUpdateCallback)">updateEntry</A></CODE> in interface <CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheStorage.html" title="interface in org.apache.http.client.cache">HttpCacheStorage</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>url</CODE> - indicates which entry to modify<DD><CODE>callback</CODE> - performs the update; see
<A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheUpdateCallback.html" title="interface in org.apache.http.client.cache"><CODE>HttpCacheUpdateCallback</CODE></A> for details, but roughly the
callback expects to be handed the current entry and will return
the new value for the entry.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../../../../org/apache/http/client/cache/HttpCacheUpdateException.html" title="class in org.apache.http.client.cache">HttpCacheUpdateException</A></CODE>
<DD><CODE><A HREF="http://download.oracle.com/javase/1.5.0/docs/api/java/io/IOException.html" title="class or interface in java.io">IOException</A></CODE></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/MemcachedHttpCacheStorage.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>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedCacheEntryImpl.html" title="class in org.apache.http.impl.client.cache.memcached"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../../../../org/apache/http/impl/client/cache/memcached/MemcachedKeyHashingException.html" title="class in org.apache.http.impl.client.cache.memcached"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../../../../index.html?org/apache/http/impl/client/cache/memcached/MemcachedHttpCacheStorage.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="MemcachedHttpCacheStorage.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>
Copyright &#169; 1999-2012 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.
</BODY>
</HTML>