module GI.Gio.Objects.SimpleIOStream
(
SimpleIOStream(..) ,
SimpleIOStreamK ,
toSimpleIOStream ,
noSimpleIOStream ,
simpleIOStreamNew ,
SimpleIOStreamInputStreamPropertyInfo ,
constructSimpleIOStreamInputStream ,
getSimpleIOStreamInputStream ,
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
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 = "SimpleIOStream::input-stream"
attrGet _ = getSimpleIOStreamInputStream
attrSet _ = undefined
attrConstruct _ = constructSimpleIOStreamInputStream
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 = "SimpleIOStream::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), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "g_simple_io_stream_new" g_simple_io_stream_new ::
Ptr InputStream ->
Ptr OutputStream ->
IO (Ptr SimpleIOStream)
simpleIOStreamNew ::
(MonadIO m, InputStreamK a, OutputStreamK b) =>
a ->
b ->
m SimpleIOStream
simpleIOStreamNew input_stream output_stream = liftIO $ do
let input_stream' = unsafeManagedPtrCastPtr input_stream
let output_stream' = unsafeManagedPtrCastPtr output_stream
result <- g_simple_io_stream_new input_stream' output_stream'
checkUnexpectedReturnNULL "g_simple_io_stream_new" result
result' <- (wrapObject SimpleIOStream) result
touchManagedPtr input_stream
touchManagedPtr output_stream
return result'