hackage-security-0.6.2.5: Hackage security library
Safe HaskellSafe-Inferred
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