gi-soup-0.2.52.12: GI/Soup/Objects/Cache.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Soup.Objects.Cache
(
-- * Exported types
Cache(..) ,
CacheK ,
toCache ,
noCache ,
-- * Methods
-- ** cacheClear
cacheClear ,
-- ** cacheDump
cacheDump ,
-- ** cacheFlush
cacheFlush ,
-- ** cacheGetMaxSize
cacheGetMaxSize ,
-- ** cacheLoad
cacheLoad ,
-- ** cacheNew
cacheNew ,
-- ** cacheSetMaxSize
cacheSetMaxSize ,
-- * Properties
-- ** CacheDir
CacheCacheDirPropertyInfo ,
constructCacheCacheDir ,
getCacheCacheDir ,
-- ** CacheType
CacheCacheTypePropertyInfo ,
constructCacheCacheType ,
getCacheCacheType ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Soup.Types
import GI.Soup.Callbacks
import qualified GI.GObject as GObject
newtype Cache = Cache (ForeignPtr Cache)
foreign import ccall "soup_cache_get_type"
c_soup_cache_get_type :: IO GType
type instance ParentTypes Cache = CacheParentTypes
type CacheParentTypes = '[GObject.Object, SessionFeature]
instance GObject Cache where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_soup_cache_get_type
class GObject o => CacheK o
instance (GObject o, IsDescendantOf Cache o) => CacheK o
toCache :: CacheK o => o -> IO Cache
toCache = unsafeCastTo Cache
noCache :: Maybe Cache
noCache = Nothing
-- VVV Prop "cache-dir"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getCacheCacheDir :: (MonadIO m, CacheK o) => o -> m T.Text
getCacheCacheDir obj = liftIO $ getObjectPropertyString obj "cache-dir"
constructCacheCacheDir :: T.Text -> IO ([Char], GValue)
constructCacheCacheDir val = constructObjectPropertyString "cache-dir" val
data CacheCacheDirPropertyInfo
instance AttrInfo CacheCacheDirPropertyInfo where
type AttrAllowedOps CacheCacheDirPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint CacheCacheDirPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint CacheCacheDirPropertyInfo = CacheK
type AttrGetType CacheCacheDirPropertyInfo = T.Text
type AttrLabel CacheCacheDirPropertyInfo = "Cache::cache-dir"
attrGet _ = getCacheCacheDir
attrSet _ = undefined
attrConstruct _ = constructCacheCacheDir
-- VVV Prop "cache-type"
-- Type: TInterface "Soup" "CacheType"
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getCacheCacheType :: (MonadIO m, CacheK o) => o -> m CacheType
getCacheCacheType obj = liftIO $ getObjectPropertyEnum obj "cache-type"
constructCacheCacheType :: CacheType -> IO ([Char], GValue)
constructCacheCacheType val = constructObjectPropertyEnum "cache-type" val
data CacheCacheTypePropertyInfo
instance AttrInfo CacheCacheTypePropertyInfo where
type AttrAllowedOps CacheCacheTypePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint CacheCacheTypePropertyInfo = (~) CacheType
type AttrBaseTypeConstraint CacheCacheTypePropertyInfo = CacheK
type AttrGetType CacheCacheTypePropertyInfo = CacheType
type AttrLabel CacheCacheTypePropertyInfo = "Cache::cache-type"
attrGet _ = getCacheCacheType
attrSet _ = undefined
attrConstruct _ = constructCacheCacheType
type instance AttributeList Cache = CacheAttributeList
type CacheAttributeList = ('[ '("cache-dir", CacheCacheDirPropertyInfo), '("cache-type", CacheCacheTypePropertyInfo)] :: [(Symbol, *)])
type instance SignalList Cache = CacheSignalList
type CacheSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method Cache::new
-- method type : Constructor
-- Args : [Arg {argName = "cache_dir", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cache_type", argType = TInterface "Soup" "CacheType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "cache_dir", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cache_type", argType = TInterface "Soup" "CacheType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "Soup" "Cache"
-- throws : False
-- Skip return : False
foreign import ccall "soup_cache_new" soup_cache_new ::
CString -> -- cache_dir : TBasicType TUTF8
CUInt -> -- cache_type : TInterface "Soup" "CacheType"
IO (Ptr Cache)
cacheNew ::
(MonadIO m) =>
T.Text -> -- cache_dir
CacheType -> -- cache_type
m Cache
cacheNew cache_dir cache_type = liftIO $ do
cache_dir' <- textToCString cache_dir
let cache_type' = (fromIntegral . fromEnum) cache_type
result <- soup_cache_new cache_dir' cache_type'
checkUnexpectedReturnNULL "soup_cache_new" result
result' <- (wrapObject Cache) result
freeMem cache_dir'
return result'
-- method Cache::clear
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_cache_clear" soup_cache_clear ::
Ptr Cache -> -- _obj : TInterface "Soup" "Cache"
IO ()
cacheClear ::
(MonadIO m, CacheK a) =>
a -> -- _obj
m ()
cacheClear _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
soup_cache_clear _obj'
touchManagedPtr _obj
return ()
-- method Cache::dump
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_cache_dump" soup_cache_dump ::
Ptr Cache -> -- _obj : TInterface "Soup" "Cache"
IO ()
cacheDump ::
(MonadIO m, CacheK a) =>
a -> -- _obj
m ()
cacheDump _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
soup_cache_dump _obj'
touchManagedPtr _obj
return ()
-- method Cache::flush
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_cache_flush" soup_cache_flush ::
Ptr Cache -> -- _obj : TInterface "Soup" "Cache"
IO ()
cacheFlush ::
(MonadIO m, CacheK a) =>
a -> -- _obj
m ()
cacheFlush _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
soup_cache_flush _obj'
touchManagedPtr _obj
return ()
-- method Cache::get_max_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False
foreign import ccall "soup_cache_get_max_size" soup_cache_get_max_size ::
Ptr Cache -> -- _obj : TInterface "Soup" "Cache"
IO Word32
cacheGetMaxSize ::
(MonadIO m, CacheK a) =>
a -> -- _obj
m Word32
cacheGetMaxSize _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_cache_get_max_size _obj'
touchManagedPtr _obj
return result
-- method Cache::load
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_cache_load" soup_cache_load ::
Ptr Cache -> -- _obj : TInterface "Soup" "Cache"
IO ()
cacheLoad ::
(MonadIO m, CacheK a) =>
a -> -- _obj
m ()
cacheLoad _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
soup_cache_load _obj'
touchManagedPtr _obj
return ()
-- method Cache::set_max_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Cache", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_cache_set_max_size" soup_cache_set_max_size ::
Ptr Cache -> -- _obj : TInterface "Soup" "Cache"
Word32 -> -- max_size : TBasicType TUInt32
IO ()
cacheSetMaxSize ::
(MonadIO m, CacheK a) =>
a -> -- _obj
Word32 -> -- max_size
m ()
cacheSetMaxSize _obj max_size = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
soup_cache_set_max_size _obj' max_size
touchManagedPtr _obj
return ()