hackage-security-0.5.2.2: 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.