gi-gio-0.2.46.13: GI/Gio/Objects/SimpleIOStream.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.SimpleIOStream
(
-- * Exported types
SimpleIOStream(..) ,
SimpleIOStreamK ,
toSimpleIOStream ,
noSimpleIOStream ,
-- * Methods
-- ** simpleIOStreamNew
simpleIOStreamNew ,
-- * Properties
-- ** InputStream
SimpleIOStreamInputStreamPropertyInfo ,
constructSimpleIOStreamInputStream ,
getSimpleIOStreamInputStream ,
-- ** OutputStream
SimpleIOStreamOutputStreamPropertyInfo ,
constructSimpleIOStreamOutputStream ,
getSimpleIOStreamOutputStream ,
) 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 SimpleIOStream = SimpleIOStream (ForeignPtr SimpleIOStream)
foreign import ccall "g_simple_io_stream_get_type"
c_g_simple_io_stream_get_type :: IO GType
type instance ParentTypes SimpleIOStream = SimpleIOStreamParentTypes
type SimpleIOStreamParentTypes = '[IOStream, GObject.Object]
instance GObject SimpleIOStream where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_g_simple_io_stream_get_type
class GObject o => SimpleIOStreamK o
instance (GObject o, IsDescendantOf SimpleIOStream o) => SimpleIOStreamK o
toSimpleIOStream :: SimpleIOStreamK o => o -> IO SimpleIOStream
toSimpleIOStream = unsafeCastTo SimpleIOStream
noSimpleIOStream :: Maybe SimpleIOStream
noSimpleIOStream = Nothing
type family ResolveSimpleIOStreamMethod (t :: Symbol) (o :: *) :: * where
ResolveSimpleIOStreamMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
ResolveSimpleIOStreamMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
ResolveSimpleIOStreamMethod "clearPending" o = IOStreamClearPendingMethodInfo
ResolveSimpleIOStreamMethod "close" o = IOStreamCloseMethodInfo
ResolveSimpleIOStreamMethod "closeAsync" o = IOStreamCloseAsyncMethodInfo
ResolveSimpleIOStreamMethod "closeFinish" o = IOStreamCloseFinishMethodInfo
ResolveSimpleIOStreamMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
ResolveSimpleIOStreamMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
ResolveSimpleIOStreamMethod "hasPending" o = IOStreamHasPendingMethodInfo
ResolveSimpleIOStreamMethod "isClosed" o = IOStreamIsClosedMethodInfo
ResolveSimpleIOStreamMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
ResolveSimpleIOStreamMethod "notify" o = GObject.ObjectNotifyMethodInfo
ResolveSimpleIOStreamMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
ResolveSimpleIOStreamMethod "ref" o = GObject.ObjectRefMethodInfo
ResolveSimpleIOStreamMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
ResolveSimpleIOStreamMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
ResolveSimpleIOStreamMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
ResolveSimpleIOStreamMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
ResolveSimpleIOStreamMethod "spliceAsync" o = IOStreamSpliceAsyncMethodInfo
ResolveSimpleIOStreamMethod "stealData" o = GObject.ObjectStealDataMethodInfo
ResolveSimpleIOStreamMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
ResolveSimpleIOStreamMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
ResolveSimpleIOStreamMethod "unref" o = GObject.ObjectUnrefMethodInfo
ResolveSimpleIOStreamMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
ResolveSimpleIOStreamMethod "getData" o = GObject.ObjectGetDataMethodInfo
ResolveSimpleIOStreamMethod "getInputStream" o = IOStreamGetInputStreamMethodInfo
ResolveSimpleIOStreamMethod "getOutputStream" o = IOStreamGetOutputStreamMethodInfo
ResolveSimpleIOStreamMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
ResolveSimpleIOStreamMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
ResolveSimpleIOStreamMethod "setData" o = GObject.ObjectSetDataMethodInfo
ResolveSimpleIOStreamMethod "setPending" o = IOStreamSetPendingMethodInfo
ResolveSimpleIOStreamMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
ResolveSimpleIOStreamMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveSimpleIOStreamMethod t SimpleIOStream, MethodInfo info SimpleIOStream p) => IsLabelProxy t (SimpleIOStream -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveSimpleIOStreamMethod t SimpleIOStream, MethodInfo info SimpleIOStream p) => IsLabel t (SimpleIOStream -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif
--- XXX Duplicated object with different types:
--- Name {namespace = "Gio", name = "SimpleIOStream"} -> Property {propName = "input-stream", propType = TInterface "Gio" "InputStream", propFlags = [PropertyReadable,PropertyWritable,PropertyConstructOnly], propTransfer = TransferNothing, propDeprecated = Nothing}
--- Name {namespace = "Gio", name = "IOStream"} -> Property {propName = "input-stream", propType = TInterface "Gio" "InputStream", propFlags = [PropertyReadable], propTransfer = TransferNothing, propDeprecated = Nothing}
--- XXX Duplicated object with different types:
--- Name {namespace = "Gio", name = "SimpleIOStream"} -> Property {propName = "output-stream", propType = TInterface "Gio" "OutputStream", propFlags = [PropertyReadable,PropertyWritable,PropertyConstructOnly], propTransfer = TransferNothing, propDeprecated = Nothing}
--- Name {namespace = "Gio", name = "IOStream"} -> Property {propName = "output-stream", propType = TInterface "Gio" "OutputStream", propFlags = [PropertyReadable], propTransfer = TransferNothing, propDeprecated = Nothing}
-- VVV Prop "input-stream"
-- Type: TInterface "Gio" "InputStream"
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getSimpleIOStreamInputStream :: (MonadIO m, SimpleIOStreamK o) => o -> m InputStream
getSimpleIOStreamInputStream obj = liftIO $ getObjectPropertyObject obj "input-stream" InputStream
constructSimpleIOStreamInputStream :: (InputStreamK a) => a -> IO ([Char], GValue)
constructSimpleIOStreamInputStream val = constructObjectPropertyObject "input-stream" val
data SimpleIOStreamInputStreamPropertyInfo
instance AttrInfo SimpleIOStreamInputStreamPropertyInfo where
type AttrAllowedOps SimpleIOStreamInputStreamPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint SimpleIOStreamInputStreamPropertyInfo = InputStreamK
type AttrBaseTypeConstraint SimpleIOStreamInputStreamPropertyInfo = SimpleIOStreamK
type AttrGetType SimpleIOStreamInputStreamPropertyInfo = InputStream
type AttrLabel SimpleIOStreamInputStreamPropertyInfo = "input-stream"
attrGet _ = getSimpleIOStreamInputStream
attrSet _ = undefined
attrConstruct _ = constructSimpleIOStreamInputStream
-- VVV Prop "output-stream"
-- Type: TInterface "Gio" "OutputStream"
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getSimpleIOStreamOutputStream :: (MonadIO m, SimpleIOStreamK o) => o -> m OutputStream
getSimpleIOStreamOutputStream obj = liftIO $ getObjectPropertyObject obj "output-stream" OutputStream
constructSimpleIOStreamOutputStream :: (OutputStreamK a) => a -> IO ([Char], GValue)
constructSimpleIOStreamOutputStream val = constructObjectPropertyObject "output-stream" val
data SimpleIOStreamOutputStreamPropertyInfo
instance AttrInfo SimpleIOStreamOutputStreamPropertyInfo where
type AttrAllowedOps SimpleIOStreamOutputStreamPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint SimpleIOStreamOutputStreamPropertyInfo = OutputStreamK
type AttrBaseTypeConstraint SimpleIOStreamOutputStreamPropertyInfo = SimpleIOStreamK
type AttrGetType SimpleIOStreamOutputStreamPropertyInfo = OutputStream
type AttrLabel SimpleIOStreamOutputStreamPropertyInfo = "output-stream"
attrGet _ = getSimpleIOStreamOutputStream
attrSet _ = undefined
attrConstruct _ = constructSimpleIOStreamOutputStream
type instance AttributeList SimpleIOStream = SimpleIOStreamAttributeList
type SimpleIOStreamAttributeList = ('[ '("closed", IOStreamClosedPropertyInfo)] :: [(Symbol, *)])
type instance SignalList SimpleIOStream = SimpleIOStreamSignalList
type SimpleIOStreamSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method SimpleIOStream::new
-- method type : Constructor
-- Args : [Arg {argCName = "input_stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "output_stream", argType = TInterface "Gio" "OutputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "SimpleIOStream"
-- throws : False
-- Skip return : False
foreign import ccall "g_simple_io_stream_new" g_simple_io_stream_new ::
Ptr InputStream -> -- input_stream : TInterface "Gio" "InputStream"
Ptr OutputStream -> -- output_stream : TInterface "Gio" "OutputStream"
IO (Ptr SimpleIOStream)
simpleIOStreamNew ::
(MonadIO m, InputStreamK a, OutputStreamK b) =>
a -- inputStream
-> b -- outputStream
-> m SimpleIOStream -- result
simpleIOStreamNew inputStream outputStream = liftIO $ do
let inputStream' = unsafeManagedPtrCastPtr inputStream
let outputStream' = unsafeManagedPtrCastPtr outputStream
result <- g_simple_io_stream_new inputStream' outputStream'
checkUnexpectedReturnNULL "g_simple_io_stream_new" result
result' <- (wrapObject SimpleIOStream) result
touchManagedPtr inputStream
touchManagedPtr outputStream
return result'