Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > db7a4a658d190b3e658423135710c498 > files > 700

ghc-darcs-devel-2.8.3-1.fc18.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Darcs.Repository.Cache</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Darcs-Repository-Cache.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Darcs-Repository-Cache.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">darcs-2.8.3: a distributed, interactive, smart revision control system</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">Darcs.Repository.Cache</p></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:cacheHash">cacheHash</a> :: <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:okayHash">okayHash</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:takeHash">takeHash</a> :: <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a>)</li><li class="src short"><span class="keyword">newtype</span>  <a href="#t:Cache">Cache</a>  = <a href="#v:Ca">Ca</a> [<a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:CacheType">CacheType</a> <ul class="subs"><li>= <a href="#v:Repo">Repo</a>  </li><li>| <a href="#v:Directory">Directory</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:CacheLoc">CacheLoc</a>  = <a href="#v:Cache">Cache</a> {<ul class="subs"><li><a href="#v:cacheType">cacheType</a> :: !<a href="Darcs-Repository-Cache.html#t:CacheType">CacheType</a></li><li><a href="#v:cacheWritable">cacheWritable</a> :: !<a href="Darcs-Repository-Cache.html#t:WritableOrNot">WritableOrNot</a></li><li><a href="#v:cacheSource">cacheSource</a> :: !<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:WritableOrNot">WritableOrNot</a> <ul class="subs"><li>= <a href="#v:Writable">Writable</a>  </li><li>| <a href="#v:NotWritable">NotWritable</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:HashedDir">HashedDir</a> <ul class="subs"><li>= <a href="#v:HashedPristineDir">HashedPristineDir</a>  </li><li>| <a href="#v:HashedPatchesDir">HashedPatchesDir</a>  </li><li>| <a href="#v:HashedInventoriesDir">HashedInventoriesDir</a>  </li></ul></li><li class="src short"><a href="#v:hashedDir">hashedDir</a> :: <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:unionCaches">unionCaches</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a></li><li class="src short"><a href="#v:unionRemoteCaches">unionRemoteCaches</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a></li><li class="src short"><a href="#v:cleanCaches">cleanCaches</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:cleanCachesWithHint">cleanCachesWithHint</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>] -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:fetchFileUsingCache">fetchFileUsingCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a>)</li><li class="src short"><a href="#v:speculateFileUsingCache">speculateFileUsingCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:speculateFilesUsingCache">speculateFilesUsingCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>] -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:writeFileUsingCache">writeFileUsingCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Flags.html#t:Compression">Compression</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:peekInCache">peekInCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:repo2cache">repo2cache</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a></li><li class="src short"><a href="#v:writable">writable</a> :: <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:isthisrepo">isthisrepo</a> :: <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:hashedFilePath">hashedFilePath</a> :: <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:allHashedDirs">allHashedDirs</a> :: [<a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a>]</li><li class="src short"><a href="#v:compareByLocality">compareByLocality</a> :: <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ordering">Ordering</a></li><li class="src short"><a href="#v:reportBadSources">reportBadSources</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:cacheHash" class="def">cacheHash</a> :: <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a><a href="src/Darcs-Repository-Cache.html#cacheHash" class="link">Source</a></p><div class="doc"><p><code><a href="Darcs-Repository-Cache.html#v:cacheHash">cacheHash</a></code> computes the cache hash (i.e. filename) of a packed string.
</p></div></div><div class="top"><p class="src"><a name="v:okayHash" class="def">okayHash</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Darcs-Repository-Cache.html#okayHash" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:takeHash" class="def">takeHash</a> :: <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a>)<a href="src/Darcs-Repository-Cache.html#takeHash" class="link">Source</a></p></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:Cache" class="def">Cache</a>  <a href="src/Darcs-Repository-Cache.html#Cache" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Ca" class="def">Ca</a> [<a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Cache" class="caption collapser" onclick="toggleSection('i:Cache')">Instances</p><div id="section.i:Cache" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CacheType" class="def">CacheType</a>  <a href="src/Darcs-Repository-Cache.html#CacheType" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Repo" class="def">Repo</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Directory" class="def">Directory</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:CacheType" class="caption collapser" onclick="toggleSection('i:CacheType')">Instances</p><div id="section.i:CacheType" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Darcs-Repository-Cache.html#t:CacheType">CacheType</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> <a href="Darcs-Repository-Cache.html#t:CacheType">CacheType</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:CacheLoc" class="def">CacheLoc</a>  <a href="src/Darcs-Repository-Cache.html#CacheLoc" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Cache" class="def">Cache</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:cacheType" class="def">cacheType</a> :: !<a href="Darcs-Repository-Cache.html#t:CacheType">CacheType</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cacheWritable" class="def">cacheWritable</a> :: !<a href="Darcs-Repository-Cache.html#t:WritableOrNot">WritableOrNot</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:cacheSource" class="def">cacheSource</a> :: !<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div><div class="subs instances"><p id="control.i:CacheLoc" class="caption collapser" onclick="toggleSection('i:CacheLoc')">Instances</p><div id="section.i:CacheLoc" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Eq.html#t:Eq">Eq</a> <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:WritableOrNot" class="def">WritableOrNot</a>  <a href="src/Darcs-Repository-Cache.html#WritableOrNot" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Writable" class="def">Writable</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:NotWritable" class="def">NotWritable</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:WritableOrNot" class="caption collapser" onclick="toggleSection('i:WritableOrNot')">Instances</p><div id="section.i:WritableOrNot" class="show"><table><tr><td class="src"><a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Text-Show.html#t:Show">Show</a> <a href="Darcs-Repository-Cache.html#t:WritableOrNot">WritableOrNot</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:HashedDir" class="def">HashedDir</a>  <a href="src/Darcs-Repository-Cache.html#HashedDir" class="link">Source</a></p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:HashedPristineDir" class="def">HashedPristineDir</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HashedPatchesDir" class="def">HashedPatchesDir</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:HashedInventoriesDir" class="def">HashedInventoriesDir</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:hashedDir" class="def">hashedDir</a> :: <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a><a href="src/Darcs-Repository-Cache.html#hashedDir" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unionCaches" class="def">unionCaches</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a><a href="src/Darcs-Repository-Cache.html#unionCaches" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:unionRemoteCaches" class="def">unionRemoteCaches</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a><a href="src/Darcs-Repository-Cache.html#unionRemoteCaches" class="link">Source</a></p><div class="doc"><p>unionRemoteCaches merges caches. It tries to do better than just blindly
   copying remote cache entries:
</p><ul><li> If remote repository is accessed through network, do not copy any cache
     entries from it. Taking local entries does not make sense and using
     network entries can lead to darcs hang when it tries to get to
     unaccessible host.
</li><li> If remote repositoty is local, copy all network cache entries. For local
     cache entries if the cache directory exists and is writable it is added
     as writable cache, if it exists but is not writable it is added as
     read-only cache.
</li></ul><p>This approach should save us from bogus cache entries. One case it does not
   work very well is when you fetch from partial repository over network.
   Hopefully this is not a common case.
</p></div></div><div class="top"><p class="src"><a name="v:cleanCaches" class="def">cleanCaches</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Darcs-Repository-Cache.html#cleanCaches" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:cleanCachesWithHint" class="def">cleanCachesWithHint</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>] -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Darcs-Repository-Cache.html#cleanCachesWithHint" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:fetchFileUsingCache" class="def">fetchFileUsingCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> (<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>, <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a>)<a href="src/Darcs-Repository-Cache.html#fetchFileUsingCache" class="link">Source</a></p><div class="doc"><p><code>fetchFileUsingCache cache dir hash</code> receives a list of caches
  <code>cache</code>, the directory for which that file belongs <code>dir</code> and the
  <code>hash</code> of the file to fetch.  It tries to fetch the file from one
  of the sources, trying them in order one by one.  If the file
  cannot be fetched from any of the sources, this operation fails.
</p></div></div><div class="top"><p class="src"><a name="v:speculateFileUsingCache" class="def">speculateFileUsingCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Darcs-Repository-Cache.html#speculateFileUsingCache" class="link">Source</a></p><div class="doc"><p><code>speculateFileUsingCache cache subdirectory name</code> takes note that
 the file <code>name</code> is likely to be useful soon: pipelined downloads
 will add it to the (low-priority) queue, for the rest it is a noop.
</p></div></div><div class="top"><p class="src"><a name="v:speculateFilesUsingCache" class="def">speculateFilesUsingCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; [<a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a>] -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Darcs-Repository-Cache.html#speculateFilesUsingCache" class="link">Source</a></p><div class="doc"><p>Note that the files are likely to be useful soon: pipelined downloads will
 add them to the (low-priority) queue, for the rest it is a noop.
</p></div></div><div class="top"><p class="src"><a name="v:writeFileUsingCache" class="def">writeFileUsingCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Flags.html#t:Compression">Compression</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/bytestring-0.9.2.1/Data-ByteString.html#t:ByteString">ByteString</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a><a href="src/Darcs-Repository-Cache.html#writeFileUsingCache" class="link">Source</a></p><div class="doc"><p><code>writeFileUsingCache cache compression subdir contents</code> write the string <code>contents</code> to
 the directory subdir, except if it is already in the cache, in which case it is a noop.
 Warning (?) this means that in case of a hash collision, writing using writeFileUsingCache is
 a noop. The returned value is the filename that was given to the string.
</p></div></div><div class="top"><p class="src"><a name="v:peekInCache" class="def">peekInCache</a> :: <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Darcs-Repository-Cache.html#peekInCache" class="link">Source</a></p><div class="doc"><p><code>peekInCache cache subdir hash</code> tells whether <code>cache</code> and
 contains an object with hash <code>hash</code> in a writable position.
 Florent: why do we want it to be in a writable position?
</p></div></div><div class="top"><p class="src"><a name="v:repo2cache" class="def">repo2cache</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="Darcs-Repository-Cache.html#t:Cache">Cache</a><a href="src/Darcs-Repository-Cache.html#repo2cache" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:writable" class="def">writable</a> :: <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Darcs-Repository-Cache.html#writable" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:isthisrepo" class="def">isthisrepo</a> :: <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a><a href="src/Darcs-Repository-Cache.html#isthisrepo" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:hashedFilePath" class="def">hashedFilePath</a> :: <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a><a href="src/Darcs-Repository-Cache.html#hashedFilePath" class="link">Source</a></p><div class="doc"><p><code>hashedFilePath cachelocation subdir hash</code> returns the physical filename of
 hash <code>hash</code> in the <code>subdir</code> section of <code>cachelocation</code>.
</p></div></div><div class="top"><p class="src"><a name="v:allHashedDirs" class="def">allHashedDirs</a> :: [<a href="Darcs-Repository-Cache.html#t:HashedDir">HashedDir</a>]<a href="src/Darcs-Repository-Cache.html#allHashedDirs" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:compareByLocality" class="def">compareByLocality</a> :: <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="Darcs-Repository-Cache.html#t:CacheLoc">CacheLoc</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Ord.html#t:Ordering">Ordering</a><a href="src/Darcs-Repository-Cache.html#compareByLocality" class="link">Source</a></p><div class="doc"><p>Compares two caches, a remote cache is greater than a local one.
 The order of the comparison is given by: local &lt; http &lt; ssh
</p></div></div><div class="top"><p class="src"><a name="v:reportBadSources" class="def">reportBadSources</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/System-IO.html#t:IO">IO</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/Darcs-Repository-Cache.html#reportBadSources" class="link">Source</a></p><div class="doc"><p>Prints an error message with a list of bad caches.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>