hackage-security-0.6.2.1: Hackage security library
Safe HaskellNone
LanguageHaskell2010

Hackage.Security.Client.Repository.Cache

Description

The files we cache from the repository

Both the Local and the Remote repositories make use of this module.

Synopsis

Documentation

data Cache Source #

Location and layout of the local cache

Constructors

Cache 

getCached :: Cache -> CachedFile -> IO (Maybe (Path Absolute)) Source #

Get a cached file (if available)

getCachedRoot :: Cache -> IO (Path Absolute) Source #

Get the cached root

Calling getCachedRoot without root info available is a programmer error and will result in an unchecked exception. See requiresBootstrap.

getCachedIndex :: Cache -> Format f -> IO (Maybe (Path Absolute)) Source #

Get the cached index (if available)

clearCache :: Cache -> IO () Source #

Delete a previously downloaded remote file

withIndex :: Cache -> (Handle -> IO a) -> IO a Source #

cacheRemoteFile :: forall down typ f. DownloadedFile down => Cache -> down typ -> Format f -> IsCached typ -> IO () Source #

Cache a previously downloaded remote file

lockCache :: Cache -> IO () -> IO () Source #

Lock the cache

This avoids two concurrent processes updating the cache at the same time, provided they both take the lock.

lockCacheWithLogger :: (LogMessage -> IO ()) -> Cache -> IO () -> IO () Source #

Variant of lockCache which emits LogMessages before and after a possibly blocking file-locking system call

Since: 0.6.0