{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gio.Objects.ConverterInputStream
(
ConverterInputStream(..) ,
IsConverterInputStream ,
toConverterInputStream ,
noConverterInputStream ,
#if defined(ENABLE_OVERLOADING)
ResolveConverterInputStreamMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
ConverterInputStreamGetConverterMethodInfo,
#endif
converterInputStreamGetConverter ,
converterInputStreamNew ,
#if defined(ENABLE_OVERLOADING)
ConverterInputStreamConverterPropertyInfo,
#endif
constructConverterInputStreamConverter ,
#if defined(ENABLE_OVERLOADING)
converterInputStreamConverter ,
#endif
getConverterInputStreamConverter ,
) 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 {-# SOURCE #-} qualified GI.Gio.Interfaces.Converter as Gio.Converter
import {-# SOURCE #-} qualified GI.Gio.Interfaces.PollableInputStream as Gio.PollableInputStream
import {-# SOURCE #-} qualified GI.Gio.Objects.FilterInputStream as Gio.FilterInputStream
import {-# SOURCE #-} qualified GI.Gio.Objects.InputStream as Gio.InputStream
newtype ConverterInputStream = ConverterInputStream (ManagedPtr ConverterInputStream)
deriving (ConverterInputStream -> ConverterInputStream -> Bool
(ConverterInputStream -> ConverterInputStream -> Bool)
-> (ConverterInputStream -> ConverterInputStream -> Bool)
-> Eq ConverterInputStream
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ConverterInputStream -> ConverterInputStream -> Bool
$c/= :: ConverterInputStream -> ConverterInputStream -> Bool
== :: ConverterInputStream -> ConverterInputStream -> Bool
$c== :: ConverterInputStream -> ConverterInputStream -> Bool
Eq)
foreign import ccall "g_converter_input_stream_get_type"
c_g_converter_input_stream_get_type :: IO GType
instance GObject ConverterInputStream where
gobjectType :: IO GType
gobjectType = IO GType
c_g_converter_input_stream_get_type
instance B.GValue.IsGValue ConverterInputStream where
toGValue :: ConverterInputStream -> IO GValue
toGValue o :: ConverterInputStream
o = do
GType
gtype <- IO GType
c_g_converter_input_stream_get_type
ConverterInputStream
-> (Ptr ConverterInputStream -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr ConverterInputStream
o (GType
-> (GValue -> Ptr ConverterInputStream -> IO ())
-> Ptr ConverterInputStream
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr ConverterInputStream -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
fromGValue :: GValue -> IO ConverterInputStream
fromGValue gv :: GValue
gv = do
Ptr ConverterInputStream
ptr <- GValue -> IO (Ptr ConverterInputStream)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr ConverterInputStream)
(ManagedPtr ConverterInputStream -> ConverterInputStream)
-> Ptr ConverterInputStream -> IO ConverterInputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr ConverterInputStream -> ConverterInputStream
ConverterInputStream Ptr ConverterInputStream
ptr
class (GObject o, O.IsDescendantOf ConverterInputStream o) => IsConverterInputStream o
instance (GObject o, O.IsDescendantOf ConverterInputStream o) => IsConverterInputStream o
instance O.HasParentTypes ConverterInputStream
type instance O.ParentTypes ConverterInputStream = '[Gio.FilterInputStream.FilterInputStream, Gio.InputStream.InputStream, GObject.Object.Object, Gio.PollableInputStream.PollableInputStream]
toConverterInputStream :: (MonadIO m, IsConverterInputStream o) => o -> m ConverterInputStream
toConverterInputStream :: o -> m ConverterInputStream
toConverterInputStream = IO ConverterInputStream -> m ConverterInputStream
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ConverterInputStream -> m ConverterInputStream)
-> (o -> IO ConverterInputStream) -> o -> m ConverterInputStream
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr ConverterInputStream -> ConverterInputStream)
-> o -> IO ConverterInputStream
forall o o'.
(HasCallStack, GObject o, GObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
unsafeCastTo ManagedPtr ConverterInputStream -> ConverterInputStream
ConverterInputStream
noConverterInputStream :: Maybe ConverterInputStream
noConverterInputStream :: Maybe ConverterInputStream
noConverterInputStream = Maybe ConverterInputStream
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveConverterInputStreamMethod (t :: Symbol) (o :: *) :: * where
ResolveConverterInputStreamMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveConverterInputStreamMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveConverterInputStreamMethod "canPoll" o = Gio.PollableInputStream.PollableInputStreamCanPollMethodInfo
ResolveConverterInputStreamMethod "clearPending" o = Gio.InputStream.InputStreamClearPendingMethodInfo
ResolveConverterInputStreamMethod "close" o = Gio.InputStream.InputStreamCloseMethodInfo
ResolveConverterInputStreamMethod "closeAsync" o = Gio.InputStream.InputStreamCloseAsyncMethodInfo
ResolveConverterInputStreamMethod "closeFinish" o = Gio.InputStream.InputStreamCloseFinishMethodInfo
ResolveConverterInputStreamMethod "createSource" o = Gio.PollableInputStream.PollableInputStreamCreateSourceMethodInfo
ResolveConverterInputStreamMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveConverterInputStreamMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveConverterInputStreamMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveConverterInputStreamMethod "hasPending" o = Gio.InputStream.InputStreamHasPendingMethodInfo
ResolveConverterInputStreamMethod "isClosed" o = Gio.InputStream.InputStreamIsClosedMethodInfo
ResolveConverterInputStreamMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveConverterInputStreamMethod "isReadable" o = Gio.PollableInputStream.PollableInputStreamIsReadableMethodInfo
ResolveConverterInputStreamMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveConverterInputStreamMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveConverterInputStreamMethod "read" o = Gio.InputStream.InputStreamReadMethodInfo
ResolveConverterInputStreamMethod "readAll" o = Gio.InputStream.InputStreamReadAllMethodInfo
ResolveConverterInputStreamMethod "readAllAsync" o = Gio.InputStream.InputStreamReadAllAsyncMethodInfo
ResolveConverterInputStreamMethod "readAllFinish" o = Gio.InputStream.InputStreamReadAllFinishMethodInfo
ResolveConverterInputStreamMethod "readAsync" o = Gio.InputStream.InputStreamReadAsyncMethodInfo
ResolveConverterInputStreamMethod "readBytes" o = Gio.InputStream.InputStreamReadBytesMethodInfo
ResolveConverterInputStreamMethod "readBytesAsync" o = Gio.InputStream.InputStreamReadBytesAsyncMethodInfo
ResolveConverterInputStreamMethod "readBytesFinish" o = Gio.InputStream.InputStreamReadBytesFinishMethodInfo
ResolveConverterInputStreamMethod "readFinish" o = Gio.InputStream.InputStreamReadFinishMethodInfo
ResolveConverterInputStreamMethod "readNonblocking" o = Gio.PollableInputStream.PollableInputStreamReadNonblockingMethodInfo
ResolveConverterInputStreamMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveConverterInputStreamMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveConverterInputStreamMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveConverterInputStreamMethod "skip" o = Gio.InputStream.InputStreamSkipMethodInfo
ResolveConverterInputStreamMethod "skipAsync" o = Gio.InputStream.InputStreamSkipAsyncMethodInfo
ResolveConverterInputStreamMethod "skipFinish" o = Gio.InputStream.InputStreamSkipFinishMethodInfo
ResolveConverterInputStreamMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveConverterInputStreamMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveConverterInputStreamMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveConverterInputStreamMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveConverterInputStreamMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveConverterInputStreamMethod "getBaseStream" o = Gio.FilterInputStream.FilterInputStreamGetBaseStreamMethodInfo
ResolveConverterInputStreamMethod "getCloseBaseStream" o = Gio.FilterInputStream.FilterInputStreamGetCloseBaseStreamMethodInfo
ResolveConverterInputStreamMethod "getConverter" o = ConverterInputStreamGetConverterMethodInfo
ResolveConverterInputStreamMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveConverterInputStreamMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveConverterInputStreamMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveConverterInputStreamMethod "setCloseBaseStream" o = Gio.FilterInputStream.FilterInputStreamSetCloseBaseStreamMethodInfo
ResolveConverterInputStreamMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveConverterInputStreamMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveConverterInputStreamMethod "setPending" o = Gio.InputStream.InputStreamSetPendingMethodInfo
ResolveConverterInputStreamMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveConverterInputStreamMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveConverterInputStreamMethod t ConverterInputStream, O.MethodInfo info ConverterInputStream p) => OL.IsLabel t (ConverterInputStream -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#endif
getConverterInputStreamConverter :: (MonadIO m, IsConverterInputStream o) => o -> m Gio.Converter.Converter
getConverterInputStreamConverter :: o -> m Converter
getConverterInputStreamConverter obj :: o
obj = IO Converter -> m Converter
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Converter -> m Converter) -> IO Converter -> m Converter
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Converter) -> IO Converter
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing "getConverterInputStreamConverter" (IO (Maybe Converter) -> IO Converter)
-> IO (Maybe Converter) -> IO Converter
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr Converter -> Converter)
-> IO (Maybe Converter)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj "converter" ManagedPtr Converter -> Converter
Gio.Converter.Converter
constructConverterInputStreamConverter :: (IsConverterInputStream o, Gio.Converter.IsConverter a) => a -> IO (GValueConstruct o)
constructConverterInputStreamConverter :: a -> IO (GValueConstruct o)
constructConverterInputStreamConverter val :: a
val = String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject "converter" (a -> Maybe a
forall a. a -> Maybe a
Just a
val)
#if defined(ENABLE_OVERLOADING)
data ConverterInputStreamConverterPropertyInfo
instance AttrInfo ConverterInputStreamConverterPropertyInfo where
type AttrAllowedOps ConverterInputStreamConverterPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint ConverterInputStreamConverterPropertyInfo = IsConverterInputStream
type AttrSetTypeConstraint ConverterInputStreamConverterPropertyInfo = Gio.Converter.IsConverter
type AttrTransferTypeConstraint ConverterInputStreamConverterPropertyInfo = Gio.Converter.IsConverter
type AttrTransferType ConverterInputStreamConverterPropertyInfo = Gio.Converter.Converter
type AttrGetType ConverterInputStreamConverterPropertyInfo = Gio.Converter.Converter
type AttrLabel ConverterInputStreamConverterPropertyInfo = "converter"
type AttrOrigin ConverterInputStreamConverterPropertyInfo = ConverterInputStream
attrGet = getConverterInputStreamConverter
attrSet = undefined
attrTransfer _ v = do
unsafeCastTo Gio.Converter.Converter v
attrConstruct = constructConverterInputStreamConverter
attrClear = undefined
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList ConverterInputStream
type instance O.AttributeList ConverterInputStream = ConverterInputStreamAttributeList
type ConverterInputStreamAttributeList = ('[ '("baseStream", Gio.FilterInputStream.FilterInputStreamBaseStreamPropertyInfo), '("closeBaseStream", Gio.FilterInputStream.FilterInputStreamCloseBaseStreamPropertyInfo), '("converter", ConverterInputStreamConverterPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
converterInputStreamConverter :: AttrLabelProxy "converter"
converterInputStreamConverter = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList ConverterInputStream = ConverterInputStreamSignalList
type ConverterInputStreamSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "g_converter_input_stream_new" g_converter_input_stream_new ::
Ptr Gio.InputStream.InputStream ->
Ptr Gio.Converter.Converter ->
IO (Ptr ConverterInputStream)
converterInputStreamNew ::
(B.CallStack.HasCallStack, MonadIO m, Gio.InputStream.IsInputStream a, Gio.Converter.IsConverter b) =>
a
-> b
-> m ConverterInputStream
converterInputStreamNew :: a -> b -> m ConverterInputStream
converterInputStreamNew baseStream :: a
baseStream converter :: b
converter = IO ConverterInputStream -> m ConverterInputStream
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO ConverterInputStream -> m ConverterInputStream)
-> IO ConverterInputStream -> m ConverterInputStream
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 Converter
converter' <- b -> IO (Ptr Converter)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
converter
Ptr ConverterInputStream
result <- Ptr InputStream -> Ptr Converter -> IO (Ptr ConverterInputStream)
g_converter_input_stream_new Ptr InputStream
baseStream' Ptr Converter
converter'
Text -> Ptr ConverterInputStream -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "converterInputStreamNew" Ptr ConverterInputStream
result
ConverterInputStream
result' <- ((ManagedPtr ConverterInputStream -> ConverterInputStream)
-> Ptr ConverterInputStream -> IO ConverterInputStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr ConverterInputStream -> ConverterInputStream
ConverterInputStream) Ptr ConverterInputStream
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
baseStream
b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
converter
ConverterInputStream -> IO ConverterInputStream
forall (m :: * -> *) a. Monad m => a -> m a
return ConverterInputStream
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "g_converter_input_stream_get_converter" g_converter_input_stream_get_converter ::
Ptr ConverterInputStream ->
IO (Ptr Gio.Converter.Converter)
converterInputStreamGetConverter ::
(B.CallStack.HasCallStack, MonadIO m, IsConverterInputStream a) =>
a
-> m Gio.Converter.Converter
converterInputStreamGetConverter :: a -> m Converter
converterInputStreamGetConverter converterStream :: a
converterStream = IO Converter -> m Converter
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Converter -> m Converter) -> IO Converter -> m Converter
forall a b. (a -> b) -> a -> b
$ do
Ptr ConverterInputStream
converterStream' <- a -> IO (Ptr ConverterInputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
converterStream
Ptr Converter
result <- Ptr ConverterInputStream -> IO (Ptr Converter)
g_converter_input_stream_get_converter Ptr ConverterInputStream
converterStream'
Text -> Ptr Converter -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL "converterInputStreamGetConverter" Ptr Converter
result
Converter
result' <- ((ManagedPtr Converter -> Converter)
-> Ptr Converter -> IO Converter
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Converter -> Converter
Gio.Converter.Converter) Ptr Converter
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
converterStream
Converter -> IO Converter
forall (m :: * -> *) a. Monad m => a -> m a
return Converter
result'
#if defined(ENABLE_OVERLOADING)
data ConverterInputStreamGetConverterMethodInfo
instance (signature ~ (m Gio.Converter.Converter), MonadIO m, IsConverterInputStream a) => O.MethodInfo ConverterInputStreamGetConverterMethodInfo a signature where
overloadedMethod = converterInputStreamGetConverter
#endif