gi-gio-2.0.20: GI/Gio/Objects/ZlibCompressor.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc)
Zlib decompression
-}
#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Gio.Objects.ZlibCompressor
(
-- * Exported types
ZlibCompressor(..) ,
IsZlibCompressor ,
toZlibCompressor ,
noZlibCompressor ,
-- * Methods
-- ** getFileInfo #method:getFileInfo#
#if ENABLE_OVERLOADING
ZlibCompressorGetFileInfoMethodInfo ,
#endif
zlibCompressorGetFileInfo ,
-- ** new #method:new#
zlibCompressorNew ,
-- ** setFileInfo #method:setFileInfo#
#if ENABLE_OVERLOADING
ZlibCompressorSetFileInfoMethodInfo ,
#endif
zlibCompressorSetFileInfo ,
-- * Properties
-- ** fileInfo #attr:fileInfo#
{- | If set to a non-'Nothing' 'GI.Gio.Objects.FileInfo.FileInfo' object, and 'GI.Gio.Objects.ZlibCompressor.ZlibCompressor':@/format/@ is
'GI.Gio.Enums.ZlibCompressorFormatGzip', the compressor will write the file name
and modification time from the file info to the GZIP header.
/Since: 2.26/
-}
#if ENABLE_OVERLOADING
ZlibCompressorFileInfoPropertyInfo ,
#endif
clearZlibCompressorFileInfo ,
constructZlibCompressorFileInfo ,
getZlibCompressorFileInfo ,
setZlibCompressorFileInfo ,
#if ENABLE_OVERLOADING
zlibCompressorFileInfo ,
#endif
-- ** format #attr:format#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
ZlibCompressorFormatPropertyInfo ,
#endif
constructZlibCompressorFormat ,
getZlibCompressorFormat ,
#if ENABLE_OVERLOADING
zlibCompressorFormat ,
#endif
-- ** level #attr:level#
{- | /No description available in the introspection data./
-}
#if ENABLE_OVERLOADING
ZlibCompressorLevelPropertyInfo ,
#endif
constructZlibCompressorLevel ,
getZlibCompressorLevel ,
#if ENABLE_OVERLOADING
zlibCompressorLevel ,
#endif
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Gio.Enums as Gio.Enums
import {-# SOURCE #-} qualified GI.Gio.Interfaces.Converter as Gio.Converter
import {-# SOURCE #-} qualified GI.Gio.Objects.FileInfo as Gio.FileInfo
-- | Memory-managed wrapper type.
newtype ZlibCompressor = ZlibCompressor (ManagedPtr ZlibCompressor)
foreign import ccall "g_zlib_compressor_get_type"
c_g_zlib_compressor_get_type :: IO GType
instance GObject ZlibCompressor where
gobjectType = c_g_zlib_compressor_get_type
-- | Type class for types which can be safely cast to `ZlibCompressor`, for instance with `toZlibCompressor`.
class (GObject o, O.IsDescendantOf ZlibCompressor o) => IsZlibCompressor o
instance (GObject o, O.IsDescendantOf ZlibCompressor o) => IsZlibCompressor o
instance O.HasParentTypes ZlibCompressor
type instance O.ParentTypes ZlibCompressor = '[GObject.Object.Object, Gio.Converter.Converter]
-- | Cast to `ZlibCompressor`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toZlibCompressor :: (MonadIO m, IsZlibCompressor o) => o -> m ZlibCompressor
toZlibCompressor = liftIO . unsafeCastTo ZlibCompressor
-- | A convenience alias for `Nothing` :: `Maybe` `ZlibCompressor`.
noZlibCompressor :: Maybe ZlibCompressor
noZlibCompressor = Nothing
#if ENABLE_OVERLOADING
type family ResolveZlibCompressorMethod (t :: Symbol) (o :: *) :: * where
ResolveZlibCompressorMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveZlibCompressorMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveZlibCompressorMethod "convert" o = Gio.Converter.ConverterConvertMethodInfo
ResolveZlibCompressorMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveZlibCompressorMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveZlibCompressorMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveZlibCompressorMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveZlibCompressorMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveZlibCompressorMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveZlibCompressorMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveZlibCompressorMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveZlibCompressorMethod "reset" o = Gio.Converter.ConverterResetMethodInfo
ResolveZlibCompressorMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveZlibCompressorMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveZlibCompressorMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveZlibCompressorMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveZlibCompressorMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveZlibCompressorMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveZlibCompressorMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveZlibCompressorMethod "getFileInfo" o = ZlibCompressorGetFileInfoMethodInfo
ResolveZlibCompressorMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveZlibCompressorMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveZlibCompressorMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveZlibCompressorMethod "setFileInfo" o = ZlibCompressorSetFileInfoMethodInfo
ResolveZlibCompressorMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveZlibCompressorMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveZlibCompressorMethod t ZlibCompressor, O.MethodInfo info ZlibCompressor p) => OL.IsLabel t (ZlibCompressor -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#else
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
#endif
-- VVV Prop "file-info"
-- Type: TInterface (Name {namespace = "Gio", name = "FileInfo"})
-- Flags: [PropertyReadable,PropertyWritable]
-- Nullable: (Just False,Just True)
{- |
Get the value of the “@file-info@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' zlibCompressor #fileInfo
@
-}
getZlibCompressorFileInfo :: (MonadIO m, IsZlibCompressor o) => o -> m Gio.FileInfo.FileInfo
getZlibCompressorFileInfo obj = liftIO $ checkUnexpectedNothing "getZlibCompressorFileInfo" $ B.Properties.getObjectPropertyObject obj "file-info" Gio.FileInfo.FileInfo
{- |
Set the value of the “@file-info@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.set' zlibCompressor [ #fileInfo 'Data.GI.Base.Attributes.:=' value ]
@
-}
setZlibCompressorFileInfo :: (MonadIO m, IsZlibCompressor o, Gio.FileInfo.IsFileInfo a) => o -> a -> m ()
setZlibCompressorFileInfo obj val = liftIO $ B.Properties.setObjectPropertyObject obj "file-info" (Just val)
{- |
Construct a `GValueConstruct` with valid value for the “@file-info@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructZlibCompressorFileInfo :: (IsZlibCompressor o, Gio.FileInfo.IsFileInfo a) => a -> IO (GValueConstruct o)
constructZlibCompressorFileInfo val = B.Properties.constructObjectPropertyObject "file-info" (Just val)
{- |
Set the value of the “@file-info@” property to `Nothing`.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.clear' #fileInfo
@
-}
clearZlibCompressorFileInfo :: (MonadIO m, IsZlibCompressor o) => o -> m ()
clearZlibCompressorFileInfo obj = liftIO $ B.Properties.setObjectPropertyObject obj "file-info" (Nothing :: Maybe Gio.FileInfo.FileInfo)
#if ENABLE_OVERLOADING
data ZlibCompressorFileInfoPropertyInfo
instance AttrInfo ZlibCompressorFileInfoPropertyInfo where
type AttrAllowedOps ZlibCompressorFileInfoPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint ZlibCompressorFileInfoPropertyInfo = Gio.FileInfo.IsFileInfo
type AttrBaseTypeConstraint ZlibCompressorFileInfoPropertyInfo = IsZlibCompressor
type AttrGetType ZlibCompressorFileInfoPropertyInfo = Gio.FileInfo.FileInfo
type AttrLabel ZlibCompressorFileInfoPropertyInfo = "file-info"
type AttrOrigin ZlibCompressorFileInfoPropertyInfo = ZlibCompressor
attrGet _ = getZlibCompressorFileInfo
attrSet _ = setZlibCompressorFileInfo
attrConstruct _ = constructZlibCompressorFileInfo
attrClear _ = clearZlibCompressorFileInfo
#endif
-- VVV Prop "format"
-- Type: TInterface (Name {namespace = "Gio", name = "ZlibCompressorFormat"})
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-- Nullable: (Nothing,Nothing)
{- |
Get the value of the “@format@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' zlibCompressor #format
@
-}
getZlibCompressorFormat :: (MonadIO m, IsZlibCompressor o) => o -> m Gio.Enums.ZlibCompressorFormat
getZlibCompressorFormat obj = liftIO $ B.Properties.getObjectPropertyEnum obj "format"
{- |
Construct a `GValueConstruct` with valid value for the “@format@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructZlibCompressorFormat :: (IsZlibCompressor o) => Gio.Enums.ZlibCompressorFormat -> IO (GValueConstruct o)
constructZlibCompressorFormat val = B.Properties.constructObjectPropertyEnum "format" val
#if ENABLE_OVERLOADING
data ZlibCompressorFormatPropertyInfo
instance AttrInfo ZlibCompressorFormatPropertyInfo where
type AttrAllowedOps ZlibCompressorFormatPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ZlibCompressorFormatPropertyInfo = (~) Gio.Enums.ZlibCompressorFormat
type AttrBaseTypeConstraint ZlibCompressorFormatPropertyInfo = IsZlibCompressor
type AttrGetType ZlibCompressorFormatPropertyInfo = Gio.Enums.ZlibCompressorFormat
type AttrLabel ZlibCompressorFormatPropertyInfo = "format"
type AttrOrigin ZlibCompressorFormatPropertyInfo = ZlibCompressor
attrGet _ = getZlibCompressorFormat
attrSet _ = undefined
attrConstruct _ = constructZlibCompressorFormat
attrClear _ = undefined
#endif
-- VVV Prop "level"
-- Type: TBasicType TInt
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
-- Nullable: (Nothing,Nothing)
{- |
Get the value of the “@level@” property.
When <https://github.com/haskell-gi/haskell-gi/wiki/Overloading overloading> is enabled, this is equivalent to
@
'Data.GI.Base.Attributes.get' zlibCompressor #level
@
-}
getZlibCompressorLevel :: (MonadIO m, IsZlibCompressor o) => o -> m Int32
getZlibCompressorLevel obj = liftIO $ B.Properties.getObjectPropertyInt32 obj "level"
{- |
Construct a `GValueConstruct` with valid value for the “@level@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`.
-}
constructZlibCompressorLevel :: (IsZlibCompressor o) => Int32 -> IO (GValueConstruct o)
constructZlibCompressorLevel val = B.Properties.constructObjectPropertyInt32 "level" val
#if ENABLE_OVERLOADING
data ZlibCompressorLevelPropertyInfo
instance AttrInfo ZlibCompressorLevelPropertyInfo where
type AttrAllowedOps ZlibCompressorLevelPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ZlibCompressorLevelPropertyInfo = (~) Int32
type AttrBaseTypeConstraint ZlibCompressorLevelPropertyInfo = IsZlibCompressor
type AttrGetType ZlibCompressorLevelPropertyInfo = Int32
type AttrLabel ZlibCompressorLevelPropertyInfo = "level"
type AttrOrigin ZlibCompressorLevelPropertyInfo = ZlibCompressor
attrGet _ = getZlibCompressorLevel
attrSet _ = undefined
attrConstruct _ = constructZlibCompressorLevel
attrClear _ = undefined
#endif
#if ENABLE_OVERLOADING
instance O.HasAttributeList ZlibCompressor
type instance O.AttributeList ZlibCompressor = ZlibCompressorAttributeList
type ZlibCompressorAttributeList = ('[ '("fileInfo", ZlibCompressorFileInfoPropertyInfo), '("format", ZlibCompressorFormatPropertyInfo), '("level", ZlibCompressorLevelPropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
zlibCompressorFileInfo :: AttrLabelProxy "fileInfo"
zlibCompressorFileInfo = AttrLabelProxy
zlibCompressorFormat :: AttrLabelProxy "format"
zlibCompressorFormat = AttrLabelProxy
zlibCompressorLevel :: AttrLabelProxy "level"
zlibCompressorLevel = AttrLabelProxy
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList ZlibCompressor = ZlibCompressorSignalList
type ZlibCompressorSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
-- method ZlibCompressor::new
-- method type : Constructor
-- Args : [Arg {argCName = "format", argType = TInterface (Name {namespace = "Gio", name = "ZlibCompressorFormat"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The format to use for the compressed data", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "level", argType = TBasicType TInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "compression level (0-9), -1 for default", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gio", name = "ZlibCompressor"}))
-- throws : False
-- Skip return : False
foreign import ccall "g_zlib_compressor_new" g_zlib_compressor_new ::
CUInt -> -- format : TInterface (Name {namespace = "Gio", name = "ZlibCompressorFormat"})
Int32 -> -- level : TBasicType TInt
IO (Ptr ZlibCompressor)
{- |
Creates a new 'GI.Gio.Objects.ZlibCompressor.ZlibCompressor'.
/Since: 2.24/
-}
zlibCompressorNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Gio.Enums.ZlibCompressorFormat
{- ^ /@format@/: The format to use for the compressed data -}
-> Int32
{- ^ /@level@/: compression level (0-9), -1 for default -}
-> m ZlibCompressor
{- ^ __Returns:__ a new 'GI.Gio.Objects.ZlibCompressor.ZlibCompressor' -}
zlibCompressorNew format level = liftIO $ do
let format' = (fromIntegral . fromEnum) format
result <- g_zlib_compressor_new format' level
checkUnexpectedReturnNULL "zlibCompressorNew" result
result' <- (wrapObject ZlibCompressor) result
return result'
#if ENABLE_OVERLOADING
#endif
-- method ZlibCompressor::get_file_info
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "compressor", argType = TInterface (Name {namespace = "Gio", name = "ZlibCompressor"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GZlibCompressor", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "Gio", name = "FileInfo"}))
-- throws : False
-- Skip return : False
foreign import ccall "g_zlib_compressor_get_file_info" g_zlib_compressor_get_file_info ::
Ptr ZlibCompressor -> -- compressor : TInterface (Name {namespace = "Gio", name = "ZlibCompressor"})
IO (Ptr Gio.FileInfo.FileInfo)
{- |
Returns the 'GI.Gio.Objects.ZlibCompressor.ZlibCompressor':@/file-info/@ property.
/Since: 2.26/
-}
zlibCompressorGetFileInfo ::
(B.CallStack.HasCallStack, MonadIO m, IsZlibCompressor a) =>
a
{- ^ /@compressor@/: a 'GI.Gio.Objects.ZlibCompressor.ZlibCompressor' -}
-> m Gio.FileInfo.FileInfo
{- ^ __Returns:__ a 'GI.Gio.Objects.FileInfo.FileInfo', or 'Nothing' -}
zlibCompressorGetFileInfo compressor = liftIO $ do
compressor' <- unsafeManagedPtrCastPtr compressor
result <- g_zlib_compressor_get_file_info compressor'
checkUnexpectedReturnNULL "zlibCompressorGetFileInfo" result
result' <- (newObject Gio.FileInfo.FileInfo) result
touchManagedPtr compressor
return result'
#if ENABLE_OVERLOADING
data ZlibCompressorGetFileInfoMethodInfo
instance (signature ~ (m Gio.FileInfo.FileInfo), MonadIO m, IsZlibCompressor a) => O.MethodInfo ZlibCompressorGetFileInfoMethodInfo a signature where
overloadedMethod _ = zlibCompressorGetFileInfo
#endif
-- method ZlibCompressor::set_file_info
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "compressor", argType = TInterface (Name {namespace = "Gio", name = "ZlibCompressor"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GZlibCompressor", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file_info", argType = TInterface (Name {namespace = "Gio", name = "FileInfo"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GFileInfo", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False
foreign import ccall "g_zlib_compressor_set_file_info" g_zlib_compressor_set_file_info ::
Ptr ZlibCompressor -> -- compressor : TInterface (Name {namespace = "Gio", name = "ZlibCompressor"})
Ptr Gio.FileInfo.FileInfo -> -- file_info : TInterface (Name {namespace = "Gio", name = "FileInfo"})
IO ()
{- |
Sets /@fileInfo@/ in /@compressor@/. If non-'Nothing', and /@compressor@/\'s
'GI.Gio.Objects.ZlibCompressor.ZlibCompressor':@/format/@ property is 'GI.Gio.Enums.ZlibCompressorFormatGzip',
it will be used to set the file name and modification time in
the GZIP header of the compressed data.
Note: it is an error to call this function while a compression is in
progress; it may only be called immediately after creation of /@compressor@/,
or after resetting it with 'GI.Gio.Interfaces.Converter.converterReset'.
/Since: 2.26/
-}
zlibCompressorSetFileInfo ::
(B.CallStack.HasCallStack, MonadIO m, IsZlibCompressor a, Gio.FileInfo.IsFileInfo b) =>
a
{- ^ /@compressor@/: a 'GI.Gio.Objects.ZlibCompressor.ZlibCompressor' -}
-> Maybe (b)
{- ^ /@fileInfo@/: a 'GI.Gio.Objects.FileInfo.FileInfo' -}
-> m ()
zlibCompressorSetFileInfo compressor fileInfo = liftIO $ do
compressor' <- unsafeManagedPtrCastPtr compressor
maybeFileInfo <- case fileInfo of
Nothing -> return nullPtr
Just jFileInfo -> do
jFileInfo' <- unsafeManagedPtrCastPtr jFileInfo
return jFileInfo'
g_zlib_compressor_set_file_info compressor' maybeFileInfo
touchManagedPtr compressor
whenJust fileInfo touchManagedPtr
return ()
#if ENABLE_OVERLOADING
data ZlibCompressorSetFileInfoMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsZlibCompressor a, Gio.FileInfo.IsFileInfo b) => O.MethodInfo ZlibCompressorSetFileInfoMethodInfo a signature where
overloadedMethod _ = zlibCompressorSetFileInfo
#endif