packages feed

gi-gio-0.2.46.13: GI/Gio/Objects/MemoryOutputStream.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.MemoryOutputStream
    ( 

-- * Exported types
    MemoryOutputStream(..)                  ,
    MemoryOutputStreamK                     ,
    toMemoryOutputStream                    ,
    noMemoryOutputStream                    ,


 -- * Methods
-- ** memoryOutputStreamGetData
    MemoryOutputStreamGetDataMethodInfo     ,
    memoryOutputStreamGetData               ,


-- ** memoryOutputStreamGetDataSize
    MemoryOutputStreamGetDataSizeMethodInfo ,
    memoryOutputStreamGetDataSize           ,


-- ** memoryOutputStreamGetSize
    MemoryOutputStreamGetSizeMethodInfo     ,
    memoryOutputStreamGetSize               ,


-- ** memoryOutputStreamNewResizable
    memoryOutputStreamNewResizable          ,


-- ** memoryOutputStreamStealAsBytes
    MemoryOutputStreamStealAsBytesMethodInfo,
    memoryOutputStreamStealAsBytes          ,


-- ** memoryOutputStreamStealData
    MemoryOutputStreamStealDataMethodInfo   ,
    memoryOutputStreamStealData             ,




 -- * Properties
-- ** Data
    MemoryOutputStreamDataPropertyInfo      ,
    constructMemoryOutputStreamData         ,
    getMemoryOutputStreamData               ,


-- ** DataSize
    MemoryOutputStreamDataSizePropertyInfo  ,
    getMemoryOutputStreamDataSize           ,


-- ** Size
    MemoryOutputStreamSizePropertyInfo      ,
    constructMemoryOutputStreamSize         ,
    getMemoryOutputStreamSize               ,




    ) 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.GLib as GLib
import qualified GI.GObject as GObject

newtype MemoryOutputStream = MemoryOutputStream (ForeignPtr MemoryOutputStream)
foreign import ccall "g_memory_output_stream_get_type"
    c_g_memory_output_stream_get_type :: IO GType

type instance ParentTypes MemoryOutputStream = MemoryOutputStreamParentTypes
type MemoryOutputStreamParentTypes = '[OutputStream, GObject.Object, PollableOutputStream, Seekable]

instance GObject MemoryOutputStream where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_g_memory_output_stream_get_type
    

class GObject o => MemoryOutputStreamK o
instance (GObject o, IsDescendantOf MemoryOutputStream o) => MemoryOutputStreamK o

toMemoryOutputStream :: MemoryOutputStreamK o => o -> IO MemoryOutputStream
toMemoryOutputStream = unsafeCastTo MemoryOutputStream

noMemoryOutputStream :: Maybe MemoryOutputStream
noMemoryOutputStream = Nothing

type family ResolveMemoryOutputStreamMethod (t :: Symbol) (o :: *) :: * where
    ResolveMemoryOutputStreamMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
    ResolveMemoryOutputStreamMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
    ResolveMemoryOutputStreamMethod "canPoll" o = PollableOutputStreamCanPollMethodInfo
    ResolveMemoryOutputStreamMethod "canSeek" o = SeekableCanSeekMethodInfo
    ResolveMemoryOutputStreamMethod "canTruncate" o = SeekableCanTruncateMethodInfo
    ResolveMemoryOutputStreamMethod "clearPending" o = OutputStreamClearPendingMethodInfo
    ResolveMemoryOutputStreamMethod "close" o = OutputStreamCloseMethodInfo
    ResolveMemoryOutputStreamMethod "closeAsync" o = OutputStreamCloseAsyncMethodInfo
    ResolveMemoryOutputStreamMethod "closeFinish" o = OutputStreamCloseFinishMethodInfo
    ResolveMemoryOutputStreamMethod "createSource" o = PollableOutputStreamCreateSourceMethodInfo
    ResolveMemoryOutputStreamMethod "flush" o = OutputStreamFlushMethodInfo
    ResolveMemoryOutputStreamMethod "flushAsync" o = OutputStreamFlushAsyncMethodInfo
    ResolveMemoryOutputStreamMethod "flushFinish" o = OutputStreamFlushFinishMethodInfo
    ResolveMemoryOutputStreamMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
    ResolveMemoryOutputStreamMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
    ResolveMemoryOutputStreamMethod "hasPending" o = OutputStreamHasPendingMethodInfo
    ResolveMemoryOutputStreamMethod "isClosed" o = OutputStreamIsClosedMethodInfo
    ResolveMemoryOutputStreamMethod "isClosing" o = OutputStreamIsClosingMethodInfo
    ResolveMemoryOutputStreamMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
    ResolveMemoryOutputStreamMethod "isWritable" o = PollableOutputStreamIsWritableMethodInfo
    ResolveMemoryOutputStreamMethod "notify" o = GObject.ObjectNotifyMethodInfo
    ResolveMemoryOutputStreamMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
    ResolveMemoryOutputStreamMethod "ref" o = GObject.ObjectRefMethodInfo
    ResolveMemoryOutputStreamMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
    ResolveMemoryOutputStreamMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
    ResolveMemoryOutputStreamMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
    ResolveMemoryOutputStreamMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
    ResolveMemoryOutputStreamMethod "seek" o = SeekableSeekMethodInfo
    ResolveMemoryOutputStreamMethod "splice" o = OutputStreamSpliceMethodInfo
    ResolveMemoryOutputStreamMethod "spliceAsync" o = OutputStreamSpliceAsyncMethodInfo
    ResolveMemoryOutputStreamMethod "spliceFinish" o = OutputStreamSpliceFinishMethodInfo
    ResolveMemoryOutputStreamMethod "stealAsBytes" o = MemoryOutputStreamStealAsBytesMethodInfo
    ResolveMemoryOutputStreamMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
    ResolveMemoryOutputStreamMethod "tell" o = SeekableTellMethodInfo
    ResolveMemoryOutputStreamMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
    ResolveMemoryOutputStreamMethod "truncate" o = SeekableTruncateMethodInfo
    ResolveMemoryOutputStreamMethod "unref" o = GObject.ObjectUnrefMethodInfo
    ResolveMemoryOutputStreamMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
    ResolveMemoryOutputStreamMethod "write" o = OutputStreamWriteMethodInfo
    ResolveMemoryOutputStreamMethod "writeAll" o = OutputStreamWriteAllMethodInfo
    ResolveMemoryOutputStreamMethod "writeAllAsync" o = OutputStreamWriteAllAsyncMethodInfo
    ResolveMemoryOutputStreamMethod "writeAllFinish" o = OutputStreamWriteAllFinishMethodInfo
    ResolveMemoryOutputStreamMethod "writeAsync" o = OutputStreamWriteAsyncMethodInfo
    ResolveMemoryOutputStreamMethod "writeBytes" o = OutputStreamWriteBytesMethodInfo
    ResolveMemoryOutputStreamMethod "writeBytesAsync" o = OutputStreamWriteBytesAsyncMethodInfo
    ResolveMemoryOutputStreamMethod "writeBytesFinish" o = OutputStreamWriteBytesFinishMethodInfo
    ResolveMemoryOutputStreamMethod "writeFinish" o = OutputStreamWriteFinishMethodInfo
    ResolveMemoryOutputStreamMethod "writeNonblocking" o = PollableOutputStreamWriteNonblockingMethodInfo
    ResolveMemoryOutputStreamMethod "getDataSize" o = MemoryOutputStreamGetDataSizeMethodInfo
    ResolveMemoryOutputStreamMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
    ResolveMemoryOutputStreamMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
    ResolveMemoryOutputStreamMethod "getSize" o = MemoryOutputStreamGetSizeMethodInfo
    ResolveMemoryOutputStreamMethod "setData" o = GObject.ObjectSetDataMethodInfo
    ResolveMemoryOutputStreamMethod "setPending" o = OutputStreamSetPendingMethodInfo
    ResolveMemoryOutputStreamMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
    ResolveMemoryOutputStreamMethod l o = MethodResolutionFailed l o

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

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

-- VVV Prop "data"
   -- Type: TBasicType TVoid
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getMemoryOutputStreamData :: (MonadIO m, MemoryOutputStreamK o) => o -> m (Ptr ())
getMemoryOutputStreamData obj = liftIO $ getObjectPropertyPtr obj "data"

constructMemoryOutputStreamData :: (Ptr ()) -> IO ([Char], GValue)
constructMemoryOutputStreamData val = constructObjectPropertyPtr "data" val

data MemoryOutputStreamDataPropertyInfo
instance AttrInfo MemoryOutputStreamDataPropertyInfo where
    type AttrAllowedOps MemoryOutputStreamDataPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint MemoryOutputStreamDataPropertyInfo = (~) (Ptr ())
    type AttrBaseTypeConstraint MemoryOutputStreamDataPropertyInfo = MemoryOutputStreamK
    type AttrGetType MemoryOutputStreamDataPropertyInfo = (Ptr ())
    type AttrLabel MemoryOutputStreamDataPropertyInfo = "data"
    attrGet _ = getMemoryOutputStreamData
    attrSet _ = undefined
    attrConstruct _ = constructMemoryOutputStreamData

-- VVV Prop "data-size"
   -- Type: TBasicType TUInt64
   -- Flags: [PropertyReadable]

getMemoryOutputStreamDataSize :: (MonadIO m, MemoryOutputStreamK o) => o -> m Word64
getMemoryOutputStreamDataSize obj = liftIO $ getObjectPropertyUInt64 obj "data-size"

data MemoryOutputStreamDataSizePropertyInfo
instance AttrInfo MemoryOutputStreamDataSizePropertyInfo where
    type AttrAllowedOps MemoryOutputStreamDataSizePropertyInfo = '[ 'AttrGet]
    type AttrSetTypeConstraint MemoryOutputStreamDataSizePropertyInfo = (~) ()
    type AttrBaseTypeConstraint MemoryOutputStreamDataSizePropertyInfo = MemoryOutputStreamK
    type AttrGetType MemoryOutputStreamDataSizePropertyInfo = Word64
    type AttrLabel MemoryOutputStreamDataSizePropertyInfo = "data-size"
    attrGet _ = getMemoryOutputStreamDataSize
    attrSet _ = undefined
    attrConstruct _ = undefined

-- VVV Prop "size"
   -- Type: TBasicType TUInt64
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getMemoryOutputStreamSize :: (MonadIO m, MemoryOutputStreamK o) => o -> m Word64
getMemoryOutputStreamSize obj = liftIO $ getObjectPropertyUInt64 obj "size"

constructMemoryOutputStreamSize :: Word64 -> IO ([Char], GValue)
constructMemoryOutputStreamSize val = constructObjectPropertyUInt64 "size" val

data MemoryOutputStreamSizePropertyInfo
instance AttrInfo MemoryOutputStreamSizePropertyInfo where
    type AttrAllowedOps MemoryOutputStreamSizePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint MemoryOutputStreamSizePropertyInfo = (~) Word64
    type AttrBaseTypeConstraint MemoryOutputStreamSizePropertyInfo = MemoryOutputStreamK
    type AttrGetType MemoryOutputStreamSizePropertyInfo = Word64
    type AttrLabel MemoryOutputStreamSizePropertyInfo = "size"
    attrGet _ = getMemoryOutputStreamSize
    attrSet _ = undefined
    attrConstruct _ = constructMemoryOutputStreamSize

type instance AttributeList MemoryOutputStream = MemoryOutputStreamAttributeList
type MemoryOutputStreamAttributeList = ('[ '("data", MemoryOutputStreamDataPropertyInfo), '("dataSize", MemoryOutputStreamDataSizePropertyInfo), '("size", MemoryOutputStreamSizePropertyInfo)] :: [(Symbol, *)])

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

-- method MemoryOutputStream::new_resizable
-- method type : Constructor
-- Args : []
-- Lengths : []
-- returnType : TInterface "Gio" "MemoryOutputStream"
-- throws : False
-- Skip return : False

foreign import ccall "g_memory_output_stream_new_resizable" g_memory_output_stream_new_resizable :: 
    IO (Ptr MemoryOutputStream)


memoryOutputStreamNewResizable ::
    (MonadIO m) =>
    m MemoryOutputStream                    -- result
memoryOutputStreamNewResizable  = liftIO $ do
    result <- g_memory_output_stream_new_resizable
    checkUnexpectedReturnNULL "g_memory_output_stream_new_resizable" result
    result' <- (wrapObject MemoryOutputStream) result
    return result'

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

foreign import ccall "g_memory_output_stream_get_data" g_memory_output_stream_get_data :: 
    Ptr MemoryOutputStream ->               -- _obj : TInterface "Gio" "MemoryOutputStream"
    IO ()


memoryOutputStreamGetData ::
    (MonadIO m, MemoryOutputStreamK a) =>
    a                                       -- _obj
    -> m ()                                 -- result
memoryOutputStreamGetData _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    g_memory_output_stream_get_data _obj'
    touchManagedPtr _obj
    return ()

data MemoryOutputStreamGetDataMethodInfo
instance (signature ~ (m ()), MonadIO m, MemoryOutputStreamK a) => MethodInfo MemoryOutputStreamGetDataMethodInfo a signature where
    overloadedMethod _ = memoryOutputStreamGetData

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

foreign import ccall "g_memory_output_stream_get_data_size" g_memory_output_stream_get_data_size :: 
    Ptr MemoryOutputStream ->               -- _obj : TInterface "Gio" "MemoryOutputStream"
    IO Word64


memoryOutputStreamGetDataSize ::
    (MonadIO m, MemoryOutputStreamK a) =>
    a                                       -- _obj
    -> m Word64                             -- result
memoryOutputStreamGetDataSize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_memory_output_stream_get_data_size _obj'
    touchManagedPtr _obj
    return result

data MemoryOutputStreamGetDataSizeMethodInfo
instance (signature ~ (m Word64), MonadIO m, MemoryOutputStreamK a) => MethodInfo MemoryOutputStreamGetDataSizeMethodInfo a signature where
    overloadedMethod _ = memoryOutputStreamGetDataSize

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

foreign import ccall "g_memory_output_stream_get_size" g_memory_output_stream_get_size :: 
    Ptr MemoryOutputStream ->               -- _obj : TInterface "Gio" "MemoryOutputStream"
    IO Word64


memoryOutputStreamGetSize ::
    (MonadIO m, MemoryOutputStreamK a) =>
    a                                       -- _obj
    -> m Word64                             -- result
memoryOutputStreamGetSize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_memory_output_stream_get_size _obj'
    touchManagedPtr _obj
    return result

data MemoryOutputStreamGetSizeMethodInfo
instance (signature ~ (m Word64), MonadIO m, MemoryOutputStreamK a) => MethodInfo MemoryOutputStreamGetSizeMethodInfo a signature where
    overloadedMethod _ = memoryOutputStreamGetSize

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

foreign import ccall "g_memory_output_stream_steal_as_bytes" g_memory_output_stream_steal_as_bytes :: 
    Ptr MemoryOutputStream ->               -- _obj : TInterface "Gio" "MemoryOutputStream"
    IO (Ptr GLib.Bytes)


memoryOutputStreamStealAsBytes ::
    (MonadIO m, MemoryOutputStreamK a) =>
    a                                       -- _obj
    -> m GLib.Bytes                         -- result
memoryOutputStreamStealAsBytes _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- g_memory_output_stream_steal_as_bytes _obj'
    checkUnexpectedReturnNULL "g_memory_output_stream_steal_as_bytes" result
    result' <- (wrapBoxed GLib.Bytes) result
    touchManagedPtr _obj
    return result'

data MemoryOutputStreamStealAsBytesMethodInfo
instance (signature ~ (m GLib.Bytes), MonadIO m, MemoryOutputStreamK a) => MethodInfo MemoryOutputStreamStealAsBytesMethodInfo a signature where
    overloadedMethod _ = memoryOutputStreamStealAsBytes

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

foreign import ccall "g_memory_output_stream_steal_data" g_memory_output_stream_steal_data :: 
    Ptr MemoryOutputStream ->               -- _obj : TInterface "Gio" "MemoryOutputStream"
    IO ()


memoryOutputStreamStealData ::
    (MonadIO m, MemoryOutputStreamK a) =>
    a                                       -- _obj
    -> m ()                                 -- result
memoryOutputStreamStealData _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    g_memory_output_stream_steal_data _obj'
    touchManagedPtr _obj
    return ()

data MemoryOutputStreamStealDataMethodInfo
instance (signature ~ (m ()), MonadIO m, MemoryOutputStreamK a) => MethodInfo MemoryOutputStreamStealDataMethodInfo a signature where
    overloadedMethod _ = memoryOutputStreamStealData