{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gio.Objects.BufferedInputStream
(
BufferedInputStream(..) ,
IsBufferedInputStream ,
toBufferedInputStream ,
noBufferedInputStream ,
#if defined(ENABLE_OVERLOADING)
ResolveBufferedInputStreamMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamFillMethodInfo ,
#endif
bufferedInputStreamFill ,
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamFillAsyncMethodInfo ,
#endif
bufferedInputStreamFillAsync ,
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamFillFinishMethodInfo ,
#endif
bufferedInputStreamFillFinish ,
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamGetAvailableMethodInfo,
#endif
bufferedInputStreamGetAvailable ,
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamGetBufferSizeMethodInfo,
#endif
bufferedInputStreamGetBufferSize ,
bufferedInputStreamNew ,
bufferedInputStreamNewSized ,
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamPeekMethodInfo ,
#endif
bufferedInputStreamPeek ,
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamPeekBufferMethodInfo ,
#endif
bufferedInputStreamPeekBuffer ,
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamReadByteMethodInfo ,
#endif
bufferedInputStreamReadByte ,
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamSetBufferSizeMethodInfo,
#endif
bufferedInputStreamSetBufferSize ,
#if defined(ENABLE_OVERLOADING)
BufferedInputStreamBufferSizePropertyInfo,
#endif
#if defined(ENABLE_OVERLOADING)
bufferedInputStreamBufferSize ,
#endif
constructBufferedInputStreamBufferSize ,
getBufferedInputStreamBufferSize ,
setBufferedInputStreamBufferSize ,
) 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.GI.Base.Signals as B.Signals
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 qualified GI.Gio.Callbacks as Gio.Callbacks
import {-# SOURCE #-} qualified GI.Gio.Interfaces.AsyncResult as Gio.AsyncResult
import {-# SOURCE #-} qualified GI.Gio.Interfaces.Seekable as Gio.Seekable
import {-# SOURCE #-} qualified GI.Gio.Objects.Cancellable as Gio.Cancellable
import {-# SOURCE #-} qualified GI.Gio.Objects.FilterInputStream as Gio.FilterInputStream
import {-# SOURCE #-} qualified GI.Gio.Objects.InputStream as Gio.InputStream
newtype BufferedInputStream = BufferedInputStream (ManagedPtr BufferedInputStream)
deriving (BufferedInputStream -> BufferedInputStream -> Bool
(BufferedInputStream -> BufferedInputStream -> Bool)
-> (BufferedInputStream -> BufferedInputStream -> Bool)
-> Eq BufferedInputStream
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BufferedInputStream -> BufferedInputStream -> Bool
$c/= :: BufferedInputStream -> BufferedInputStream -> Bool
== :: BufferedInputStream -> BufferedInputStream -> Bool
$c== :: BufferedInputStream -> BufferedInputStream -> Bool
Eq)
foreign import ccall "g_buffered_input_stream_get_type"
c_g_buffered_input_stream_get_type :: IO GType
instance GObject BufferedInputStream where
gobjectType :: IO GType
gobjectType = IO GType
c_g_buffered_input_stream_get_type
instance B.GValue.IsGValue BufferedInputStream where
toGValue :: BufferedInputStream -> IO GValue
toGValue o :: BufferedInputStream
o = do
GType
gtype <- IO GType
c_g_buffered_input_stream_get_type
BufferedInputStream
-> (Ptr BufferedInputStream -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr BufferedInputStream
o (GType
-> (GValue -> Ptr BufferedInputStream -> IO ())
-> Ptr BufferedInputStream
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr BufferedInputStream -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
fromGValue :: GValue -> IO BufferedInputStream
fromGValue gv :: GValue
gv = do
Ptr BufferedInputStream
ptr <- GValue -> IO (Ptr BufferedInputStream)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr BufferedInputStream)
(ManagedPtr BufferedInputStream -> BufferedInputStream)
-> Ptr BufferedInputStream -> IO BufferedInputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr BufferedInputStream -> BufferedInputStream
BufferedInputStream Ptr BufferedInputStream
ptr
class (GObject o, O.IsDescendantOf BufferedInputStream o) => IsBufferedInputStream o
instance (GObject o, O.IsDescendantOf BufferedInputStream o) => IsBufferedInputStream o
instance O.HasParentTypes BufferedInputStream
type instance O.ParentTypes BufferedInputStream = '[Gio.FilterInputStream.FilterInputStream, Gio.InputStream.InputStream, GObject.Object.Object, Gio.Seekable.Seekable]
toBufferedInputStream :: (MonadIO m, IsBufferedInputStream o) => o -> m BufferedInputStream
toBufferedInputStream :: o -> m BufferedInputStream
toBufferedInputStream = IO BufferedInputStream -> m BufferedInputStream
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO BufferedInputStream -> m BufferedInputStream)
-> (o -> IO BufferedInputStream) -> o -> m BufferedInputStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr BufferedInputStream -> BufferedInputStream)
-> o -> IO BufferedInputStream
forall o o'.
(HasCallStack, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr BufferedInputStream -> BufferedInputStream
BufferedInputStream
noBufferedInputStream :: Maybe BufferedInputStream
noBufferedInputStream :: Maybe BufferedInputStream
noBufferedInputStream = Maybe BufferedInputStream
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveBufferedInputStreamMethod (t :: Symbol) (o :: *) :: * where
ResolveBufferedInputStreamMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveBufferedInputStreamMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveBufferedInputStreamMethod "canSeek" o = Gio.Seekable.SeekableCanSeekMethodInfo
ResolveBufferedInputStreamMethod "canTruncate" o = Gio.Seekable.SeekableCanTruncateMethodInfo
ResolveBufferedInputStreamMethod "clearPending" o = Gio.InputStream.InputStreamClearPendingMethodInfo
ResolveBufferedInputStreamMethod "close" o = Gio.InputStream.InputStreamCloseMethodInfo
ResolveBufferedInputStreamMethod "closeAsync" o = Gio.InputStream.InputStreamCloseAsyncMethodInfo
ResolveBufferedInputStreamMethod "closeFinish" o = Gio.InputStream.InputStreamCloseFinishMethodInfo
ResolveBufferedInputStreamMethod "fill" o = BufferedInputStreamFillMethodInfo
ResolveBufferedInputStreamMethod "fillAsync" o = BufferedInputStreamFillAsyncMethodInfo
ResolveBufferedInputStreamMethod "fillFinish" o = BufferedInputStreamFillFinishMethodInfo
ResolveBufferedInputStreamMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveBufferedInputStreamMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveBufferedInputStreamMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveBufferedInputStreamMethod "hasPending" o = Gio.InputStream.InputStreamHasPendingMethodInfo
ResolveBufferedInputStreamMethod "isClosed" o = Gio.InputStream.InputStreamIsClosedMethodInfo
ResolveBufferedInputStreamMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveBufferedInputStreamMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveBufferedInputStreamMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveBufferedInputStreamMethod "peek" o = BufferedInputStreamPeekMethodInfo
ResolveBufferedInputStreamMethod "peekBuffer" o = BufferedInputStreamPeekBufferMethodInfo
ResolveBufferedInputStreamMethod "read" o = Gio.InputStream.InputStreamReadMethodInfo
ResolveBufferedInputStreamMethod "readAll" o = Gio.InputStream.InputStreamReadAllMethodInfo
ResolveBufferedInputStreamMethod "readAllAsync" o = Gio.InputStream.InputStreamReadAllAsyncMethodInfo
ResolveBufferedInputStreamMethod "readAllFinish" o = Gio.InputStream.InputStreamReadAllFinishMethodInfo
ResolveBufferedInputStreamMethod "readAsync" o = Gio.InputStream.InputStreamReadAsyncMethodInfo
ResolveBufferedInputStreamMethod "readByte" o = BufferedInputStreamReadByteMethodInfo
ResolveBufferedInputStreamMethod "readBytes" o = Gio.InputStream.InputStreamReadBytesMethodInfo
ResolveBufferedInputStreamMethod "readBytesAsync" o = Gio.InputStream.InputStreamReadBytesAsyncMethodInfo
ResolveBufferedInputStreamMethod "readBytesFinish" o = Gio.InputStream.InputStreamReadBytesFinishMethodInfo
ResolveBufferedInputStreamMethod "readFinish" o = Gio.InputStream.InputStreamReadFinishMethodInfo
ResolveBufferedInputStreamMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveBufferedInputStreamMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveBufferedInputStreamMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveBufferedInputStreamMethod "seek" o = Gio.Seekable.SeekableSeekMethodInfo
ResolveBufferedInputStreamMethod "skip" o = Gio.InputStream.InputStreamSkipMethodInfo
ResolveBufferedInputStreamMethod "skipAsync" o = Gio.InputStream.InputStreamSkipAsyncMethodInfo
ResolveBufferedInputStreamMethod "skipFinish" o = Gio.InputStream.InputStreamSkipFinishMethodInfo
ResolveBufferedInputStreamMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveBufferedInputStreamMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveBufferedInputStreamMethod "tell" o = Gio.Seekable.SeekableTellMethodInfo
ResolveBufferedInputStreamMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveBufferedInputStreamMethod "truncate" o = Gio.Seekable.SeekableTruncateMethodInfo
ResolveBufferedInputStreamMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveBufferedInputStreamMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveBufferedInputStreamMethod "getAvailable" o = BufferedInputStreamGetAvailableMethodInfo
ResolveBufferedInputStreamMethod "getBaseStream" o = Gio.FilterInputStream.FilterInputStreamGetBaseStreamMethodInfo
ResolveBufferedInputStreamMethod "getBufferSize" o = BufferedInputStreamGetBufferSizeMethodInfo
ResolveBufferedInputStreamMethod "getCloseBaseStream" o = Gio.FilterInputStream.FilterInputStreamGetCloseBaseStreamMethodInfo
ResolveBufferedInputStreamMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveBufferedInputStreamMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveBufferedInputStreamMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveBufferedInputStreamMethod "setBufferSize" o = BufferedInputStreamSetBufferSizeMethodInfo
ResolveBufferedInputStreamMethod "setCloseBaseStream" o = Gio.FilterInputStream.FilterInputStreamSetCloseBaseStreamMethodInfo
ResolveBufferedInputStreamMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveBufferedInputStreamMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveBufferedInputStreamMethod "setPending" o = Gio.InputStream.InputStreamSetPendingMethodInfo
ResolveBufferedInputStreamMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveBufferedInputStreamMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveBufferedInputStreamMethod t BufferedInputStream, O.MethodInfo info BufferedInputStream p) => OL.IsLabel t (BufferedInputStream -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif
getBufferedInputStreamBufferSize :: (MonadIO m, IsBufferedInputStream o) => o -> m Word32
getBufferedInputStreamBufferSize :: o -> m Word32
getBufferedInputStreamBufferSize obj :: o
obj = IO Word32 -> m Word32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Word32
forall a. GObject a => a -> String -> IO Word32
B.Properties.getObjectPropertyUInt32 o
obj "buffer-size"
setBufferedInputStreamBufferSize :: (MonadIO m, IsBufferedInputStream o) => o -> Word32 -> m ()
setBufferedInputStreamBufferSize :: o -> Word32 -> m ()
setBufferedInputStreamBufferSize obj :: o
obj val :: Word32
val = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Word32 -> IO ()
forall a. GObject a => a -> String -> Word32 -> IO ()
B.Properties.setObjectPropertyUInt32 o
obj "buffer-size" Word32
val
constructBufferedInputStreamBufferSize :: (IsBufferedInputStream o) => Word32 -> IO (GValueConstruct o)
constructBufferedInputStreamBufferSize :: Word32 -> IO (GValueConstruct o)
constructBufferedInputStreamBufferSize val :: Word32
val = String -> Word32 -> IO (GValueConstruct o)
forall o. String -> Word32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt32 "buffer-size" Word32
val
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamBufferSizePropertyInfo
instance AttrInfo BufferedInputStreamBufferSizePropertyInfo where
type AttrAllowedOps BufferedInputStreamBufferSizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint BufferedInputStreamBufferSizePropertyInfo = IsBufferedInputStream
type AttrSetTypeConstraint BufferedInputStreamBufferSizePropertyInfo = (~) Word32
type AttrTransferTypeConstraint BufferedInputStreamBufferSizePropertyInfo = (~) Word32
type AttrTransferType BufferedInputStreamBufferSizePropertyInfo = Word32
type AttrGetType BufferedInputStreamBufferSizePropertyInfo = Word32
type AttrLabel BufferedInputStreamBufferSizePropertyInfo = "buffer-size"
type AttrOrigin BufferedInputStreamBufferSizePropertyInfo = BufferedInputStream
attrGet = getBufferedInputStreamBufferSize
attrSet = setBufferedInputStreamBufferSize
attrTransfer _ v = do
return v
attrConstruct = constructBufferedInputStreamBufferSize
attrClear = undefined
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList BufferedInputStream
type instance O.AttributeList BufferedInputStream = BufferedInputStreamAttributeList
type BufferedInputStreamAttributeList = ('[ '("baseStream", Gio.FilterInputStream.FilterInputStreamBaseStreamPropertyInfo), '("bufferSize", BufferedInputStreamBufferSizePropertyInfo), '("closeBaseStream", Gio.FilterInputStream.FilterInputStreamCloseBaseStreamPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
bufferedInputStreamBufferSize :: AttrLabelProxy "bufferSize"
bufferedInputStreamBufferSize = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList BufferedInputStream = BufferedInputStreamSignalList
type BufferedInputStreamSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "g_buffered_input_stream_new" g_buffered_input_stream_new ::
Ptr Gio.InputStream.InputStream ->
IO (Ptr BufferedInputStream)
bufferedInputStreamNew ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a) =>
a
-> m BufferedInputStream
bufferedInputStreamNew :: a -> m BufferedInputStream
bufferedInputStreamNew baseStream :: a
baseStream = IO BufferedInputStream -> m BufferedInputStream
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO BufferedInputStream -> m BufferedInputStream)
-> IO BufferedInputStream -> m BufferedInputStream
forall a b. (a -> b) -> a -> b
$ do
Ptr InputStream
baseStream' <- a -> IO (Ptr InputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
baseStream
Ptr BufferedInputStream
result <- Ptr InputStream -> IO (Ptr BufferedInputStream)
g_buffered_input_stream_new Ptr InputStream
baseStream'
Text -> Ptr BufferedInputStream -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "bufferedInputStreamNew" Ptr BufferedInputStream
result
BufferedInputStream
result' <- ((ManagedPtr BufferedInputStream -> BufferedInputStream)
-> Ptr BufferedInputStream -> IO BufferedInputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr BufferedInputStream -> BufferedInputStream
BufferedInputStream) Ptr BufferedInputStream
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
baseStream
BufferedInputStream -> IO BufferedInputStream
forall (m :: * -> *) a. Monad m => a -> m a
return BufferedInputStream
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_buffered_input_stream_new_sized" g_buffered_input_stream_new_sized ::
Ptr Gio.InputStream.InputStream ->
Word64 ->
IO (Ptr BufferedInputStream)
bufferedInputStreamNewSized ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a) =>
a
-> Word64
-> m BufferedInputStream
bufferedInputStreamNewSized :: a -> Word64 -> m BufferedInputStream
bufferedInputStreamNewSized baseStream :: a
baseStream size :: Word64
size = IO BufferedInputStream -> m BufferedInputStream
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO BufferedInputStream -> m BufferedInputStream)
-> IO BufferedInputStream -> m BufferedInputStream
forall a b. (a -> b) -> a -> b
$ do
Ptr InputStream
baseStream' <- a -> IO (Ptr InputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
baseStream
Ptr BufferedInputStream
result <- Ptr InputStream -> Word64 -> IO (Ptr BufferedInputStream)
g_buffered_input_stream_new_sized Ptr InputStream
baseStream' Word64
size
Text -> Ptr BufferedInputStream -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "bufferedInputStreamNewSized" Ptr BufferedInputStream
result
BufferedInputStream
result' <- ((ManagedPtr BufferedInputStream -> BufferedInputStream)
-> Ptr BufferedInputStream -> IO BufferedInputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr BufferedInputStream -> BufferedInputStream
BufferedInputStream) Ptr BufferedInputStream
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
baseStream
BufferedInputStream -> IO BufferedInputStream
forall (m :: * -> *) a. Monad m => a -> m a
return BufferedInputStream
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_buffered_input_stream_fill" g_buffered_input_stream_fill ::
Ptr BufferedInputStream ->
Int64 ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO Int64
bufferedInputStreamFill ::
(B.CallStack.HasCallStack, MonadIO m, IsBufferedInputStream a, Gio.Cancellable.IsCancellable b) =>
a
-> Int64
-> Maybe (b)
-> m Int64
bufferedInputStreamFill :: a -> Int64 -> Maybe b -> m Int64
bufferedInputStreamFill stream :: a
stream count :: Int64
count cancellable :: Maybe b
cancellable = IO Int64 -> m Int64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
Ptr BufferedInputStream
stream' <- a -> IO (Ptr BufferedInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
stream
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just jCancellable :: b
jCancellable -> do
Ptr Cancellable
jCancellable' <- b -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO Int64 -> IO () -> IO Int64
forall a b. IO a -> IO b -> IO a
onException (do
Int64
result <- (Ptr (Ptr GError) -> IO Int64) -> IO Int64
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO Int64) -> IO Int64)
-> (Ptr (Ptr GError) -> IO Int64) -> IO Int64
forall a b. (a -> b) -> a -> b
$ Ptr BufferedInputStream
-> Int64 -> Ptr Cancellable -> Ptr (Ptr GError) -> IO Int64
g_buffered_input_stream_fill Ptr BufferedInputStream
stream' Int64
count Ptr Cancellable
maybeCancellable
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
stream
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
cancellable b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Int64 -> IO Int64
forall (m :: * -> *) a. Monad m => a -> m a
return Int64
result
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamFillMethodInfo
instance (signature ~ (Int64 -> Maybe (b) -> m Int64), MonadIO m, IsBufferedInputStream a, Gio.Cancellable.IsCancellable b) => O.MethodInfo BufferedInputStreamFillMethodInfo a signature where
overloadedMethod = bufferedInputStreamFill
#endif
foreign import ccall "g_buffered_input_stream_fill_async" g_buffered_input_stream_fill_async ::
Ptr BufferedInputStream ->
Int64 ->
Int32 ->
Ptr Gio.Cancellable.Cancellable ->
FunPtr Gio.Callbacks.C_AsyncReadyCallback ->
Ptr () ->
IO ()
bufferedInputStreamFillAsync ::
(B.CallStack.HasCallStack, MonadIO m, IsBufferedInputStream a, Gio.Cancellable.IsCancellable b) =>
a
-> Int64
-> Int32
-> Maybe (b)
-> Maybe (Gio.Callbacks.AsyncReadyCallback)
-> m ()
bufferedInputStreamFillAsync :: a -> Int64 -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()
bufferedInputStreamFillAsync stream :: a
stream count :: Int64
count ioPriority :: Int32
ioPriority cancellable :: Maybe b
cancellable callback :: Maybe AsyncReadyCallback
callback = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr BufferedInputStream
stream' <- a -> IO (Ptr BufferedInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
stream
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just jCancellable :: b
jCancellable -> do
Ptr Cancellable
jCancellable' <- b -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
FunPtr C_AsyncReadyCallback
maybeCallback <- case Maybe AsyncReadyCallback
callback of
Nothing -> FunPtr C_AsyncReadyCallback -> IO (FunPtr C_AsyncReadyCallback)
forall (m :: * -> *) a. Monad m => a -> m a
return (Ptr Any -> FunPtr C_AsyncReadyCallback
forall a b. Ptr a -> FunPtr b
castPtrToFunPtr Ptr Any
forall a. Ptr a
nullPtr)
Just jCallback :: AsyncReadyCallback
jCallback -> do
Ptr (FunPtr C_AsyncReadyCallback)
ptrcallback <- IO (Ptr (FunPtr C_AsyncReadyCallback))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback))
FunPtr C_AsyncReadyCallback
jCallback' <- C_AsyncReadyCallback -> IO (FunPtr C_AsyncReadyCallback)
Gio.Callbacks.mk_AsyncReadyCallback (Maybe (Ptr (FunPtr C_AsyncReadyCallback))
-> AsyncReadyCallback_WithClosures -> C_AsyncReadyCallback
Gio.Callbacks.wrap_AsyncReadyCallback (Ptr (FunPtr C_AsyncReadyCallback)
-> Maybe (Ptr (FunPtr C_AsyncReadyCallback))
forall a. a -> Maybe a
Just Ptr (FunPtr C_AsyncReadyCallback)
ptrcallback) (AsyncReadyCallback -> AsyncReadyCallback_WithClosures
Gio.Callbacks.drop_closures_AsyncReadyCallback AsyncReadyCallback
jCallback))
Ptr (FunPtr C_AsyncReadyCallback)
-> FunPtr C_AsyncReadyCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr (FunPtr C_AsyncReadyCallback)
ptrcallback FunPtr C_AsyncReadyCallback
jCallback'
FunPtr C_AsyncReadyCallback -> IO (FunPtr C_AsyncReadyCallback)
forall (m :: * -> *) a. Monad m => a -> m a
return FunPtr C_AsyncReadyCallback
jCallback'
let userData :: Ptr a
userData = Ptr a
forall a. Ptr a
nullPtr
Ptr BufferedInputStream
-> Int64
-> Int32
-> Ptr Cancellable
-> FunPtr C_AsyncReadyCallback
-> Ptr ()
-> IO ()
g_buffered_input_stream_fill_async Ptr BufferedInputStream
stream' Int64
count Int32
ioPriority Ptr Cancellable
maybeCancellable FunPtr C_AsyncReadyCallback
maybeCallback Ptr ()
forall a. Ptr a
userData
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
stream
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
cancellable b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamFillAsyncMethodInfo
instance (signature ~ (Int64 -> Int32 -> Maybe (b) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsBufferedInputStream a, Gio.Cancellable.IsCancellable b) => O.MethodInfo BufferedInputStreamFillAsyncMethodInfo a signature where
overloadedMethod = bufferedInputStreamFillAsync
#endif
foreign import ccall "g_buffered_input_stream_fill_finish" g_buffered_input_stream_fill_finish ::
Ptr BufferedInputStream ->
Ptr Gio.AsyncResult.AsyncResult ->
Ptr (Ptr GError) ->
IO Int64
bufferedInputStreamFillFinish ::
(B.CallStack.HasCallStack, MonadIO m, IsBufferedInputStream a, Gio.AsyncResult.IsAsyncResult b) =>
a
-> b
-> m Int64
bufferedInputStreamFillFinish :: a -> b -> m Int64
bufferedInputStreamFillFinish stream :: a
stream result_ :: b
result_ = IO Int64 -> m Int64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int64 -> m Int64) -> IO Int64 -> m Int64
forall a b. (a -> b) -> a -> b
$ do
Ptr BufferedInputStream
stream' <- a -> IO (Ptr BufferedInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
stream
Ptr AsyncResult
result_' <- b -> IO (Ptr AsyncResult)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
result_
IO Int64 -> IO () -> IO Int64
forall a b. IO a -> IO b -> IO a
onException (do
Int64
result <- (Ptr (Ptr GError) -> IO Int64) -> IO Int64
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO Int64) -> IO Int64)
-> (Ptr (Ptr GError) -> IO Int64) -> IO Int64
forall a b. (a -> b) -> a -> b
$ Ptr BufferedInputStream
-> Ptr AsyncResult -> Ptr (Ptr GError) -> IO Int64
g_buffered_input_stream_fill_finish Ptr BufferedInputStream
stream' Ptr AsyncResult
result_'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
stream
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
result_
Int64 -> IO Int64
forall (m :: * -> *) a. Monad m => a -> m a
return Int64
result
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamFillFinishMethodInfo
instance (signature ~ (b -> m Int64), MonadIO m, IsBufferedInputStream a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo BufferedInputStreamFillFinishMethodInfo a signature where
overloadedMethod = bufferedInputStreamFillFinish
#endif
foreign import ccall "g_buffered_input_stream_get_available" g_buffered_input_stream_get_available ::
Ptr BufferedInputStream ->
IO Word64
bufferedInputStreamGetAvailable ::
(B.CallStack.HasCallStack, MonadIO m, IsBufferedInputStream a) =>
a
-> m Word64
bufferedInputStreamGetAvailable :: a -> m Word64
bufferedInputStreamGetAvailable stream :: a
stream = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
Ptr BufferedInputStream
stream' <- a -> IO (Ptr BufferedInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
stream
Word64
result <- Ptr BufferedInputStream -> IO Word64
g_buffered_input_stream_get_available Ptr BufferedInputStream
stream'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
stream
Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamGetAvailableMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsBufferedInputStream a) => O.MethodInfo BufferedInputStreamGetAvailableMethodInfo a signature where
overloadedMethod = bufferedInputStreamGetAvailable
#endif
foreign import ccall "g_buffered_input_stream_get_buffer_size" g_buffered_input_stream_get_buffer_size ::
Ptr BufferedInputStream ->
IO Word64
bufferedInputStreamGetBufferSize ::
(B.CallStack.HasCallStack, MonadIO m, IsBufferedInputStream a) =>
a
-> m Word64
bufferedInputStreamGetBufferSize :: a -> m Word64
bufferedInputStreamGetBufferSize stream :: a
stream = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
Ptr BufferedInputStream
stream' <- a -> IO (Ptr BufferedInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
stream
Word64
result <- Ptr BufferedInputStream -> IO Word64
g_buffered_input_stream_get_buffer_size Ptr BufferedInputStream
stream'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
stream
Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamGetBufferSizeMethodInfo
instance (signature ~ (m Word64), MonadIO m, IsBufferedInputStream a) => O.MethodInfo BufferedInputStreamGetBufferSizeMethodInfo a signature where
overloadedMethod = bufferedInputStreamGetBufferSize
#endif
foreign import ccall "g_buffered_input_stream_peek" g_buffered_input_stream_peek ::
Ptr BufferedInputStream ->
Ptr Word8 ->
Word64 ->
Word64 ->
IO Word64
bufferedInputStreamPeek ::
(B.CallStack.HasCallStack, MonadIO m, IsBufferedInputStream a) =>
a
-> ByteString
-> Word64
-> m Word64
bufferedInputStreamPeek :: a -> ByteString -> Word64 -> m Word64
bufferedInputStreamPeek stream :: a
stream buffer :: ByteString
buffer offset :: Word64
offset = IO Word64 -> m Word64
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word64 -> m Word64) -> IO Word64 -> m Word64
forall a b. (a -> b) -> a -> b
$ do
let count :: Word64
count = Int -> Word64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Word64) -> Int -> Word64
forall a b. (a -> b) -> a -> b
$ ByteString -> Int
B.length ByteString
buffer
Ptr BufferedInputStream
stream' <- a -> IO (Ptr BufferedInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
stream
Ptr Word8
buffer' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
buffer
Word64
result <- Ptr BufferedInputStream
-> Ptr Word8 -> Word64 -> Word64 -> IO Word64
g_buffered_input_stream_peek Ptr BufferedInputStream
stream' Ptr Word8
buffer' Word64
offset Word64
count
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
stream
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
buffer'
Word64 -> IO Word64
forall (m :: * -> *) a. Monad m => a -> m a
return Word64
result
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamPeekMethodInfo
instance (signature ~ (ByteString -> Word64 -> m Word64), MonadIO m, IsBufferedInputStream a) => O.MethodInfo BufferedInputStreamPeekMethodInfo a signature where
overloadedMethod = bufferedInputStreamPeek
#endif
foreign import ccall "g_buffered_input_stream_peek_buffer" g_buffered_input_stream_peek_buffer ::
Ptr BufferedInputStream ->
Ptr Word64 ->
IO (Ptr Word8)
bufferedInputStreamPeekBuffer ::
(B.CallStack.HasCallStack, MonadIO m, IsBufferedInputStream a) =>
a
-> m ByteString
bufferedInputStreamPeekBuffer :: a -> m ByteString
bufferedInputStreamPeekBuffer stream :: a
stream = IO ByteString -> m ByteString
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ByteString -> m ByteString) -> IO ByteString -> m ByteString
forall a b. (a -> b) -> a -> b
$ do
Ptr BufferedInputStream
stream' <- a -> IO (Ptr BufferedInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
stream
Ptr Word64
count <- IO (Ptr Word64)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word64)
Ptr Word8
result <- Ptr BufferedInputStream -> Ptr Word64 -> IO (Ptr Word8)
g_buffered_input_stream_peek_buffer Ptr BufferedInputStream
stream' Ptr Word64
count
Word64
count' <- Ptr Word64 -> IO Word64
forall a. Storable a => Ptr a -> IO a
peek Ptr Word64
count
Text -> Ptr Word8 -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "bufferedInputStreamPeekBuffer" Ptr Word8
result
ByteString
result' <- (Word64 -> Ptr Word8 -> IO ByteString
forall a. Integral a => a -> Ptr Word8 -> IO ByteString
unpackByteStringWithLength Word64
count') Ptr Word8
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
stream
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
count
ByteString -> IO ByteString
forall (m :: * -> *) a. Monad m => a -> m a
return ByteString
result'
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamPeekBufferMethodInfo
instance (signature ~ (m ByteString), MonadIO m, IsBufferedInputStream a) => O.MethodInfo BufferedInputStreamPeekBufferMethodInfo a signature where
overloadedMethod = bufferedInputStreamPeekBuffer
#endif
foreign import ccall "g_buffered_input_stream_read_byte" g_buffered_input_stream_read_byte ::
Ptr BufferedInputStream ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO Int32
bufferedInputStreamReadByte ::
(B.CallStack.HasCallStack, MonadIO m, IsBufferedInputStream a, Gio.Cancellable.IsCancellable b) =>
a
-> Maybe (b)
-> m Int32
bufferedInputStreamReadByte :: a -> Maybe b -> m Int32
bufferedInputStreamReadByte stream :: a
stream cancellable :: Maybe b
cancellable = IO Int32 -> m Int32
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ do
Ptr BufferedInputStream
stream' <- a -> IO (Ptr BufferedInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
stream
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just jCancellable :: b
jCancellable -> do
Ptr Cancellable
jCancellable' <- b -> IO (Ptr Cancellable)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
jCancellable
Ptr Cancellable -> IO (Ptr Cancellable)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO Int32 -> IO () -> IO Int32
forall a b. IO a -> IO b -> IO a
onException (do
Int32
result <- (Ptr (Ptr GError) -> IO Int32) -> IO Int32
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO Int32) -> IO Int32)
-> (Ptr (Ptr GError) -> IO Int32) -> IO Int32
forall a b. (a -> b) -> a -> b
$ Ptr BufferedInputStream
-> Ptr Cancellable -> Ptr (Ptr GError) -> IO Int32
g_buffered_input_stream_read_byte Ptr BufferedInputStream
stream' Ptr Cancellable
maybeCancellable
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
stream
Maybe b -> (b -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe b
cancellable b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
Int32 -> IO Int32
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
) (do
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
)
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamReadByteMethodInfo
instance (signature ~ (Maybe (b) -> m Int32), MonadIO m, IsBufferedInputStream a, Gio.Cancellable.IsCancellable b) => O.MethodInfo BufferedInputStreamReadByteMethodInfo a signature where
overloadedMethod = bufferedInputStreamReadByte
#endif
foreign import ccall "g_buffered_input_stream_set_buffer_size" g_buffered_input_stream_set_buffer_size ::
Ptr BufferedInputStream ->
Word64 ->
IO ()
bufferedInputStreamSetBufferSize ::
(B.CallStack.HasCallStack, MonadIO m, IsBufferedInputStream a) =>
a
-> Word64
-> m ()
bufferedInputStreamSetBufferSize :: a -> Word64 -> m ()
bufferedInputStreamSetBufferSize stream :: a
stream size :: Word64
size = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr BufferedInputStream
stream' <- a -> IO (Ptr BufferedInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
stream
Ptr BufferedInputStream -> Word64 -> IO ()
g_buffered_input_stream_set_buffer_size Ptr BufferedInputStream
stream' Word64
size
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
stream
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data BufferedInputStreamSetBufferSizeMethodInfo
instance (signature ~ (Word64 -> m ()), MonadIO m, IsBufferedInputStream a) => O.MethodInfo BufferedInputStreamSetBufferSizeMethodInfo a signature where
overloadedMethod = bufferedInputStreamSetBufferSize
#endif