cached-io-1.1.0.0: A simple library to cache a single IO action with timeout

Safe HaskellSafe
LanguageHaskell2010

Control.Concurrent.CachedIO

Synopsis

Documentation

cachedIO Source

Arguments

:: MonadIO m 
=> NominalDiffTime

Number of seconds before refreshing cache

-> m a

IO action to cache

-> m (m a) 

Cache an IO action, producing a version of this IO action that is cached for interval seconds. The cache begins uninitialized.

The outer IO is responsible for setting up the cache. Use the inner one to either get the cached value or refresh, if the cache is older than interval seconds.

cachedIOWith Source

Arguments

:: MonadIO m 
=> (UTCTime -> UTCTime -> Bool)

Test function: If isCacheStillFresh lastUpdated now returns True the cache is considered still fresh and returns the cached IO action

-> m a

action to cache

-> m (m a) 

Cache an IO action, The cache begins uninitialized.

The outer IO is responsible for setting up the cache. Use the inner one to either get the cached value or refresh