{- | 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 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 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 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 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 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