{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Soup.Objects.Socket
(
Socket(..) ,
IsSocket ,
toSocket ,
#if defined(ENABLE_OVERLOADING)
ResolveSocketMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketConnectAsyncMethodInfo ,
#endif
socketConnectAsync ,
#if defined(ENABLE_OVERLOADING)
SocketConnectSyncMethodInfo ,
#endif
socketConnectSync ,
#if defined(ENABLE_OVERLOADING)
SocketDisconnectMethodInfo ,
#endif
socketDisconnect ,
#if defined(ENABLE_OVERLOADING)
SocketGetFdMethodInfo ,
#endif
socketGetFd ,
#if defined(ENABLE_OVERLOADING)
SocketGetLocalAddressMethodInfo ,
#endif
socketGetLocalAddress ,
#if defined(ENABLE_OVERLOADING)
SocketGetRemoteAddressMethodInfo ,
#endif
socketGetRemoteAddress ,
#if defined(ENABLE_OVERLOADING)
SocketIsConnectedMethodInfo ,
#endif
socketIsConnected ,
#if defined(ENABLE_OVERLOADING)
SocketIsSslMethodInfo ,
#endif
socketIsSsl ,
#if defined(ENABLE_OVERLOADING)
SocketListenMethodInfo ,
#endif
socketListen ,
#if defined(ENABLE_OVERLOADING)
SocketReadMethodInfo ,
#endif
socketRead ,
#if defined(ENABLE_OVERLOADING)
SocketReadUntilMethodInfo ,
#endif
socketReadUntil ,
#if defined(ENABLE_OVERLOADING)
SocketStartProxySslMethodInfo ,
#endif
socketStartProxySsl ,
#if defined(ENABLE_OVERLOADING)
SocketStartSslMethodInfo ,
#endif
socketStartSsl ,
#if defined(ENABLE_OVERLOADING)
SocketWriteMethodInfo ,
#endif
socketWrite ,
#if defined(ENABLE_OVERLOADING)
SocketAsyncContextPropertyInfo ,
#endif
constructSocketAsyncContext ,
getSocketAsyncContext ,
#if defined(ENABLE_OVERLOADING)
socketAsyncContext ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketFdPropertyInfo ,
#endif
constructSocketFd ,
getSocketFd ,
#if defined(ENABLE_OVERLOADING)
socketFd ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketGsocketPropertyInfo ,
#endif
constructSocketGsocket ,
#if defined(ENABLE_OVERLOADING)
socketGsocket ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketIostreamPropertyInfo ,
#endif
constructSocketIostream ,
#if defined(ENABLE_OVERLOADING)
socketIostream ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketIpv6OnlyPropertyInfo ,
#endif
constructSocketIpv6Only ,
getSocketIpv6Only ,
setSocketIpv6Only ,
#if defined(ENABLE_OVERLOADING)
socketIpv6Only ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketIsServerPropertyInfo ,
#endif
getSocketIsServer ,
#if defined(ENABLE_OVERLOADING)
socketIsServer ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketLocalAddressPropertyInfo ,
#endif
constructSocketLocalAddress ,
getSocketLocalAddress ,
#if defined(ENABLE_OVERLOADING)
socketLocalAddress ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketNonBlockingPropertyInfo ,
#endif
constructSocketNonBlocking ,
getSocketNonBlocking ,
setSocketNonBlocking ,
#if defined(ENABLE_OVERLOADING)
socketNonBlocking ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketRemoteAddressPropertyInfo ,
#endif
constructSocketRemoteAddress ,
getSocketRemoteAddress ,
#if defined(ENABLE_OVERLOADING)
socketRemoteAddress ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketSslCredsPropertyInfo ,
#endif
constructSocketSslCreds ,
getSocketSslCreds ,
setSocketSslCreds ,
#if defined(ENABLE_OVERLOADING)
socketSslCreds ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketSslFallbackPropertyInfo ,
#endif
constructSocketSslFallback ,
getSocketSslFallback ,
#if defined(ENABLE_OVERLOADING)
socketSslFallback ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketSslStrictPropertyInfo ,
#endif
constructSocketSslStrict ,
getSocketSslStrict ,
#if defined(ENABLE_OVERLOADING)
socketSslStrict ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketTimeoutPropertyInfo ,
#endif
constructSocketTimeout ,
getSocketTimeout ,
setSocketTimeout ,
#if defined(ENABLE_OVERLOADING)
socketTimeout ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketTlsCertificatePropertyInfo ,
#endif
getSocketTlsCertificate ,
#if defined(ENABLE_OVERLOADING)
socketTlsCertificate ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketTlsErrorsPropertyInfo ,
#endif
getSocketTlsErrors ,
#if defined(ENABLE_OVERLOADING)
socketTlsErrors ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketTrustedCertificatePropertyInfo ,
#endif
getSocketTrustedCertificate ,
#if defined(ENABLE_OVERLOADING)
socketTrustedCertificate ,
#endif
#if defined(ENABLE_OVERLOADING)
SocketUseThreadContextPropertyInfo ,
#endif
constructSocketUseThreadContext ,
getSocketUseThreadContext ,
#if defined(ENABLE_OVERLOADING)
socketUseThreadContext ,
#endif
SocketDisconnectedCallback ,
#if defined(ENABLE_OVERLOADING)
SocketDisconnectedSignalInfo ,
#endif
afterSocketDisconnected ,
onSocketDisconnected ,
SocketEventCallback ,
#if defined(ENABLE_OVERLOADING)
SocketEventSignalInfo ,
#endif
afterSocketEvent ,
onSocketEvent ,
SocketNewConnectionCallback ,
#if defined(ENABLE_OVERLOADING)
SocketNewConnectionSignalInfo ,
#endif
afterSocketNewConnection ,
onSocketNewConnection ,
SocketReadableCallback ,
#if defined(ENABLE_OVERLOADING)
SocketReadableSignalInfo ,
#endif
afterSocketReadable ,
onSocketReadable ,
SocketWritableCallback ,
#if defined(ENABLE_OVERLOADING)
SocketWritableSignalInfo ,
#endif
afterSocketWritable ,
onSocketWritable ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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 Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
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 GHC.Records as R
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Enums as Gio.Enums
import qualified GI.Gio.Flags as Gio.Flags
import qualified GI.Gio.Interfaces.Initable as Gio.Initable
import qualified GI.Gio.Objects.Cancellable as Gio.Cancellable
import qualified GI.Gio.Objects.IOStream as Gio.IOStream
import qualified GI.Gio.Objects.Socket as Gio.Socket
import qualified GI.Gio.Objects.TlsCertificate as Gio.TlsCertificate
import qualified GI.Soup.Callbacks as Soup.Callbacks
import {-# SOURCE #-} qualified GI.Soup.Enums as Soup.Enums
import {-# SOURCE #-} qualified GI.Soup.Objects.Address as Soup.Address
newtype Socket = Socket (SP.ManagedPtr Socket)
deriving (Socket -> Socket -> Bool
(Socket -> Socket -> Bool)
-> (Socket -> Socket -> Bool) -> Eq Socket
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Socket -> Socket -> Bool
== :: Socket -> Socket -> Bool
$c/= :: Socket -> Socket -> Bool
/= :: Socket -> Socket -> Bool
Eq)
instance SP.ManagedPtrNewtype Socket where
toManagedPtr :: Socket -> ManagedPtr Socket
toManagedPtr (Socket ManagedPtr Socket
p) = ManagedPtr Socket
p
foreign import ccall "soup_socket_get_type"
c_soup_socket_get_type :: IO B.Types.GType
instance B.Types.TypedObject Socket where
glibType :: IO GType
glibType = IO GType
c_soup_socket_get_type
instance B.Types.GObject Socket
class (SP.GObject o, O.IsDescendantOf Socket o) => IsSocket o
instance (SP.GObject o, O.IsDescendantOf Socket o) => IsSocket o
instance O.HasParentTypes Socket
type instance O.ParentTypes Socket = '[GObject.Object.Object, Gio.Initable.Initable]
toSocket :: (MIO.MonadIO m, IsSocket o) => o -> m Socket
toSocket :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Socket
toSocket = IO Socket -> m Socket
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Socket -> m Socket) -> (o -> IO Socket) -> o -> m Socket
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr Socket -> Socket) -> o -> IO Socket
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr Socket -> Socket
Socket
instance B.GValue.IsGValue (Maybe Socket) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_soup_socket_get_type
gvalueSet_ :: Ptr GValue -> Maybe Socket -> IO ()
gvalueSet_ Ptr GValue
gv Maybe Socket
P.Nothing = Ptr GValue -> Ptr Socket -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr Socket
forall a. Ptr a
FP.nullPtr :: FP.Ptr Socket)
gvalueSet_ Ptr GValue
gv (P.Just Socket
obj) = Socket -> (Ptr Socket -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr Socket
obj (Ptr GValue -> Ptr Socket -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe Socket)
gvalueGet_ Ptr GValue
gv = do
Ptr Socket
ptr <- Ptr GValue -> IO (Ptr Socket)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr Socket)
if Ptr Socket
ptr Ptr Socket -> Ptr Socket -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr Socket
forall a. Ptr a
FP.nullPtr
then Socket -> Maybe Socket
forall a. a -> Maybe a
P.Just (Socket -> Maybe Socket) -> IO Socket -> IO (Maybe Socket)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr Socket -> Socket) -> Ptr Socket -> IO Socket
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr Socket -> Socket
Socket Ptr Socket
ptr
else Maybe Socket -> IO (Maybe Socket)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Socket
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveSocketMethod (t :: Symbol) (o :: *) :: * where
ResolveSocketMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveSocketMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveSocketMethod "connectAsync" o = SocketConnectAsyncMethodInfo
ResolveSocketMethod "connectSync" o = SocketConnectSyncMethodInfo
ResolveSocketMethod "disconnect" o = SocketDisconnectMethodInfo
ResolveSocketMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveSocketMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveSocketMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveSocketMethod "init" o = Gio.Initable.InitableInitMethodInfo
ResolveSocketMethod "isConnected" o = SocketIsConnectedMethodInfo
ResolveSocketMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveSocketMethod "isSsl" o = SocketIsSslMethodInfo
ResolveSocketMethod "listen" o = SocketListenMethodInfo
ResolveSocketMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveSocketMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveSocketMethod "read" o = SocketReadMethodInfo
ResolveSocketMethod "readUntil" o = SocketReadUntilMethodInfo
ResolveSocketMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveSocketMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveSocketMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveSocketMethod "startProxySsl" o = SocketStartProxySslMethodInfo
ResolveSocketMethod "startSsl" o = SocketStartSslMethodInfo
ResolveSocketMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveSocketMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveSocketMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveSocketMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveSocketMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveSocketMethod "write" o = SocketWriteMethodInfo
ResolveSocketMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveSocketMethod "getFd" o = SocketGetFdMethodInfo
ResolveSocketMethod "getLocalAddress" o = SocketGetLocalAddressMethodInfo
ResolveSocketMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveSocketMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveSocketMethod "getRemoteAddress" o = SocketGetRemoteAddressMethodInfo
ResolveSocketMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveSocketMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveSocketMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveSocketMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveSocketMethod t Socket, O.OverloadedMethod info Socket p) => OL.IsLabel t (Socket -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveSocketMethod t Socket, O.OverloadedMethod info Socket p, R.HasField t Socket p) => R.HasField t Socket p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveSocketMethod t Socket, O.OverloadedMethodInfo info Socket) => OL.IsLabel t (O.MethodProxy info Socket) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
type SocketDisconnectedCallback =
IO ()
type C_SocketDisconnectedCallback =
Ptr Socket ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_SocketDisconnectedCallback :: C_SocketDisconnectedCallback -> IO (FunPtr C_SocketDisconnectedCallback)
wrap_SocketDisconnectedCallback ::
GObject a => (a -> SocketDisconnectedCallback) ->
C_SocketDisconnectedCallback
wrap_SocketDisconnectedCallback :: forall a. GObject a => (a -> IO ()) -> C_SocketDisconnectedCallback
wrap_SocketDisconnectedCallback a -> IO ()
gi'cb Ptr Socket
gi'selfPtr Ptr ()
_ = do
Ptr Socket -> (Socket -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr Socket
gi'selfPtr ((Socket -> IO ()) -> IO ()) -> (Socket -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Socket
gi'self -> a -> IO ()
gi'cb (Socket -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Socket
gi'self)
onSocketDisconnected :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketDisconnectedCallback) -> m SignalHandlerId
onSocketDisconnected :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onSocketDisconnected a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
let wrapped' :: C_SocketDisconnectedCallback
wrapped' = (a -> IO ()) -> C_SocketDisconnectedCallback
forall a. GObject a => (a -> IO ()) -> C_SocketDisconnectedCallback
wrap_SocketDisconnectedCallback a -> IO ()
wrapped
FunPtr C_SocketDisconnectedCallback
wrapped'' <- C_SocketDisconnectedCallback
-> IO (FunPtr C_SocketDisconnectedCallback)
mk_SocketDisconnectedCallback C_SocketDisconnectedCallback
wrapped'
a
-> Text
-> FunPtr C_SocketDisconnectedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"disconnected" FunPtr C_SocketDisconnectedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterSocketDisconnected :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketDisconnectedCallback) -> m SignalHandlerId
afterSocketDisconnected :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterSocketDisconnected a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
let wrapped' :: C_SocketDisconnectedCallback
wrapped' = (a -> IO ()) -> C_SocketDisconnectedCallback
forall a. GObject a => (a -> IO ()) -> C_SocketDisconnectedCallback
wrap_SocketDisconnectedCallback a -> IO ()
wrapped
FunPtr C_SocketDisconnectedCallback
wrapped'' <- C_SocketDisconnectedCallback
-> IO (FunPtr C_SocketDisconnectedCallback)
mk_SocketDisconnectedCallback C_SocketDisconnectedCallback
wrapped'
a
-> Text
-> FunPtr C_SocketDisconnectedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"disconnected" FunPtr C_SocketDisconnectedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data SocketDisconnectedSignalInfo
instance SignalInfo SocketDisconnectedSignalInfo where
type HaskellCallbackType SocketDisconnectedSignalInfo = SocketDisconnectedCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_SocketDisconnectedCallback cb
cb'' <- mk_SocketDisconnectedCallback cb'
connectSignalFunPtr obj "disconnected" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket::disconnected"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:signal:disconnected"})
#endif
type SocketEventCallback =
Gio.Enums.SocketClientEvent
-> Gio.IOStream.IOStream
-> IO ()
type C_SocketEventCallback =
Ptr Socket ->
CUInt ->
Ptr Gio.IOStream.IOStream ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_SocketEventCallback :: C_SocketEventCallback -> IO (FunPtr C_SocketEventCallback)
wrap_SocketEventCallback ::
GObject a => (a -> SocketEventCallback) ->
C_SocketEventCallback
wrap_SocketEventCallback :: forall a.
GObject a =>
(a -> SocketEventCallback) -> C_SocketEventCallback
wrap_SocketEventCallback a -> SocketEventCallback
gi'cb Ptr Socket
gi'selfPtr CUInt
event Ptr IOStream
connection Ptr ()
_ = do
let event' :: SocketClientEvent
event' = (Int -> SocketClientEvent
forall a. Enum a => Int -> a
toEnum (Int -> SocketClientEvent)
-> (CUInt -> Int) -> CUInt -> SocketClientEvent
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
event
IOStream
connection' <- ((ManagedPtr IOStream -> IOStream) -> Ptr IOStream -> IO IOStream
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr IOStream -> IOStream
Gio.IOStream.IOStream) Ptr IOStream
connection
Ptr Socket -> (Socket -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr Socket
gi'selfPtr ((Socket -> IO ()) -> IO ()) -> (Socket -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Socket
gi'self -> a -> SocketEventCallback
gi'cb (Socket -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Socket
gi'self) SocketClientEvent
event' IOStream
connection'
onSocketEvent :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketEventCallback) -> m SignalHandlerId
onSocketEvent :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => SocketEventCallback) -> m SignalHandlerId
onSocketEvent a
obj (?self::a) => SocketEventCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> SocketEventCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => SocketEventCallback
SocketEventCallback
cb
let wrapped' :: C_SocketEventCallback
wrapped' = (a -> SocketEventCallback) -> C_SocketEventCallback
forall a.
GObject a =>
(a -> SocketEventCallback) -> C_SocketEventCallback
wrap_SocketEventCallback a -> SocketEventCallback
wrapped
FunPtr C_SocketEventCallback
wrapped'' <- C_SocketEventCallback -> IO (FunPtr C_SocketEventCallback)
mk_SocketEventCallback C_SocketEventCallback
wrapped'
a
-> Text
-> FunPtr C_SocketEventCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"event" FunPtr C_SocketEventCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterSocketEvent :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketEventCallback) -> m SignalHandlerId
afterSocketEvent :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => SocketEventCallback) -> m SignalHandlerId
afterSocketEvent a
obj (?self::a) => SocketEventCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> SocketEventCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => SocketEventCallback
SocketEventCallback
cb
let wrapped' :: C_SocketEventCallback
wrapped' = (a -> SocketEventCallback) -> C_SocketEventCallback
forall a.
GObject a =>
(a -> SocketEventCallback) -> C_SocketEventCallback
wrap_SocketEventCallback a -> SocketEventCallback
wrapped
FunPtr C_SocketEventCallback
wrapped'' <- C_SocketEventCallback -> IO (FunPtr C_SocketEventCallback)
mk_SocketEventCallback C_SocketEventCallback
wrapped'
a
-> Text
-> FunPtr C_SocketEventCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"event" FunPtr C_SocketEventCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data SocketEventSignalInfo
instance SignalInfo SocketEventSignalInfo where
type HaskellCallbackType SocketEventSignalInfo = SocketEventCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_SocketEventCallback cb
cb'' <- mk_SocketEventCallback cb'
connectSignalFunPtr obj "event" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket::event"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:signal:event"})
#endif
type SocketNewConnectionCallback =
Socket
-> IO ()
type C_SocketNewConnectionCallback =
Ptr Socket ->
Ptr Socket ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_SocketNewConnectionCallback :: C_SocketNewConnectionCallback -> IO (FunPtr C_SocketNewConnectionCallback)
wrap_SocketNewConnectionCallback ::
GObject a => (a -> SocketNewConnectionCallback) ->
C_SocketNewConnectionCallback
wrap_SocketNewConnectionCallback :: forall a.
GObject a =>
(a -> Socket -> IO ()) -> C_SocketNewConnectionCallback
wrap_SocketNewConnectionCallback a -> Socket -> IO ()
gi'cb Ptr Socket
gi'selfPtr Ptr Socket
new Ptr ()
_ = do
Socket
new' <- ((ManagedPtr Socket -> Socket) -> Ptr Socket -> IO Socket
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Socket -> Socket
Socket) Ptr Socket
new
Ptr Socket -> (Socket -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr Socket
gi'selfPtr ((Socket -> IO ()) -> IO ()) -> (Socket -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Socket
gi'self -> a -> Socket -> IO ()
gi'cb (Socket -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Socket
gi'self) Socket
new'
onSocketNewConnection :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketNewConnectionCallback) -> m SignalHandlerId
onSocketNewConnection :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => Socket -> IO ()) -> m SignalHandlerId
onSocketNewConnection a
obj (?self::a) => Socket -> IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> Socket -> IO ()
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => Socket -> IO ()
Socket -> IO ()
cb
let wrapped' :: C_SocketNewConnectionCallback
wrapped' = (a -> Socket -> IO ()) -> C_SocketNewConnectionCallback
forall a.
GObject a =>
(a -> Socket -> IO ()) -> C_SocketNewConnectionCallback
wrap_SocketNewConnectionCallback a -> Socket -> IO ()
wrapped
FunPtr C_SocketNewConnectionCallback
wrapped'' <- C_SocketNewConnectionCallback
-> IO (FunPtr C_SocketNewConnectionCallback)
mk_SocketNewConnectionCallback C_SocketNewConnectionCallback
wrapped'
a
-> Text
-> FunPtr C_SocketNewConnectionCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"new-connection" FunPtr C_SocketNewConnectionCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterSocketNewConnection :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketNewConnectionCallback) -> m SignalHandlerId
afterSocketNewConnection :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => Socket -> IO ()) -> m SignalHandlerId
afterSocketNewConnection a
obj (?self::a) => Socket -> IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> Socket -> IO ()
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => Socket -> IO ()
Socket -> IO ()
cb
let wrapped' :: C_SocketNewConnectionCallback
wrapped' = (a -> Socket -> IO ()) -> C_SocketNewConnectionCallback
forall a.
GObject a =>
(a -> Socket -> IO ()) -> C_SocketNewConnectionCallback
wrap_SocketNewConnectionCallback a -> Socket -> IO ()
wrapped
FunPtr C_SocketNewConnectionCallback
wrapped'' <- C_SocketNewConnectionCallback
-> IO (FunPtr C_SocketNewConnectionCallback)
mk_SocketNewConnectionCallback C_SocketNewConnectionCallback
wrapped'
a
-> Text
-> FunPtr C_SocketNewConnectionCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"new-connection" FunPtr C_SocketNewConnectionCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data SocketNewConnectionSignalInfo
instance SignalInfo SocketNewConnectionSignalInfo where
type HaskellCallbackType SocketNewConnectionSignalInfo = SocketNewConnectionCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_SocketNewConnectionCallback cb
cb'' <- mk_SocketNewConnectionCallback cb'
connectSignalFunPtr obj "new-connection" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket::new-connection"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:signal:newConnection"})
#endif
type SocketReadableCallback =
IO ()
type C_SocketReadableCallback =
Ptr Socket ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_SocketReadableCallback :: C_SocketReadableCallback -> IO (FunPtr C_SocketReadableCallback)
wrap_SocketReadableCallback ::
GObject a => (a -> SocketReadableCallback) ->
C_SocketReadableCallback
wrap_SocketReadableCallback :: forall a. GObject a => (a -> IO ()) -> C_SocketDisconnectedCallback
wrap_SocketReadableCallback a -> IO ()
gi'cb Ptr Socket
gi'selfPtr Ptr ()
_ = do
Ptr Socket -> (Socket -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr Socket
gi'selfPtr ((Socket -> IO ()) -> IO ()) -> (Socket -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Socket
gi'self -> a -> IO ()
gi'cb (Socket -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Socket
gi'self)
onSocketReadable :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketReadableCallback) -> m SignalHandlerId
onSocketReadable :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onSocketReadable a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
let wrapped' :: C_SocketDisconnectedCallback
wrapped' = (a -> IO ()) -> C_SocketDisconnectedCallback
forall a. GObject a => (a -> IO ()) -> C_SocketDisconnectedCallback
wrap_SocketReadableCallback a -> IO ()
wrapped
FunPtr C_SocketDisconnectedCallback
wrapped'' <- C_SocketDisconnectedCallback
-> IO (FunPtr C_SocketDisconnectedCallback)
mk_SocketReadableCallback C_SocketDisconnectedCallback
wrapped'
a
-> Text
-> FunPtr C_SocketDisconnectedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"readable" FunPtr C_SocketDisconnectedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterSocketReadable :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketReadableCallback) -> m SignalHandlerId
afterSocketReadable :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterSocketReadable a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
let wrapped' :: C_SocketDisconnectedCallback
wrapped' = (a -> IO ()) -> C_SocketDisconnectedCallback
forall a. GObject a => (a -> IO ()) -> C_SocketDisconnectedCallback
wrap_SocketReadableCallback a -> IO ()
wrapped
FunPtr C_SocketDisconnectedCallback
wrapped'' <- C_SocketDisconnectedCallback
-> IO (FunPtr C_SocketDisconnectedCallback)
mk_SocketReadableCallback C_SocketDisconnectedCallback
wrapped'
a
-> Text
-> FunPtr C_SocketDisconnectedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"readable" FunPtr C_SocketDisconnectedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data SocketReadableSignalInfo
instance SignalInfo SocketReadableSignalInfo where
type HaskellCallbackType SocketReadableSignalInfo = SocketReadableCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_SocketReadableCallback cb
cb'' <- mk_SocketReadableCallback cb'
connectSignalFunPtr obj "readable" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket::readable"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:signal:readable"})
#endif
type SocketWritableCallback =
IO ()
type C_SocketWritableCallback =
Ptr Socket ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mk_SocketWritableCallback :: C_SocketWritableCallback -> IO (FunPtr C_SocketWritableCallback)
wrap_SocketWritableCallback ::
GObject a => (a -> SocketWritableCallback) ->
C_SocketWritableCallback
wrap_SocketWritableCallback :: forall a. GObject a => (a -> IO ()) -> C_SocketDisconnectedCallback
wrap_SocketWritableCallback a -> IO ()
gi'cb Ptr Socket
gi'selfPtr Ptr ()
_ = do
Ptr Socket -> (Socket -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr Socket
gi'selfPtr ((Socket -> IO ()) -> IO ()) -> (Socket -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \Socket
gi'self -> a -> IO ()
gi'cb (Socket -> a
forall a b. Coercible a b => a -> b
Coerce.coerce Socket
gi'self)
onSocketWritable :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketWritableCallback) -> m SignalHandlerId
onSocketWritable :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
onSocketWritable a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
let wrapped' :: C_SocketDisconnectedCallback
wrapped' = (a -> IO ()) -> C_SocketDisconnectedCallback
forall a. GObject a => (a -> IO ()) -> C_SocketDisconnectedCallback
wrap_SocketWritableCallback a -> IO ()
wrapped
FunPtr C_SocketDisconnectedCallback
wrapped'' <- C_SocketDisconnectedCallback
-> IO (FunPtr C_SocketDisconnectedCallback)
mk_SocketWritableCallback C_SocketDisconnectedCallback
wrapped'
a
-> Text
-> FunPtr C_SocketDisconnectedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"writable" FunPtr C_SocketDisconnectedCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterSocketWritable :: (IsSocket a, MonadIO m) => a -> ((?self :: a) => SocketWritableCallback) -> m SignalHandlerId
afterSocketWritable :: forall a (m :: * -> *).
(IsSocket a, MonadIO m) =>
a -> ((?self::a) => IO ()) -> m SignalHandlerId
afterSocketWritable a
obj (?self::a) => IO ()
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
let wrapped :: a -> IO ()
wrapped a
self = let ?self = a
?self::a
self in IO ()
(?self::a) => IO ()
cb
let wrapped' :: C_SocketDisconnectedCallback
wrapped' = (a -> IO ()) -> C_SocketDisconnectedCallback
forall a. GObject a => (a -> IO ()) -> C_SocketDisconnectedCallback
wrap_SocketWritableCallback a -> IO ()
wrapped
FunPtr C_SocketDisconnectedCallback
wrapped'' <- C_SocketDisconnectedCallback
-> IO (FunPtr C_SocketDisconnectedCallback)
mk_SocketWritableCallback C_SocketDisconnectedCallback
wrapped'
a
-> Text
-> FunPtr C_SocketDisconnectedCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"writable" FunPtr C_SocketDisconnectedCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data SocketWritableSignalInfo
instance SignalInfo SocketWritableSignalInfo where
type HaskellCallbackType SocketWritableSignalInfo = SocketWritableCallback
connectSignal obj cb connectMode detail = do
let cb' = wrap_SocketWritableCallback cb
cb'' <- mk_SocketWritableCallback cb'
connectSignalFunPtr obj "writable" cb'' connectMode detail
dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket::writable"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:signal:writable"})
#endif
getSocketAsyncContext :: (MonadIO m, IsSocket o) => o -> m (Ptr ())
getSocketAsyncContext :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m (Ptr ())
getSocketAsyncContext o
obj = IO (Ptr ()) -> m (Ptr ())
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Ptr ()) -> m (Ptr ())) -> IO (Ptr ()) -> m (Ptr ())
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Ptr ())
forall a b. GObject a => a -> String -> IO (Ptr b)
B.Properties.getObjectPropertyPtr o
obj String
"async-context"
constructSocketAsyncContext :: (IsSocket o, MIO.MonadIO m) => Ptr () -> m (GValueConstruct o)
constructSocketAsyncContext :: forall o (m :: * -> *).
(IsSocket o, MonadIO m) =>
Ptr () -> m (GValueConstruct o)
constructSocketAsyncContext Ptr ()
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Ptr () -> IO (GValueConstruct o)
forall b o. String -> Ptr b -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyPtr String
"async-context" Ptr ()
val
#if defined(ENABLE_OVERLOADING)
data SocketAsyncContextPropertyInfo
instance AttrInfo SocketAsyncContextPropertyInfo where
type AttrAllowedOps SocketAsyncContextPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint SocketAsyncContextPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketAsyncContextPropertyInfo = (~) (Ptr ())
type AttrTransferTypeConstraint SocketAsyncContextPropertyInfo = (~) (Ptr ())
type AttrTransferType SocketAsyncContextPropertyInfo = Ptr ()
type AttrGetType SocketAsyncContextPropertyInfo = (Ptr ())
type AttrLabel SocketAsyncContextPropertyInfo = "async-context"
type AttrOrigin SocketAsyncContextPropertyInfo = Socket
attrGet = getSocketAsyncContext
attrSet = undefined
attrTransfer _ v = do
return v
attrConstruct = constructSocketAsyncContext
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.asyncContext"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:asyncContext"
})
#endif
getSocketFd :: (MonadIO m, IsSocket o) => o -> m Int32
getSocketFd :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Int32
getSocketFd o
obj = IO Int32 -> m Int32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Int32 -> m Int32) -> IO Int32 -> m Int32
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Int32
forall a. GObject a => a -> String -> IO Int32
B.Properties.getObjectPropertyInt32 o
obj String
"fd"
constructSocketFd :: (IsSocket o, MIO.MonadIO m) => Int32 -> m (GValueConstruct o)
constructSocketFd :: forall o (m :: * -> *).
(IsSocket o, MonadIO m) =>
Int32 -> m (GValueConstruct o)
constructSocketFd Int32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Int32 -> IO (GValueConstruct o)
forall o. String -> Int32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyInt32 String
"fd" Int32
val
#if defined(ENABLE_OVERLOADING)
data SocketFdPropertyInfo
instance AttrInfo SocketFdPropertyInfo where
type AttrAllowedOps SocketFdPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint SocketFdPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketFdPropertyInfo = (~) Int32
type AttrTransferTypeConstraint SocketFdPropertyInfo = (~) Int32
type AttrTransferType SocketFdPropertyInfo = Int32
type AttrGetType SocketFdPropertyInfo = Int32
type AttrLabel SocketFdPropertyInfo = "fd"
type AttrOrigin SocketFdPropertyInfo = Socket
attrGet = getSocketFd
attrSet = undefined
attrTransfer _ v = do
return v
attrConstruct = constructSocketFd
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.fd"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:fd"
})
#endif
constructSocketGsocket :: (IsSocket o, MIO.MonadIO m, Gio.Socket.IsSocket a) => a -> m (GValueConstruct o)
constructSocketGsocket :: forall o (m :: * -> *) a.
(IsSocket o, MonadIO m, IsSocket a) =>
a -> m (GValueConstruct o)
constructSocketGsocket a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"gsocket" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)
#if defined(ENABLE_OVERLOADING)
data SocketGsocketPropertyInfo
instance AttrInfo SocketGsocketPropertyInfo where
type AttrAllowedOps SocketGsocketPropertyInfo = '[ 'AttrConstruct, 'AttrClear]
type AttrBaseTypeConstraint SocketGsocketPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketGsocketPropertyInfo = Gio.Socket.IsSocket
type AttrTransferTypeConstraint SocketGsocketPropertyInfo = Gio.Socket.IsSocket
type AttrTransferType SocketGsocketPropertyInfo = Gio.Socket.Socket
type AttrGetType SocketGsocketPropertyInfo = ()
type AttrLabel SocketGsocketPropertyInfo = "gsocket"
type AttrOrigin SocketGsocketPropertyInfo = Socket
attrGet = undefined
attrSet = undefined
attrTransfer _ v = do
unsafeCastTo Gio.Socket.Socket v
attrConstruct = constructSocketGsocket
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.gsocket"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:gsocket"
})
#endif
constructSocketIostream :: (IsSocket o, MIO.MonadIO m, Gio.IOStream.IsIOStream a) => a -> m (GValueConstruct o)
constructSocketIostream :: forall o (m :: * -> *) a.
(IsSocket o, MonadIO m, IsIOStream a) =>
a -> m (GValueConstruct o)
constructSocketIostream a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"iostream" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)
#if defined(ENABLE_OVERLOADING)
data SocketIostreamPropertyInfo
instance AttrInfo SocketIostreamPropertyInfo where
type AttrAllowedOps SocketIostreamPropertyInfo = '[ 'AttrConstruct, 'AttrClear]
type AttrBaseTypeConstraint SocketIostreamPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketIostreamPropertyInfo = Gio.IOStream.IsIOStream
type AttrTransferTypeConstraint SocketIostreamPropertyInfo = Gio.IOStream.IsIOStream
type AttrTransferType SocketIostreamPropertyInfo = Gio.IOStream.IOStream
type AttrGetType SocketIostreamPropertyInfo = ()
type AttrLabel SocketIostreamPropertyInfo = "iostream"
type AttrOrigin SocketIostreamPropertyInfo = Socket
attrGet = undefined
attrSet = undefined
attrTransfer _ v = do
unsafeCastTo Gio.IOStream.IOStream v
attrConstruct = constructSocketIostream
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.iostream"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:iostream"
})
#endif
getSocketIpv6Only :: (MonadIO m, IsSocket o) => o -> m Bool
getSocketIpv6Only :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Bool
getSocketIpv6Only o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"ipv6-only"
setSocketIpv6Only :: (MonadIO m, IsSocket o) => o -> Bool -> m ()
setSocketIpv6Only :: forall (m :: * -> *) o.
(MonadIO m, IsSocket o) =>
o -> Bool -> m ()
setSocketIpv6Only o
obj Bool
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"ipv6-only" Bool
val
constructSocketIpv6Only :: (IsSocket o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSocketIpv6Only :: forall o (m :: * -> *).
(IsSocket o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSocketIpv6Only Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"ipv6-only" Bool
val
#if defined(ENABLE_OVERLOADING)
data SocketIpv6OnlyPropertyInfo
instance AttrInfo SocketIpv6OnlyPropertyInfo where
type AttrAllowedOps SocketIpv6OnlyPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint SocketIpv6OnlyPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketIpv6OnlyPropertyInfo = (~) Bool
type AttrTransferTypeConstraint SocketIpv6OnlyPropertyInfo = (~) Bool
type AttrTransferType SocketIpv6OnlyPropertyInfo = Bool
type AttrGetType SocketIpv6OnlyPropertyInfo = Bool
type AttrLabel SocketIpv6OnlyPropertyInfo = "ipv6-only"
type AttrOrigin SocketIpv6OnlyPropertyInfo = Socket
attrGet = getSocketIpv6Only
attrSet = setSocketIpv6Only
attrTransfer _ v = do
return v
attrConstruct = constructSocketIpv6Only
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.ipv6Only"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:ipv6Only"
})
#endif
getSocketIsServer :: (MonadIO m, IsSocket o) => o -> m Bool
getSocketIsServer :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Bool
getSocketIsServer o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"is-server"
#if defined(ENABLE_OVERLOADING)
data SocketIsServerPropertyInfo
instance AttrInfo SocketIsServerPropertyInfo where
type AttrAllowedOps SocketIsServerPropertyInfo = '[ 'AttrGet]
type AttrBaseTypeConstraint SocketIsServerPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketIsServerPropertyInfo = (~) ()
type AttrTransferTypeConstraint SocketIsServerPropertyInfo = (~) ()
type AttrTransferType SocketIsServerPropertyInfo = ()
type AttrGetType SocketIsServerPropertyInfo = Bool
type AttrLabel SocketIsServerPropertyInfo = "is-server"
type AttrOrigin SocketIsServerPropertyInfo = Socket
attrGet = getSocketIsServer
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.isServer"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:isServer"
})
#endif
getSocketLocalAddress :: (MonadIO m, IsSocket o) => o -> m Soup.Address.Address
getSocketLocalAddress :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Address
getSocketLocalAddress o
obj = IO Address -> m Address
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Address -> m Address) -> IO Address -> m Address
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Address) -> IO Address
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getSocketLocalAddress" (IO (Maybe Address) -> IO Address)
-> IO (Maybe Address) -> IO Address
forall a b. (a -> b) -> a -> b
$ o
-> String -> (ManagedPtr Address -> Address) -> IO (Maybe Address)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"local-address" ManagedPtr Address -> Address
Soup.Address.Address
constructSocketLocalAddress :: (IsSocket o, MIO.MonadIO m, Soup.Address.IsAddress a) => a -> m (GValueConstruct o)
constructSocketLocalAddress :: forall o (m :: * -> *) a.
(IsSocket o, MonadIO m, IsAddress a) =>
a -> m (GValueConstruct o)
constructSocketLocalAddress a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"local-address" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)
#if defined(ENABLE_OVERLOADING)
data SocketLocalAddressPropertyInfo
instance AttrInfo SocketLocalAddressPropertyInfo where
type AttrAllowedOps SocketLocalAddressPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint SocketLocalAddressPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketLocalAddressPropertyInfo = Soup.Address.IsAddress
type AttrTransferTypeConstraint SocketLocalAddressPropertyInfo = Soup.Address.IsAddress
type AttrTransferType SocketLocalAddressPropertyInfo = Soup.Address.Address
type AttrGetType SocketLocalAddressPropertyInfo = Soup.Address.Address
type AttrLabel SocketLocalAddressPropertyInfo = "local-address"
type AttrOrigin SocketLocalAddressPropertyInfo = Socket
attrGet = getSocketLocalAddress
attrSet = undefined
attrTransfer _ v = do
unsafeCastTo Soup.Address.Address v
attrConstruct = constructSocketLocalAddress
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.localAddress"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:localAddress"
})
#endif
getSocketNonBlocking :: (MonadIO m, IsSocket o) => o -> m Bool
getSocketNonBlocking :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Bool
getSocketNonBlocking o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"non-blocking"
setSocketNonBlocking :: (MonadIO m, IsSocket o) => o -> Bool -> m ()
setSocketNonBlocking :: forall (m :: * -> *) o.
(MonadIO m, IsSocket o) =>
o -> Bool -> m ()
setSocketNonBlocking o
obj Bool
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
o -> String -> Bool -> IO ()
forall a. GObject a => a -> String -> Bool -> IO ()
B.Properties.setObjectPropertyBool o
obj String
"non-blocking" Bool
val
constructSocketNonBlocking :: (IsSocket o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSocketNonBlocking :: forall o (m :: * -> *).
(IsSocket o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSocketNonBlocking Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"non-blocking" Bool
val
#if defined(ENABLE_OVERLOADING)
data SocketNonBlockingPropertyInfo
instance AttrInfo SocketNonBlockingPropertyInfo where
type AttrAllowedOps SocketNonBlockingPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint SocketNonBlockingPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketNonBlockingPropertyInfo = (~) Bool
type AttrTransferTypeConstraint SocketNonBlockingPropertyInfo = (~) Bool
type AttrTransferType SocketNonBlockingPropertyInfo = Bool
type AttrGetType SocketNonBlockingPropertyInfo = Bool
type AttrLabel SocketNonBlockingPropertyInfo = "non-blocking"
type AttrOrigin SocketNonBlockingPropertyInfo = Socket
attrGet = getSocketNonBlocking
attrSet = setSocketNonBlocking
attrTransfer _ v = do
return v
attrConstruct = constructSocketNonBlocking
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.nonBlocking"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:nonBlocking"
})
#endif
getSocketRemoteAddress :: (MonadIO m, IsSocket o) => o -> m Soup.Address.Address
getSocketRemoteAddress :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Address
getSocketRemoteAddress o
obj = IO Address -> m Address
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Address -> m Address) -> IO Address -> m Address
forall a b. (a -> b) -> a -> b
$ Text -> IO (Maybe Address) -> IO Address
forall a. HasCallStack => Text -> IO (Maybe a) -> IO a
checkUnexpectedNothing Text
"getSocketRemoteAddress" (IO (Maybe Address) -> IO Address)
-> IO (Maybe Address) -> IO Address
forall a b. (a -> b) -> a -> b
$ o
-> String -> (ManagedPtr Address -> Address) -> IO (Maybe Address)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"remote-address" ManagedPtr Address -> Address
Soup.Address.Address
constructSocketRemoteAddress :: (IsSocket o, MIO.MonadIO m, Soup.Address.IsAddress a) => a -> m (GValueConstruct o)
constructSocketRemoteAddress :: forall o (m :: * -> *) a.
(IsSocket o, MonadIO m, IsAddress a) =>
a -> m (GValueConstruct o)
constructSocketRemoteAddress a
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe a -> IO (GValueConstruct o)
forall a o.
GObject a =>
String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyObject String
"remote-address" (a -> Maybe a
forall a. a -> Maybe a
P.Just a
val)
#if defined(ENABLE_OVERLOADING)
data SocketRemoteAddressPropertyInfo
instance AttrInfo SocketRemoteAddressPropertyInfo where
type AttrAllowedOps SocketRemoteAddressPropertyInfo = '[ 'AttrConstruct, 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint SocketRemoteAddressPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketRemoteAddressPropertyInfo = Soup.Address.IsAddress
type AttrTransferTypeConstraint SocketRemoteAddressPropertyInfo = Soup.Address.IsAddress
type AttrTransferType SocketRemoteAddressPropertyInfo = Soup.Address.Address
type AttrGetType SocketRemoteAddressPropertyInfo = Soup.Address.Address
type AttrLabel SocketRemoteAddressPropertyInfo = "remote-address"
type AttrOrigin SocketRemoteAddressPropertyInfo = Socket
attrGet = getSocketRemoteAddress
attrSet = undefined
attrTransfer _ v = do
unsafeCastTo Soup.Address.Address v
attrConstruct = constructSocketRemoteAddress
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.remoteAddress"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:remoteAddress"
})
#endif
getSocketSslCreds :: (MonadIO m, IsSocket o) => o -> m (Ptr ())
getSocketSslCreds :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m (Ptr ())
getSocketSslCreds o
obj = IO (Ptr ()) -> m (Ptr ())
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Ptr ()) -> m (Ptr ())) -> IO (Ptr ()) -> m (Ptr ())
forall a b. (a -> b) -> a -> b
$ o -> String -> IO (Ptr ())
forall a b. GObject a => a -> String -> IO (Ptr b)
B.Properties.getObjectPropertyPtr o
obj String
"ssl-creds"
setSocketSslCreds :: (MonadIO m, IsSocket o) => o -> Ptr () -> m ()
setSocketSslCreds :: forall (m :: * -> *) o.
(MonadIO m, IsSocket o) =>
o -> Ptr () -> m ()
setSocketSslCreds o
obj Ptr ()
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
o -> String -> Ptr () -> IO ()
forall a b. GObject a => a -> String -> Ptr b -> IO ()
B.Properties.setObjectPropertyPtr o
obj String
"ssl-creds" Ptr ()
val
constructSocketSslCreds :: (IsSocket o, MIO.MonadIO m) => Ptr () -> m (GValueConstruct o)
constructSocketSslCreds :: forall o (m :: * -> *).
(IsSocket o, MonadIO m) =>
Ptr () -> m (GValueConstruct o)
constructSocketSslCreds Ptr ()
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Ptr () -> IO (GValueConstruct o)
forall b o. String -> Ptr b -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyPtr String
"ssl-creds" Ptr ()
val
#if defined(ENABLE_OVERLOADING)
data SocketSslCredsPropertyInfo
instance AttrInfo SocketSslCredsPropertyInfo where
type AttrAllowedOps SocketSslCredsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint SocketSslCredsPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketSslCredsPropertyInfo = (~) (Ptr ())
type AttrTransferTypeConstraint SocketSslCredsPropertyInfo = (~) (Ptr ())
type AttrTransferType SocketSslCredsPropertyInfo = Ptr ()
type AttrGetType SocketSslCredsPropertyInfo = (Ptr ())
type AttrLabel SocketSslCredsPropertyInfo = "ssl-creds"
type AttrOrigin SocketSslCredsPropertyInfo = Socket
attrGet = getSocketSslCreds
attrSet = setSocketSslCreds
attrTransfer _ v = do
return v
attrConstruct = constructSocketSslCreds
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.sslCreds"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:sslCreds"
})
#endif
getSocketSslFallback :: (MonadIO m, IsSocket o) => o -> m Bool
getSocketSslFallback :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Bool
getSocketSslFallback o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"ssl-fallback"
constructSocketSslFallback :: (IsSocket o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSocketSslFallback :: forall o (m :: * -> *).
(IsSocket o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSocketSslFallback Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"ssl-fallback" Bool
val
#if defined(ENABLE_OVERLOADING)
data SocketSslFallbackPropertyInfo
instance AttrInfo SocketSslFallbackPropertyInfo where
type AttrAllowedOps SocketSslFallbackPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint SocketSslFallbackPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketSslFallbackPropertyInfo = (~) Bool
type AttrTransferTypeConstraint SocketSslFallbackPropertyInfo = (~) Bool
type AttrTransferType SocketSslFallbackPropertyInfo = Bool
type AttrGetType SocketSslFallbackPropertyInfo = Bool
type AttrLabel SocketSslFallbackPropertyInfo = "ssl-fallback"
type AttrOrigin SocketSslFallbackPropertyInfo = Socket
attrGet = getSocketSslFallback
attrSet = undefined
attrTransfer _ v = do
return v
attrConstruct = constructSocketSslFallback
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.sslFallback"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:sslFallback"
})
#endif
getSocketSslStrict :: (MonadIO m, IsSocket o) => o -> m Bool
getSocketSslStrict :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Bool
getSocketSslStrict o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"ssl-strict"
constructSocketSslStrict :: (IsSocket o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSocketSslStrict :: forall o (m :: * -> *).
(IsSocket o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSocketSslStrict Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"ssl-strict" Bool
val
#if defined(ENABLE_OVERLOADING)
data SocketSslStrictPropertyInfo
instance AttrInfo SocketSslStrictPropertyInfo where
type AttrAllowedOps SocketSslStrictPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint SocketSslStrictPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketSslStrictPropertyInfo = (~) Bool
type AttrTransferTypeConstraint SocketSslStrictPropertyInfo = (~) Bool
type AttrTransferType SocketSslStrictPropertyInfo = Bool
type AttrGetType SocketSslStrictPropertyInfo = Bool
type AttrLabel SocketSslStrictPropertyInfo = "ssl-strict"
type AttrOrigin SocketSslStrictPropertyInfo = Socket
attrGet = getSocketSslStrict
attrSet = undefined
attrTransfer _ v = do
return v
attrConstruct = constructSocketSslStrict
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.sslStrict"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:sslStrict"
})
#endif
getSocketTimeout :: (MonadIO m, IsSocket o) => o -> m Word32
getSocketTimeout :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Word32
getSocketTimeout o
obj = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.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 String
"timeout"
setSocketTimeout :: (MonadIO m, IsSocket o) => o -> Word32 -> m ()
setSocketTimeout :: forall (m :: * -> *) o.
(MonadIO m, IsSocket o) =>
o -> Word32 -> m ()
setSocketTimeout o
obj Word32
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
o -> String -> Word32 -> IO ()
forall a. GObject a => a -> String -> Word32 -> IO ()
B.Properties.setObjectPropertyUInt32 o
obj String
"timeout" Word32
val
constructSocketTimeout :: (IsSocket o, MIO.MonadIO m) => Word32 -> m (GValueConstruct o)
constructSocketTimeout :: forall o (m :: * -> *).
(IsSocket o, MonadIO m) =>
Word32 -> m (GValueConstruct o)
constructSocketTimeout Word32
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Word32 -> IO (GValueConstruct o)
forall o. String -> Word32 -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyUInt32 String
"timeout" Word32
val
#if defined(ENABLE_OVERLOADING)
data SocketTimeoutPropertyInfo
instance AttrInfo SocketTimeoutPropertyInfo where
type AttrAllowedOps SocketTimeoutPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint SocketTimeoutPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketTimeoutPropertyInfo = (~) Word32
type AttrTransferTypeConstraint SocketTimeoutPropertyInfo = (~) Word32
type AttrTransferType SocketTimeoutPropertyInfo = Word32
type AttrGetType SocketTimeoutPropertyInfo = Word32
type AttrLabel SocketTimeoutPropertyInfo = "timeout"
type AttrOrigin SocketTimeoutPropertyInfo = Socket
attrGet = getSocketTimeout
attrSet = setSocketTimeout
attrTransfer _ v = do
return v
attrConstruct = constructSocketTimeout
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.timeout"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:timeout"
})
#endif
getSocketTlsCertificate :: (MonadIO m, IsSocket o) => o -> m (Maybe Gio.TlsCertificate.TlsCertificate)
getSocketTlsCertificate :: forall (m :: * -> *) o.
(MonadIO m, IsSocket o) =>
o -> m (Maybe TlsCertificate)
getSocketTlsCertificate o
obj = IO (Maybe TlsCertificate) -> m (Maybe TlsCertificate)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe TlsCertificate) -> m (Maybe TlsCertificate))
-> IO (Maybe TlsCertificate) -> m (Maybe TlsCertificate)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr TlsCertificate -> TlsCertificate)
-> IO (Maybe TlsCertificate)
forall a b.
(GObject a, GObject b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyObject o
obj String
"tls-certificate" ManagedPtr TlsCertificate -> TlsCertificate
Gio.TlsCertificate.TlsCertificate
#if defined(ENABLE_OVERLOADING)
data SocketTlsCertificatePropertyInfo
instance AttrInfo SocketTlsCertificatePropertyInfo where
type AttrAllowedOps SocketTlsCertificatePropertyInfo = '[ 'AttrGet, 'AttrClear]
type AttrBaseTypeConstraint SocketTlsCertificatePropertyInfo = IsSocket
type AttrSetTypeConstraint SocketTlsCertificatePropertyInfo = (~) ()
type AttrTransferTypeConstraint SocketTlsCertificatePropertyInfo = (~) ()
type AttrTransferType SocketTlsCertificatePropertyInfo = ()
type AttrGetType SocketTlsCertificatePropertyInfo = (Maybe Gio.TlsCertificate.TlsCertificate)
type AttrLabel SocketTlsCertificatePropertyInfo = "tls-certificate"
type AttrOrigin SocketTlsCertificatePropertyInfo = Socket
attrGet = getSocketTlsCertificate
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.tlsCertificate"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:tlsCertificate"
})
#endif
getSocketTlsErrors :: (MonadIO m, IsSocket o) => o -> m [Gio.Flags.TlsCertificateFlags]
getSocketTlsErrors :: forall (m :: * -> *) o.
(MonadIO m, IsSocket o) =>
o -> m [TlsCertificateFlags]
getSocketTlsErrors o
obj = IO [TlsCertificateFlags] -> m [TlsCertificateFlags]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO [TlsCertificateFlags] -> m [TlsCertificateFlags])
-> IO [TlsCertificateFlags] -> m [TlsCertificateFlags]
forall a b. (a -> b) -> a -> b
$ o -> String -> IO [TlsCertificateFlags]
forall a b.
(GObject a, IsGFlag b, BoxedFlags b) =>
a -> String -> IO [b]
B.Properties.getObjectPropertyFlags o
obj String
"tls-errors"
#if defined(ENABLE_OVERLOADING)
data SocketTlsErrorsPropertyInfo
instance AttrInfo SocketTlsErrorsPropertyInfo where
type AttrAllowedOps SocketTlsErrorsPropertyInfo = '[ 'AttrGet]
type AttrBaseTypeConstraint SocketTlsErrorsPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketTlsErrorsPropertyInfo = (~) ()
type AttrTransferTypeConstraint SocketTlsErrorsPropertyInfo = (~) ()
type AttrTransferType SocketTlsErrorsPropertyInfo = ()
type AttrGetType SocketTlsErrorsPropertyInfo = [Gio.Flags.TlsCertificateFlags]
type AttrLabel SocketTlsErrorsPropertyInfo = "tls-errors"
type AttrOrigin SocketTlsErrorsPropertyInfo = Socket
attrGet = getSocketTlsErrors
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.tlsErrors"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:tlsErrors"
})
#endif
getSocketTrustedCertificate :: (MonadIO m, IsSocket o) => o -> m Bool
getSocketTrustedCertificate :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Bool
getSocketTrustedCertificate o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"trusted-certificate"
#if defined(ENABLE_OVERLOADING)
data SocketTrustedCertificatePropertyInfo
instance AttrInfo SocketTrustedCertificatePropertyInfo where
type AttrAllowedOps SocketTrustedCertificatePropertyInfo = '[ 'AttrGet]
type AttrBaseTypeConstraint SocketTrustedCertificatePropertyInfo = IsSocket
type AttrSetTypeConstraint SocketTrustedCertificatePropertyInfo = (~) ()
type AttrTransferTypeConstraint SocketTrustedCertificatePropertyInfo = (~) ()
type AttrTransferType SocketTrustedCertificatePropertyInfo = ()
type AttrGetType SocketTrustedCertificatePropertyInfo = Bool
type AttrLabel SocketTrustedCertificatePropertyInfo = "trusted-certificate"
type AttrOrigin SocketTrustedCertificatePropertyInfo = Socket
attrGet = getSocketTrustedCertificate
attrSet = undefined
attrTransfer _ = undefined
attrConstruct = undefined
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.trustedCertificate"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:trustedCertificate"
})
#endif
getSocketUseThreadContext :: (MonadIO m, IsSocket o) => o -> m Bool
getSocketUseThreadContext :: forall (m :: * -> *) o. (MonadIO m, IsSocket o) => o -> m Bool
getSocketUseThreadContext o
obj = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ o -> String -> IO Bool
forall a. GObject a => a -> String -> IO Bool
B.Properties.getObjectPropertyBool o
obj String
"use-thread-context"
constructSocketUseThreadContext :: (IsSocket o, MIO.MonadIO m) => Bool -> m (GValueConstruct o)
constructSocketUseThreadContext :: forall o (m :: * -> *).
(IsSocket o, MonadIO m) =>
Bool -> m (GValueConstruct o)
constructSocketUseThreadContext Bool
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Bool -> IO (GValueConstruct o)
forall o. String -> Bool -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBool String
"use-thread-context" Bool
val
#if defined(ENABLE_OVERLOADING)
data SocketUseThreadContextPropertyInfo
instance AttrInfo SocketUseThreadContextPropertyInfo where
type AttrAllowedOps SocketUseThreadContextPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrBaseTypeConstraint SocketUseThreadContextPropertyInfo = IsSocket
type AttrSetTypeConstraint SocketUseThreadContextPropertyInfo = (~) Bool
type AttrTransferTypeConstraint SocketUseThreadContextPropertyInfo = (~) Bool
type AttrTransferType SocketUseThreadContextPropertyInfo = Bool
type AttrGetType SocketUseThreadContextPropertyInfo = Bool
type AttrLabel SocketUseThreadContextPropertyInfo = "use-thread-context"
type AttrOrigin SocketUseThreadContextPropertyInfo = Socket
attrGet = getSocketUseThreadContext
attrSet = undefined
attrTransfer _ v = do
return v
attrConstruct = constructSocketUseThreadContext
attrClear = undefined
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.useThreadContext"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#g:attr:useThreadContext"
})
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList Socket
type instance O.AttributeList Socket = SocketAttributeList
type SocketAttributeList = ('[ '("asyncContext", SocketAsyncContextPropertyInfo), '("fd", SocketFdPropertyInfo), '("gsocket", SocketGsocketPropertyInfo), '("iostream", SocketIostreamPropertyInfo), '("ipv6Only", SocketIpv6OnlyPropertyInfo), '("isServer", SocketIsServerPropertyInfo), '("localAddress", SocketLocalAddressPropertyInfo), '("nonBlocking", SocketNonBlockingPropertyInfo), '("remoteAddress", SocketRemoteAddressPropertyInfo), '("sslCreds", SocketSslCredsPropertyInfo), '("sslFallback", SocketSslFallbackPropertyInfo), '("sslStrict", SocketSslStrictPropertyInfo), '("timeout", SocketTimeoutPropertyInfo), '("tlsCertificate", SocketTlsCertificatePropertyInfo), '("tlsErrors", SocketTlsErrorsPropertyInfo), '("trustedCertificate", SocketTrustedCertificatePropertyInfo), '("useThreadContext", SocketUseThreadContextPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
socketAsyncContext :: AttrLabelProxy "asyncContext"
socketAsyncContext = AttrLabelProxy
socketFd :: AttrLabelProxy "fd"
socketFd = AttrLabelProxy
socketGsocket :: AttrLabelProxy "gsocket"
socketGsocket = AttrLabelProxy
socketIostream :: AttrLabelProxy "iostream"
socketIostream = AttrLabelProxy
socketIpv6Only :: AttrLabelProxy "ipv6Only"
socketIpv6Only = AttrLabelProxy
socketIsServer :: AttrLabelProxy "isServer"
socketIsServer = AttrLabelProxy
socketLocalAddress :: AttrLabelProxy "localAddress"
socketLocalAddress = AttrLabelProxy
socketNonBlocking :: AttrLabelProxy "nonBlocking"
socketNonBlocking = AttrLabelProxy
socketRemoteAddress :: AttrLabelProxy "remoteAddress"
socketRemoteAddress = AttrLabelProxy
socketSslCreds :: AttrLabelProxy "sslCreds"
socketSslCreds = AttrLabelProxy
socketSslFallback :: AttrLabelProxy "sslFallback"
socketSslFallback = AttrLabelProxy
socketSslStrict :: AttrLabelProxy "sslStrict"
socketSslStrict = AttrLabelProxy
socketTimeout :: AttrLabelProxy "timeout"
socketTimeout = AttrLabelProxy
socketTlsCertificate :: AttrLabelProxy "tlsCertificate"
socketTlsCertificate = AttrLabelProxy
socketTlsErrors :: AttrLabelProxy "tlsErrors"
socketTlsErrors = AttrLabelProxy
socketTrustedCertificate :: AttrLabelProxy "trustedCertificate"
socketTrustedCertificate = AttrLabelProxy
socketUseThreadContext :: AttrLabelProxy "useThreadContext"
socketUseThreadContext = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList Socket = SocketSignalList
type SocketSignalList = ('[ '("disconnected", SocketDisconnectedSignalInfo), '("event", SocketEventSignalInfo), '("newConnection", SocketNewConnectionSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("readable", SocketReadableSignalInfo), '("writable", SocketWritableSignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "soup_socket_connect_async" soup_socket_connect_async ::
Ptr Socket ->
Ptr Gio.Cancellable.Cancellable ->
FunPtr Soup.Callbacks.C_SocketCallback ->
Ptr () ->
IO ()
socketConnectAsync ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) =>
a
-> Maybe (b)
-> Soup.Callbacks.SocketCallback
-> m ()
socketConnectAsync :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsSocket a, IsCancellable b) =>
a -> Maybe b -> SocketCallback -> m ()
socketConnectAsync a
sock Maybe b
cancellable SocketCallback
callback = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just 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 a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
Ptr (FunPtr C_SocketCallback)
ptrcallback <- IO (Ptr (FunPtr C_SocketCallback))
forall a. Storable a => IO (Ptr a)
callocMem :: IO (Ptr (FunPtr Soup.Callbacks.C_SocketCallback))
FunPtr C_SocketCallback
callback' <- C_SocketCallback -> IO (FunPtr C_SocketCallback)
Soup.Callbacks.mk_SocketCallback (Maybe (Ptr (FunPtr C_SocketCallback))
-> SocketCallback_WithClosures -> C_SocketCallback
Soup.Callbacks.wrap_SocketCallback (Ptr (FunPtr C_SocketCallback)
-> Maybe (Ptr (FunPtr C_SocketCallback))
forall a. a -> Maybe a
Just Ptr (FunPtr C_SocketCallback)
ptrcallback) (SocketCallback -> SocketCallback_WithClosures
Soup.Callbacks.drop_closures_SocketCallback SocketCallback
callback))
Ptr (FunPtr C_SocketCallback) -> FunPtr C_SocketCallback -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke Ptr (FunPtr C_SocketCallback)
ptrcallback FunPtr C_SocketCallback
callback'
let userData :: Ptr a
userData = Ptr a
forall a. Ptr a
nullPtr
Ptr Socket
-> Ptr Cancellable -> FunPtr C_SocketCallback -> Ptr () -> IO ()
soup_socket_connect_async Ptr Socket
sock' Ptr Cancellable
maybeCancellable FunPtr C_SocketCallback
callback' Ptr ()
forall a. Ptr a
userData
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
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 a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data SocketConnectAsyncMethodInfo
instance (signature ~ (Maybe (b) -> Soup.Callbacks.SocketCallback -> m ()), MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) => O.OverloadedMethod SocketConnectAsyncMethodInfo a signature where
overloadedMethod = socketConnectAsync
instance O.OverloadedMethodInfo SocketConnectAsyncMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketConnectAsync",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketConnectAsync"
})
#endif
foreign import ccall "soup_socket_connect_sync" soup_socket_connect_sync ::
Ptr Socket ->
Ptr Gio.Cancellable.Cancellable ->
IO Word32
socketConnectSync ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) =>
a
-> Maybe (b)
-> m Word32
socketConnectSync :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsSocket a, IsCancellable b) =>
a -> Maybe b -> m Word32
socketConnectSync a
sock Maybe b
cancellable = IO Word32 -> m Word32
forall a. IO a -> m a
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
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just 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 a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
Word32
result <- Ptr Socket -> Ptr Cancellable -> IO Word32
soup_socket_connect_sync Ptr Socket
sock' Ptr Cancellable
maybeCancellable
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
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
Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if defined(ENABLE_OVERLOADING)
data SocketConnectSyncMethodInfo
instance (signature ~ (Maybe (b) -> m Word32), MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) => O.OverloadedMethod SocketConnectSyncMethodInfo a signature where
overloadedMethod = socketConnectSync
instance O.OverloadedMethodInfo SocketConnectSyncMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketConnectSync",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketConnectSync"
})
#endif
foreign import ccall "soup_socket_disconnect" soup_socket_disconnect ::
Ptr Socket ->
IO ()
socketDisconnect ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a) =>
a
-> m ()
socketDisconnect :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSocket a) =>
a -> m ()
socketDisconnect a
sock = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Ptr Socket -> IO ()
soup_socket_disconnect Ptr Socket
sock'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
() -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data SocketDisconnectMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSocket a) => O.OverloadedMethod SocketDisconnectMethodInfo a signature where
overloadedMethod = socketDisconnect
instance O.OverloadedMethodInfo SocketDisconnectMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketDisconnect",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketDisconnect"
})
#endif
foreign import ccall "soup_socket_get_fd" soup_socket_get_fd ::
Ptr Socket ->
IO Int32
socketGetFd ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a) =>
a
-> m Int32
socketGetFd :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSocket a) =>
a -> m Int32
socketGetFd a
sock = IO Int32 -> m Int32
forall a. IO a -> m a
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 Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Int32
result <- Ptr Socket -> IO Int32
soup_socket_get_fd Ptr Socket
sock'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
Int32 -> IO Int32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Int32
result
#if defined(ENABLE_OVERLOADING)
data SocketGetFdMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsSocket a) => O.OverloadedMethod SocketGetFdMethodInfo a signature where
overloadedMethod = socketGetFd
instance O.OverloadedMethodInfo SocketGetFdMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketGetFd",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketGetFd"
})
#endif
foreign import ccall "soup_socket_get_local_address" soup_socket_get_local_address ::
Ptr Socket ->
IO (Ptr Soup.Address.Address)
socketGetLocalAddress ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a) =>
a
-> m Soup.Address.Address
socketGetLocalAddress :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSocket a) =>
a -> m Address
socketGetLocalAddress a
sock = IO Address -> m Address
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Address -> m Address) -> IO Address -> m Address
forall a b. (a -> b) -> a -> b
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Ptr Address
result <- Ptr Socket -> IO (Ptr Address)
soup_socket_get_local_address Ptr Socket
sock'
Text -> Ptr Address -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"socketGetLocalAddress" Ptr Address
result
Address
result' <- ((ManagedPtr Address -> Address) -> Ptr Address -> IO Address
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Address -> Address
Soup.Address.Address) Ptr Address
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
Address -> IO Address
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Address
result'
#if defined(ENABLE_OVERLOADING)
data SocketGetLocalAddressMethodInfo
instance (signature ~ (m Soup.Address.Address), MonadIO m, IsSocket a) => O.OverloadedMethod SocketGetLocalAddressMethodInfo a signature where
overloadedMethod = socketGetLocalAddress
instance O.OverloadedMethodInfo SocketGetLocalAddressMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketGetLocalAddress",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketGetLocalAddress"
})
#endif
foreign import ccall "soup_socket_get_remote_address" soup_socket_get_remote_address ::
Ptr Socket ->
IO (Ptr Soup.Address.Address)
socketGetRemoteAddress ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a) =>
a
-> m Soup.Address.Address
socketGetRemoteAddress :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSocket a) =>
a -> m Address
socketGetRemoteAddress a
sock = IO Address -> m Address
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Address -> m Address) -> IO Address -> m Address
forall a b. (a -> b) -> a -> b
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Ptr Address
result <- Ptr Socket -> IO (Ptr Address)
soup_socket_get_remote_address Ptr Socket
sock'
Text -> Ptr Address -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"socketGetRemoteAddress" Ptr Address
result
Address
result' <- ((ManagedPtr Address -> Address) -> Ptr Address -> IO Address
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Address -> Address
Soup.Address.Address) Ptr Address
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
Address -> IO Address
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Address
result'
#if defined(ENABLE_OVERLOADING)
data SocketGetRemoteAddressMethodInfo
instance (signature ~ (m Soup.Address.Address), MonadIO m, IsSocket a) => O.OverloadedMethod SocketGetRemoteAddressMethodInfo a signature where
overloadedMethod = socketGetRemoteAddress
instance O.OverloadedMethodInfo SocketGetRemoteAddressMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketGetRemoteAddress",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketGetRemoteAddress"
})
#endif
foreign import ccall "soup_socket_is_connected" soup_socket_is_connected ::
Ptr Socket ->
IO CInt
socketIsConnected ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a) =>
a
-> m Bool
socketIsConnected :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSocket a) =>
a -> m Bool
socketIsConnected a
sock = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
CInt
result <- Ptr Socket -> IO CInt
soup_socket_is_connected Ptr Socket
sock'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data SocketIsConnectedMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSocket a) => O.OverloadedMethod SocketIsConnectedMethodInfo a signature where
overloadedMethod = socketIsConnected
instance O.OverloadedMethodInfo SocketIsConnectedMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketIsConnected",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketIsConnected"
})
#endif
foreign import ccall "soup_socket_is_ssl" soup_socket_is_ssl ::
Ptr Socket ->
IO CInt
socketIsSsl ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a) =>
a
-> m Bool
socketIsSsl :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSocket a) =>
a -> m Bool
socketIsSsl a
sock = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
CInt
result <- Ptr Socket -> IO CInt
soup_socket_is_ssl Ptr Socket
sock'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data SocketIsSslMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSocket a) => O.OverloadedMethod SocketIsSslMethodInfo a signature where
overloadedMethod = socketIsSsl
instance O.OverloadedMethodInfo SocketIsSslMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketIsSsl",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketIsSsl"
})
#endif
foreign import ccall "soup_socket_listen" soup_socket_listen ::
Ptr Socket ->
IO CInt
socketListen ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a) =>
a
-> m Bool
socketListen :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSocket a) =>
a -> m Bool
socketListen a
sock = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
CInt
result <- Ptr Socket -> IO CInt
soup_socket_listen Ptr Socket
sock'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data SocketListenMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSocket a) => O.OverloadedMethod SocketListenMethodInfo a signature where
overloadedMethod = socketListen
instance O.OverloadedMethodInfo SocketListenMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketListen",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketListen"
})
#endif
foreign import ccall "soup_socket_read" soup_socket_read ::
Ptr Socket ->
Ptr Word8 ->
Word64 ->
Ptr Word64 ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CUInt
socketRead ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) =>
a
-> ByteString
-> Maybe (b)
-> m ((Soup.Enums.SocketIOStatus, Word64))
socketRead :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsSocket a, IsCancellable b) =>
a -> ByteString -> Maybe b -> m (SocketIOStatus, Word64)
socketRead a
sock ByteString
buffer Maybe b
cancellable = IO (SocketIOStatus, Word64) -> m (SocketIOStatus, Word64)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (SocketIOStatus, Word64) -> m (SocketIOStatus, Word64))
-> IO (SocketIOStatus, Word64) -> m (SocketIOStatus, Word64)
forall a b. (a -> b) -> a -> b
$ do
let len :: Word64
len = 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 Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Ptr Word8
buffer' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
buffer
Ptr Word64
nread <- IO (Ptr Word64)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word64)
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just 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 a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO (SocketIOStatus, Word64) -> IO () -> IO (SocketIOStatus, Word64)
forall a b. IO a -> IO b -> IO a
onException (do
CUInt
result <- (Ptr (Ptr GError) -> IO CUInt) -> IO CUInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CUInt) -> IO CUInt)
-> (Ptr (Ptr GError) -> IO CUInt) -> IO CUInt
forall a b. (a -> b) -> a -> b
$ Ptr Socket
-> Ptr Word8
-> Word64
-> Ptr Word64
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CUInt
soup_socket_read Ptr Socket
sock' Ptr Word8
buffer' Word64
len Ptr Word64
nread Ptr Cancellable
maybeCancellable
let result' :: SocketIOStatus
result' = (Int -> SocketIOStatus
forall a. Enum a => Int -> a
toEnum (Int -> SocketIOStatus)
-> (CUInt -> Int) -> CUInt -> SocketIOStatus
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
Word64
nread' <- Ptr Word64 -> IO Word64
forall a. Storable a => Ptr a -> IO a
peek Ptr Word64
nread
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
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
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
buffer'
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
nread
(SocketIOStatus, Word64) -> IO (SocketIOStatus, Word64)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (SocketIOStatus
result', Word64
nread')
) (do
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
buffer'
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
nread
)
#if defined(ENABLE_OVERLOADING)
data SocketReadMethodInfo
instance (signature ~ (ByteString -> Maybe (b) -> m ((Soup.Enums.SocketIOStatus, Word64))), MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) => O.OverloadedMethod SocketReadMethodInfo a signature where
overloadedMethod = socketRead
instance O.OverloadedMethodInfo SocketReadMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketRead",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketRead"
})
#endif
foreign import ccall "soup_socket_read_until" soup_socket_read_until ::
Ptr Socket ->
Ptr Word8 ->
Word64 ->
Ptr () ->
Word64 ->
Ptr Word64 ->
Ptr CInt ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CUInt
socketReadUntil ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) =>
a
-> ByteString
-> Ptr ()
-> Word64
-> Maybe (b)
-> m ((Soup.Enums.SocketIOStatus, Word64, Bool))
socketReadUntil :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsSocket a, IsCancellable b) =>
a
-> ByteString
-> Ptr ()
-> Word64
-> Maybe b
-> m (SocketIOStatus, Word64, Bool)
socketReadUntil a
sock ByteString
buffer Ptr ()
boundary Word64
boundaryLen Maybe b
cancellable = IO (SocketIOStatus, Word64, Bool)
-> m (SocketIOStatus, Word64, Bool)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (SocketIOStatus, Word64, Bool)
-> m (SocketIOStatus, Word64, Bool))
-> IO (SocketIOStatus, Word64, Bool)
-> m (SocketIOStatus, Word64, Bool)
forall a b. (a -> b) -> a -> b
$ do
let len :: Word64
len = 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 Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Ptr Word8
buffer' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
buffer
Ptr Word64
nread <- IO (Ptr Word64)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word64)
Ptr CInt
gotBoundary <- IO (Ptr CInt)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr CInt)
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just 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 a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO (SocketIOStatus, Word64, Bool)
-> IO () -> IO (SocketIOStatus, Word64, Bool)
forall a b. IO a -> IO b -> IO a
onException (do
CUInt
result <- (Ptr (Ptr GError) -> IO CUInt) -> IO CUInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CUInt) -> IO CUInt)
-> (Ptr (Ptr GError) -> IO CUInt) -> IO CUInt
forall a b. (a -> b) -> a -> b
$ Ptr Socket
-> Ptr Word8
-> Word64
-> Ptr ()
-> Word64
-> Ptr Word64
-> Ptr CInt
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CUInt
soup_socket_read_until Ptr Socket
sock' Ptr Word8
buffer' Word64
len Ptr ()
boundary Word64
boundaryLen Ptr Word64
nread Ptr CInt
gotBoundary Ptr Cancellable
maybeCancellable
let result' :: SocketIOStatus
result' = (Int -> SocketIOStatus
forall a. Enum a => Int -> a
toEnum (Int -> SocketIOStatus)
-> (CUInt -> Int) -> CUInt -> SocketIOStatus
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
Word64
nread' <- Ptr Word64 -> IO Word64
forall a. Storable a => Ptr a -> IO a
peek Ptr Word64
nread
CInt
gotBoundary' <- Ptr CInt -> IO CInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CInt
gotBoundary
let gotBoundary'' :: Bool
gotBoundary'' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
gotBoundary'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
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
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
buffer'
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
nread
Ptr CInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CInt
gotBoundary
(SocketIOStatus, Word64, Bool) -> IO (SocketIOStatus, Word64, Bool)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (SocketIOStatus
result', Word64
nread', Bool
gotBoundary'')
) (do
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
buffer'
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
nread
Ptr CInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CInt
gotBoundary
)
#if defined(ENABLE_OVERLOADING)
data SocketReadUntilMethodInfo
instance (signature ~ (ByteString -> Ptr () -> Word64 -> Maybe (b) -> m ((Soup.Enums.SocketIOStatus, Word64, Bool))), MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) => O.OverloadedMethod SocketReadUntilMethodInfo a signature where
overloadedMethod = socketReadUntil
instance O.OverloadedMethodInfo SocketReadUntilMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketReadUntil",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketReadUntil"
})
#endif
foreign import ccall "soup_socket_start_proxy_ssl" soup_socket_start_proxy_ssl ::
Ptr Socket ->
CString ->
Ptr Gio.Cancellable.Cancellable ->
IO CInt
socketStartProxySsl ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) =>
a
-> T.Text
-> Maybe (b)
-> m Bool
socketStartProxySsl :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsSocket a, IsCancellable b) =>
a -> Text -> Maybe b -> m Bool
socketStartProxySsl a
sock Text
sslHost Maybe b
cancellable = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
CString
sslHost' <- Text -> IO CString
textToCString Text
sslHost
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just 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 a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
CInt
result <- Ptr Socket -> CString -> Ptr Cancellable -> IO CInt
soup_socket_start_proxy_ssl Ptr Socket
sock' CString
sslHost' Ptr Cancellable
maybeCancellable
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
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
CString -> IO ()
forall a. Ptr a -> IO ()
freeMem CString
sslHost'
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data SocketStartProxySslMethodInfo
instance (signature ~ (T.Text -> Maybe (b) -> m Bool), MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) => O.OverloadedMethod SocketStartProxySslMethodInfo a signature where
overloadedMethod = socketStartProxySsl
instance O.OverloadedMethodInfo SocketStartProxySslMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketStartProxySsl",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketStartProxySsl"
})
#endif
foreign import ccall "soup_socket_start_ssl" soup_socket_start_ssl ::
Ptr Socket ->
Ptr Gio.Cancellable.Cancellable ->
IO CInt
socketStartSsl ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) =>
a
-> Maybe (b)
-> m Bool
socketStartSsl :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsSocket a, IsCancellable b) =>
a -> Maybe b -> m Bool
socketStartSsl a
sock Maybe b
cancellable = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just 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 a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
CInt
result <- Ptr Socket -> Ptr Cancellable -> IO CInt
soup_socket_start_ssl Ptr Socket
sock' Ptr Cancellable
maybeCancellable
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
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
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data SocketStartSslMethodInfo
instance (signature ~ (Maybe (b) -> m Bool), MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) => O.OverloadedMethod SocketStartSslMethodInfo a signature where
overloadedMethod = socketStartSsl
instance O.OverloadedMethodInfo SocketStartSslMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketStartSsl",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketStartSsl"
})
#endif
foreign import ccall "soup_socket_write" soup_socket_write ::
Ptr Socket ->
Ptr Word8 ->
Word64 ->
Ptr Word64 ->
Ptr Gio.Cancellable.Cancellable ->
Ptr (Ptr GError) ->
IO CUInt
socketWrite ::
(B.CallStack.HasCallStack, MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) =>
a
-> ByteString
-> Maybe (b)
-> m ((Soup.Enums.SocketIOStatus, Word64))
socketWrite :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsSocket a, IsCancellable b) =>
a -> ByteString -> Maybe b -> m (SocketIOStatus, Word64)
socketWrite a
sock ByteString
buffer Maybe b
cancellable = IO (SocketIOStatus, Word64) -> m (SocketIOStatus, Word64)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (SocketIOStatus, Word64) -> m (SocketIOStatus, Word64))
-> IO (SocketIOStatus, Word64) -> m (SocketIOStatus, Word64)
forall a b. (a -> b) -> a -> b
$ do
let len :: Word64
len = 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 Socket
sock' <- a -> IO (Ptr Socket)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
sock
Ptr Word8
buffer' <- ByteString -> IO (Ptr Word8)
packByteString ByteString
buffer
Ptr Word64
nwrote <- IO (Ptr Word64)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word64)
Ptr Cancellable
maybeCancellable <- case Maybe b
cancellable of
Maybe b
Nothing -> Ptr Cancellable -> IO (Ptr Cancellable)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
forall a. Ptr a
nullPtr
Just 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 a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr Cancellable
jCancellable'
IO (SocketIOStatus, Word64) -> IO () -> IO (SocketIOStatus, Word64)
forall a b. IO a -> IO b -> IO a
onException (do
CUInt
result <- (Ptr (Ptr GError) -> IO CUInt) -> IO CUInt
forall a. (Ptr (Ptr GError) -> IO a) -> IO a
propagateGError ((Ptr (Ptr GError) -> IO CUInt) -> IO CUInt)
-> (Ptr (Ptr GError) -> IO CUInt) -> IO CUInt
forall a b. (a -> b) -> a -> b
$ Ptr Socket
-> Ptr Word8
-> Word64
-> Ptr Word64
-> Ptr Cancellable
-> Ptr (Ptr GError)
-> IO CUInt
soup_socket_write Ptr Socket
sock' Ptr Word8
buffer' Word64
len Ptr Word64
nwrote Ptr Cancellable
maybeCancellable
let result' :: SocketIOStatus
result' = (Int -> SocketIOStatus
forall a. Enum a => Int -> a
toEnum (Int -> SocketIOStatus)
-> (CUInt -> Int) -> CUInt -> SocketIOStatus
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
Word64
nwrote' <- Ptr Word64 -> IO Word64
forall a. Storable a => Ptr a -> IO a
peek Ptr Word64
nwrote
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
sock
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
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
buffer'
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
nwrote
(SocketIOStatus, Word64) -> IO (SocketIOStatus, Word64)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (SocketIOStatus
result', Word64
nwrote')
) (do
Ptr Word8 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word8
buffer'
Ptr Word64 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word64
nwrote
)
#if defined(ENABLE_OVERLOADING)
data SocketWriteMethodInfo
instance (signature ~ (ByteString -> Maybe (b) -> m ((Soup.Enums.SocketIOStatus, Word64))), MonadIO m, IsSocket a, Gio.Cancellable.IsCancellable b) => O.OverloadedMethod SocketWriteMethodInfo a signature where
overloadedMethod = socketWrite
instance O.OverloadedMethodInfo SocketWriteMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Soup.Objects.Socket.socketWrite",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-soup-2.4.26/docs/GI-Soup-Objects-Socket.html#v:socketWrite"
})
#endif