packages feed

gi-gio-0.2.46.13: 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 (garetxe@gmail.com)
-}

module GI.Gio.Objects.ZlibCompressor
    ( 

-- * Exported types
    ZlibCompressor(..)                      ,
    ZlibCompressorK                         ,
    toZlibCompressor                        ,
    noZlibCompressor                        ,


 -- * Methods
-- ** zlibCompressorGetFileInfo
    ZlibCompressorGetFileInfoMethodInfo     ,
    zlibCompressorGetFileInfo               ,


-- ** zlibCompressorNew
    zlibCompressorNew                       ,


-- ** zlibCompressorSetFileInfo
    ZlibCompressorSetFileInfoMethodInfo     ,
    zlibCompressorSetFileInfo               ,




 -- * Properties
-- ** FileInfo
    ZlibCompressorFileInfoPropertyInfo      ,
    constructZlibCompressorFileInfo         ,
    getZlibCompressorFileInfo               ,
    setZlibCompressorFileInfo               ,


-- ** Format
    ZlibCompressorFormatPropertyInfo        ,
    constructZlibCompressorFormat           ,
    getZlibCompressorFormat                 ,


-- ** Level
    ZlibCompressorLevelPropertyInfo         ,
    constructZlibCompressorLevel            ,
    getZlibCompressorLevel                  ,




    ) 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.Gio.Types
import GI.Gio.Callbacks
import qualified GI.GObject as GObject

newtype ZlibCompressor = ZlibCompressor (ForeignPtr ZlibCompressor)
foreign import ccall "g_zlib_compressor_get_type"
    c_g_zlib_compressor_get_type :: IO GType

type instance ParentTypes ZlibCompressor = ZlibCompressorParentTypes
type ZlibCompressorParentTypes = '[GObject.Object, Converter]

instance GObject ZlibCompressor where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_g_zlib_compressor_get_type
    

class GObject o => ZlibCompressorK o
instance (GObject o, IsDescendantOf ZlibCompressor o) => ZlibCompressorK o

toZlibCompressor :: ZlibCompressorK o => o -> IO ZlibCompressor
toZlibCompressor = unsafeCastTo ZlibCompressor

noZlibCompressor :: Maybe ZlibCompressor
noZlibCompressor = Nothing

type family ResolveZlibCompressorMethod (t :: Symbol) (o :: *) :: * where
    ResolveZlibCompressorMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveZlibCompressorMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveZlibCompressorMethod "convert" o = ConverterConvertMethodInfo
    ResolveZlibCompressorMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveZlibCompressorMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveZlibCompressorMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveZlibCompressorMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveZlibCompressorMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveZlibCompressorMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveZlibCompressorMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveZlibCompressorMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveZlibCompressorMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveZlibCompressorMethod "reset" o = ConverterResetMethodInfo
    ResolveZlibCompressorMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveZlibCompressorMethod "stealData" o = GObject.ObjectStealDataMethodInfo
    ResolveZlibCompressorMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveZlibCompressorMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveZlibCompressorMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveZlibCompressorMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveZlibCompressorMethod "getData" o = GObject.ObjectGetDataMethodInfo
    ResolveZlibCompressorMethod "getFileInfo" o = ZlibCompressorGetFileInfoMethodInfo
    ResolveZlibCompressorMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveZlibCompressorMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveZlibCompressorMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveZlibCompressorMethod "setFileInfo" o = ZlibCompressorSetFileInfoMethodInfo
    ResolveZlibCompressorMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveZlibCompressorMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveZlibCompressorMethod t ZlibCompressor, MethodInfo info ZlibCompressor p) => IsLabelProxy t (ZlibCompressor -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveZlibCompressorMethod t ZlibCompressor, MethodInfo info ZlibCompressor p) => IsLabel t (ZlibCompressor -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

-- VVV Prop "file-info"
   -- Type: TInterface "Gio" "FileInfo"
   -- Flags: [PropertyReadable,PropertyWritable]

getZlibCompressorFileInfo :: (MonadIO m, ZlibCompressorK o) => o -> m FileInfo
getZlibCompressorFileInfo obj = liftIO $ getObjectPropertyObject obj "file-info" FileInfo

setZlibCompressorFileInfo :: (MonadIO m, ZlibCompressorK o, FileInfoK a) => o -> a -> m ()
setZlibCompressorFileInfo obj val = liftIO $ setObjectPropertyObject obj "file-info" val

constructZlibCompressorFileInfo :: (FileInfoK a) => a -> IO ([Char], GValue)
constructZlibCompressorFileInfo val = constructObjectPropertyObject "file-info" val

data ZlibCompressorFileInfoPropertyInfo
instance AttrInfo ZlibCompressorFileInfoPropertyInfo where
    type AttrAllowedOps ZlibCompressorFileInfoPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ZlibCompressorFileInfoPropertyInfo = FileInfoK
    type AttrBaseTypeConstraint ZlibCompressorFileInfoPropertyInfo = ZlibCompressorK
    type AttrGetType ZlibCompressorFileInfoPropertyInfo = FileInfo
    type AttrLabel ZlibCompressorFileInfoPropertyInfo = "file-info"
    attrGet _ = getZlibCompressorFileInfo
    attrSet _ = setZlibCompressorFileInfo
    attrConstruct _ = constructZlibCompressorFileInfo

-- VVV Prop "format"
   -- Type: TInterface "Gio" "ZlibCompressorFormat"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getZlibCompressorFormat :: (MonadIO m, ZlibCompressorK o) => o -> m ZlibCompressorFormat
getZlibCompressorFormat obj = liftIO $ getObjectPropertyEnum obj "format"

constructZlibCompressorFormat :: ZlibCompressorFormat -> IO ([Char], GValue)
constructZlibCompressorFormat val = constructObjectPropertyEnum "format" val

data ZlibCompressorFormatPropertyInfo
instance AttrInfo ZlibCompressorFormatPropertyInfo where
    type AttrAllowedOps ZlibCompressorFormatPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ZlibCompressorFormatPropertyInfo = (~) ZlibCompressorFormat
    type AttrBaseTypeConstraint ZlibCompressorFormatPropertyInfo = ZlibCompressorK
    type AttrGetType ZlibCompressorFormatPropertyInfo = ZlibCompressorFormat
    type AttrLabel ZlibCompressorFormatPropertyInfo = "format"
    attrGet _ = getZlibCompressorFormat
    attrSet _ = undefined
    attrConstruct _ = constructZlibCompressorFormat

-- VVV Prop "level"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getZlibCompressorLevel :: (MonadIO m, ZlibCompressorK o) => o -> m Int32
getZlibCompressorLevel obj = liftIO $ getObjectPropertyCInt obj "level"

constructZlibCompressorLevel :: Int32 -> IO ([Char], GValue)
constructZlibCompressorLevel val = constructObjectPropertyCInt "level" val

data ZlibCompressorLevelPropertyInfo
instance AttrInfo ZlibCompressorLevelPropertyInfo where
    type AttrAllowedOps ZlibCompressorLevelPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint ZlibCompressorLevelPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint ZlibCompressorLevelPropertyInfo = ZlibCompressorK
    type AttrGetType ZlibCompressorLevelPropertyInfo = Int32
    type AttrLabel ZlibCompressorLevelPropertyInfo = "level"
    attrGet _ = getZlibCompressorLevel
    attrSet _ = undefined
    attrConstruct _ = constructZlibCompressorLevel

type instance AttributeList ZlibCompressor = ZlibCompressorAttributeList
type ZlibCompressorAttributeList = ('[ '("fileInfo", ZlibCompressorFileInfoPropertyInfo), '("format", ZlibCompressorFormatPropertyInfo), '("level", ZlibCompressorLevelPropertyInfo)] :: [(Symbol, *)])

type instance SignalList ZlibCompressor = ZlibCompressorSignalList
type ZlibCompressorSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method ZlibCompressor::new
-- method type : Constructor
-- Args : [Arg {argCName = "format", argType = TInterface "Gio" "ZlibCompressorFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "level", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "ZlibCompressor"
-- throws : False
-- Skip return : False

foreign import ccall "g_zlib_compressor_new" g_zlib_compressor_new :: 
    CUInt ->                                -- format : TInterface "Gio" "ZlibCompressorFormat"
    Int32 ->                                -- level : TBasicType TInt32
    IO (Ptr ZlibCompressor)


zlibCompressorNew ::
    (MonadIO m) =>
    ZlibCompressorFormat                    -- format
    -> Int32                                -- level
    -> m ZlibCompressor                     -- result
zlibCompressorNew format level = liftIO $ do
    let format' = (fromIntegral . fromEnum) format
    result <- g_zlib_compressor_new format' level
    checkUnexpectedReturnNULL "g_zlib_compressor_new" result
    result' <- (wrapObject ZlibCompressor) result
    return result'

-- method ZlibCompressor::get_file_info
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "ZlibCompressor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "FileInfo"
-- throws : False
-- Skip return : False

foreign import ccall "g_zlib_compressor_get_file_info" g_zlib_compressor_get_file_info :: 
    Ptr ZlibCompressor ->                   -- _obj : TInterface "Gio" "ZlibCompressor"
    IO (Ptr FileInfo)


zlibCompressorGetFileInfo ::
    (MonadIO m, ZlibCompressorK a) =>
    a                                       -- _obj
    -> m FileInfo                           -- result
zlibCompressorGetFileInfo _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_zlib_compressor_get_file_info _obj'
    checkUnexpectedReturnNULL "g_zlib_compressor_get_file_info" result
    result' <- (newObject FileInfo) result
    touchManagedPtr _obj
    return result'

data ZlibCompressorGetFileInfoMethodInfo
instance (signature ~ (m FileInfo), MonadIO m, ZlibCompressorK a) => MethodInfo ZlibCompressorGetFileInfoMethodInfo a signature where
    overloadedMethod _ = zlibCompressorGetFileInfo

-- method ZlibCompressor::set_file_info
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Gio" "ZlibCompressor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file_info", argType = TInterface "Gio" "FileInfo", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "g_zlib_compressor_set_file_info" g_zlib_compressor_set_file_info :: 
    Ptr ZlibCompressor ->                   -- _obj : TInterface "Gio" "ZlibCompressor"
    Ptr FileInfo ->                         -- file_info : TInterface "Gio" "FileInfo"
    IO ()


zlibCompressorSetFileInfo ::
    (MonadIO m, ZlibCompressorK a, FileInfoK b) =>
    a                                       -- _obj
    -> Maybe (b)                            -- fileInfo
    -> m ()                                 -- result
zlibCompressorSetFileInfo _obj fileInfo = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeFileInfo <- case fileInfo of
        Nothing -> return nullPtr
        Just jFileInfo -> do
            let jFileInfo' = unsafeManagedPtrCastPtr jFileInfo
            return jFileInfo'
    g_zlib_compressor_set_file_info _obj' maybeFileInfo
    touchManagedPtr _obj
    whenJust fileInfo touchManagedPtr
    return ()

data ZlibCompressorSetFileInfoMethodInfo
instance (signature ~ (Maybe (b) -> m ()), MonadIO m, ZlibCompressorK a, FileInfoK b) => MethodInfo ZlibCompressorSetFileInfoMethodInfo a signature where
    overloadedMethod _ = zlibCompressorSetFileInfo