{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) 'GI.Gio.Objects.SocketClient.SocketClient' is a lightweight high-level utility class for connecting to a network host using a connection oriented socket type. You create a 'GI.Gio.Objects.SocketClient.SocketClient' object, set any options you want, and then call a sync or async connect operation, which returns a 'GI.Gio.Objects.SocketConnection.SocketConnection' subclass on success. The type of the 'GI.Gio.Objects.SocketConnection.SocketConnection' object returned depends on the type of the underlying socket that is in use. For instance, for a TCP\/IP connection it will be a 'GI.Gio.Objects.TcpConnection.TcpConnection'. As 'GI.Gio.Objects.SocketClient.SocketClient' is a lightweight object, you don\'t need to cache it. You can just create a new one any time you need one. /Since: 2.22/ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gio.Objects.SocketClient ( -- * Exported types SocketClient(..) , IsSocketClient , toSocketClient , noSocketClient , -- * Methods -- ** addApplicationProxy #method:addApplicationProxy# #if ENABLE_OVERLOADING SocketClientAddApplicationProxyMethodInfo, #endif socketClientAddApplicationProxy , -- ** connect #method:connect# #if ENABLE_OVERLOADING SocketClientConnectMethodInfo , #endif socketClientConnect , -- ** connectAsync #method:connectAsync# #if ENABLE_OVERLOADING SocketClientConnectAsyncMethodInfo , #endif socketClientConnectAsync , -- ** connectFinish #method:connectFinish# #if ENABLE_OVERLOADING SocketClientConnectFinishMethodInfo , #endif socketClientConnectFinish , -- ** connectToHost #method:connectToHost# #if ENABLE_OVERLOADING SocketClientConnectToHostMethodInfo , #endif socketClientConnectToHost , -- ** connectToHostAsync #method:connectToHostAsync# #if ENABLE_OVERLOADING SocketClientConnectToHostAsyncMethodInfo, #endif socketClientConnectToHostAsync , -- ** connectToHostFinish #method:connectToHostFinish# #if ENABLE_OVERLOADING SocketClientConnectToHostFinishMethodInfo, #endif socketClientConnectToHostFinish , -- ** connectToService #method:connectToService# #if ENABLE_OVERLOADING SocketClientConnectToServiceMethodInfo , #endif socketClientConnectToService , -- ** connectToServiceAsync #method:connectToServiceAsync# #if ENABLE_OVERLOADING SocketClientConnectToServiceAsyncMethodInfo, #endif socketClientConnectToServiceAsync , -- ** connectToServiceFinish #method:connectToServiceFinish# #if ENABLE_OVERLOADING SocketClientConnectToServiceFinishMethodInfo, #endif socketClientConnectToServiceFinish , -- ** connectToUri #method:connectToUri# #if ENABLE_OVERLOADING SocketClientConnectToUriMethodInfo , #endif socketClientConnectToUri , -- ** connectToUriAsync #method:connectToUriAsync# #if ENABLE_OVERLOADING SocketClientConnectToUriAsyncMethodInfo , #endif socketClientConnectToUriAsync , -- ** connectToUriFinish #method:connectToUriFinish# #if ENABLE_OVERLOADING SocketClientConnectToUriFinishMethodInfo, #endif socketClientConnectToUriFinish , -- ** getEnableProxy #method:getEnableProxy# #if ENABLE_OVERLOADING SocketClientGetEnableProxyMethodInfo , #endif socketClientGetEnableProxy , -- ** getFamily #method:getFamily# #if ENABLE_OVERLOADING SocketClientGetFamilyMethodInfo , #endif socketClientGetFamily , -- ** getLocalAddress #method:getLocalAddress# #if ENABLE_OVERLOADING SocketClientGetLocalAddressMethodInfo , #endif socketClientGetLocalAddress , -- ** getProtocol #method:getProtocol# #if ENABLE_OVERLOADING SocketClientGetProtocolMethodInfo , #endif socketClientGetProtocol , -- ** getProxyResolver #method:getProxyResolver# #if ENABLE_OVERLOADING SocketClientGetProxyResolverMethodInfo , #endif socketClientGetProxyResolver , -- ** getSocketType #method:getSocketType# #if ENABLE_OVERLOADING SocketClientGetSocketTypeMethodInfo , #endif socketClientGetSocketType , -- ** getTimeout #method:getTimeout# #if ENABLE_OVERLOADING SocketClientGetTimeoutMethodInfo , #endif socketClientGetTimeout , -- ** getTls #method:getTls# #if ENABLE_OVERLOADING SocketClientGetTlsMethodInfo , #endif socketClientGetTls , -- ** getTlsValidationFlags #method:getTlsValidationFlags# #if ENABLE_OVERLOADING SocketClientGetTlsValidationFlagsMethodInfo, #endif socketClientGetTlsValidationFlags , -- ** new #method:new# socketClientNew , -- ** setEnableProxy #method:setEnableProxy# #if ENABLE_OVERLOADING SocketClientSetEnableProxyMethodInfo , #endif socketClientSetEnableProxy , -- ** setFamily #method:setFamily# #if ENABLE_OVERLOADING SocketClientSetFamilyMethodInfo , #endif socketClientSetFamily , -- ** setLocalAddress #method:setLocalAddress# #if ENABLE_OVERLOADING SocketClientSetLocalAddressMethodInfo , #endif socketClientSetLocalAddress , -- ** setProtocol #method:setProtocol# #if ENABLE_OVERLOADING SocketClientSetProtocolMethodInfo , #endif socketClientSetProtocol , -- ** setProxyResolver #method:setProxyResolver# #if ENABLE_OVERLOADING SocketClientSetProxyResolverMethodInfo , #endif socketClientSetProxyResolver , -- ** setSocketType #method:setSocketType# #if ENABLE_OVERLOADING SocketClientSetSocketTypeMethodInfo , #endif socketClientSetSocketType , -- ** setTimeout #method:setTimeout# #if ENABLE_OVERLOADING SocketClientSetTimeoutMethodInfo , #endif socketClientSetTimeout , -- ** setTls #method:setTls# #if ENABLE_OVERLOADING SocketClientSetTlsMethodInfo , #endif socketClientSetTls , -- ** setTlsValidationFlags #method:setTlsValidationFlags# #if ENABLE_OVERLOADING SocketClientSetTlsValidationFlagsMethodInfo, #endif socketClientSetTlsValidationFlags , -- * Properties -- ** enableProxy #attr:enableProxy# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING SocketClientEnableProxyPropertyInfo , #endif constructSocketClientEnableProxy , getSocketClientEnableProxy , setSocketClientEnableProxy , #if ENABLE_OVERLOADING socketClientEnableProxy , #endif -- ** family #attr:family# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING SocketClientFamilyPropertyInfo , #endif constructSocketClientFamily , getSocketClientFamily , setSocketClientFamily , #if ENABLE_OVERLOADING socketClientFamily , #endif -- ** localAddress #attr:localAddress# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING SocketClientLocalAddressPropertyInfo , #endif clearSocketClientLocalAddress , constructSocketClientLocalAddress , getSocketClientLocalAddress , setSocketClientLocalAddress , #if ENABLE_OVERLOADING socketClientLocalAddress , #endif -- ** protocol #attr:protocol# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING SocketClientProtocolPropertyInfo , #endif constructSocketClientProtocol , getSocketClientProtocol , setSocketClientProtocol , #if ENABLE_OVERLOADING socketClientProtocol , #endif -- ** proxyResolver #attr:proxyResolver# {- | The proxy resolver to use /Since: 2.36/ -} #if ENABLE_OVERLOADING SocketClientProxyResolverPropertyInfo , #endif clearSocketClientProxyResolver , constructSocketClientProxyResolver , getSocketClientProxyResolver , setSocketClientProxyResolver , #if ENABLE_OVERLOADING socketClientProxyResolver , #endif -- ** timeout #attr:timeout# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING SocketClientTimeoutPropertyInfo , #endif constructSocketClientTimeout , getSocketClientTimeout , setSocketClientTimeout , #if ENABLE_OVERLOADING socketClientTimeout , #endif -- ** tls #attr:tls# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING SocketClientTlsPropertyInfo , #endif constructSocketClientTls , getSocketClientTls , setSocketClientTls , #if ENABLE_OVERLOADING socketClientTls , #endif -- ** tlsValidationFlags #attr:tlsValidationFlags# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING SocketClientTlsValidationFlagsPropertyInfo, #endif constructSocketClientTlsValidationFlags , getSocketClientTlsValidationFlags , setSocketClientTlsValidationFlags , #if ENABLE_OVERLOADING socketClientTlsValidationFlags , #endif -- ** type #attr:type# {- | /No description available in the introspection data./ -} #if ENABLE_OVERLOADING SocketClientTypePropertyInfo , #endif constructSocketClientType , getSocketClientType , setSocketClientType , #if ENABLE_OVERLOADING socketClientType , #endif -- * Signals -- ** event #signal:event# C_SocketClientEventCallback , SocketClientEventCallback , #if ENABLE_OVERLOADING SocketClientEventSignalInfo , #endif afterSocketClientEvent , genClosure_SocketClientEvent , mk_SocketClientEventCallback , noSocketClientEventCallback , onSocketClientEvent , wrap_SocketClientEventCallback , ) where import Data.GI.Base.ShortPrelude import qualified Data.GI.Base.ShortPrelude as SP import qualified Data.GI.Base.Overloading as O import qualified Prelude as P import qualified Data.GI.Base.Attributes as GI.Attributes import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr import qualified Data.GI.Base.GClosure as B.GClosure import qualified Data.GI.Base.GError as B.GError import qualified Data.GI.Base.GVariant as B.GVariant import qualified Data.GI.Base.GValue as B.GValue import qualified Data.GI.Base.GParamSpec as B.GParamSpec import qualified Data.GI.Base.CallStack as B.CallStack import qualified Data.GI.Base.Properties as B.Properties import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import qualified Foreign.Ptr as FP import qualified GHC.OverloadedLabels as OL import qualified GI.GObject.Objects.Object as GObject.Object import qualified GI.Gio.Callbacks as Gio.Callbacks import {-# SOURCE #-} qualified GI.Gio.Enums as Gio.Enums import {-# SOURCE #-} qualified GI.Gio.Flags as Gio.Flags import {-# SOURCE #-} qualified GI.Gio.Interfaces.AsyncResult as Gio.AsyncResult import {-# SOURCE #-} qualified GI.Gio.Interfaces.ProxyResolver as Gio.ProxyResolver import {-# SOURCE #-} qualified GI.Gio.Interfaces.SocketConnectable as Gio.SocketConnectable import {-# SOURCE #-} qualified GI.Gio.Objects.Cancellable as Gio.Cancellable import {-# SOURCE #-} qualified GI.Gio.Objects.IOStream as Gio.IOStream import {-# SOURCE #-} qualified GI.Gio.Objects.SocketAddress as Gio.SocketAddress import {-# SOURCE #-} qualified GI.Gio.Objects.SocketConnection as Gio.SocketConnection -- | Memory-managed wrapper type. newtype SocketClient = SocketClient (ManagedPtr SocketClient) foreign import ccall "g_socket_client_get_type" c_g_socket_client_get_type :: IO GType instance GObject SocketClient where gobjectType = c_g_socket_client_get_type -- | Type class for types which can be safely cast to `SocketClient`, for instance with `toSocketClient`. class (GObject o, O.IsDescendantOf SocketClient o) => IsSocketClient o instance (GObject o, O.IsDescendantOf SocketClient o) => IsSocketClient o instance O.HasParentTypes SocketClient type instance O.ParentTypes SocketClient = '[GObject.Object.Object] -- | Cast to `SocketClient`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toSocketClient :: (MonadIO m, IsSocketClient o) => o -> m SocketClient toSocketClient = liftIO . unsafeCastTo SocketClient -- | A convenience alias for `Nothing` :: `Maybe` `SocketClient`. noSocketClient :: Maybe SocketClient noSocketClient = Nothing #if ENABLE_OVERLOADING type family ResolveSocketClientMethod (t :: Symbol) (o :: *) :: * where ResolveSocketClientMethod "addApplicationProxy" o = SocketClientAddApplicationProxyMethodInfo ResolveSocketClientMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveSocketClientMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveSocketClientMethod "connect" o = SocketClientConnectMethodInfo ResolveSocketClientMethod "connectAsync" o = SocketClientConnectAsyncMethodInfo ResolveSocketClientMethod "connectFinish" o = SocketClientConnectFinishMethodInfo ResolveSocketClientMethod "connectToHost" o = SocketClientConnectToHostMethodInfo ResolveSocketClientMethod "connectToHostAsync" o = SocketClientConnectToHostAsyncMethodInfo ResolveSocketClientMethod "connectToHostFinish" o = SocketClientConnectToHostFinishMethodInfo ResolveSocketClientMethod "connectToService" o = SocketClientConnectToServiceMethodInfo ResolveSocketClientMethod "connectToServiceAsync" o = SocketClientConnectToServiceAsyncMethodInfo ResolveSocketClientMethod "connectToServiceFinish" o = SocketClientConnectToServiceFinishMethodInfo ResolveSocketClientMethod "connectToUri" o = SocketClientConnectToUriMethodInfo ResolveSocketClientMethod "connectToUriAsync" o = SocketClientConnectToUriAsyncMethodInfo ResolveSocketClientMethod "connectToUriFinish" o = SocketClientConnectToUriFinishMethodInfo ResolveSocketClientMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveSocketClientMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveSocketClientMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveSocketClientMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveSocketClientMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveSocketClientMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveSocketClientMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveSocketClientMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveSocketClientMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveSocketClientMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveSocketClientMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveSocketClientMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveSocketClientMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveSocketClientMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveSocketClientMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveSocketClientMethod "getEnableProxy" o = SocketClientGetEnableProxyMethodInfo ResolveSocketClientMethod "getFamily" o = SocketClientGetFamilyMethodInfo ResolveSocketClientMethod "getLocalAddress" o = SocketClientGetLocalAddressMethodInfo ResolveSocketClientMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveSocketClientMethod "getProtocol" o = SocketClientGetProtocolMethodInfo ResolveSocketClientMethod "getProxyResolver" o = SocketClientGetProxyResolverMethodInfo ResolveSocketClientMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveSocketClientMethod "getSocketType" o = SocketClientGetSocketTypeMethodInfo ResolveSocketClientMethod "getTimeout" o = SocketClientGetTimeoutMethodInfo ResolveSocketClientMethod "getTls" o = SocketClientGetTlsMethodInfo ResolveSocketClientMethod "getTlsValidationFlags" o = SocketClientGetTlsValidationFlagsMethodInfo ResolveSocketClientMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveSocketClientMethod "setEnableProxy" o = SocketClientSetEnableProxyMethodInfo ResolveSocketClientMethod "setFamily" o = SocketClientSetFamilyMethodInfo ResolveSocketClientMethod "setLocalAddress" o = SocketClientSetLocalAddressMethodInfo ResolveSocketClientMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveSocketClientMethod "setProtocol" o = SocketClientSetProtocolMethodInfo ResolveSocketClientMethod "setProxyResolver" o = SocketClientSetProxyResolverMethodInfo ResolveSocketClientMethod "setSocketType" o = SocketClientSetSocketTypeMethodInfo ResolveSocketClientMethod "setTimeout" o = SocketClientSetTimeoutMethodInfo ResolveSocketClientMethod "setTls" o = SocketClientSetTlsMethodInfo ResolveSocketClientMethod "setTlsValidationFlags" o = SocketClientSetTlsValidationFlagsMethodInfo ResolveSocketClientMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveSocketClientMethod t SocketClient, O.MethodInfo info SocketClient p) => OL.IsLabel t (SocketClient -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif -- signal SocketClient::event {- | Emitted when /@client@/\'s activity on /@connectable@/ changes state. Among other things, this can be used to provide progress information about a network connection in the UI. The meanings of the different /@event@/ values are as follows: * 'GI.Gio.Enums.SocketClientEventResolving': /@client@/ is about to look up /@connectable@/ in DNS. /@connection@/ will be 'Nothing'. * 'GI.Gio.Enums.SocketClientEventResolved': /@client@/ has successfully resolved /@connectable@/ in DNS. /@connection@/ will be 'Nothing'. * 'GI.Gio.Enums.SocketClientEventConnecting': /@client@/ is about to make a connection to a remote host; either a proxy server or the destination server itself. /@connection@/ is the 'GI.Gio.Objects.SocketConnection.SocketConnection', which is not yet connected. Since GLib 2.40, you can access the remote address via 'GI.Gio.Objects.SocketConnection.socketConnectionGetRemoteAddress'. * 'GI.Gio.Enums.SocketClientEventConnected': /@client@/ has successfully connected to a remote host. /@connection@/ is the connected 'GI.Gio.Objects.SocketConnection.SocketConnection'. * 'GI.Gio.Enums.SocketClientEventProxyNegotiating': /@client@/ is about to negotiate with a proxy to get it to connect to /@connectable@/. /@connection@/ is the 'GI.Gio.Objects.SocketConnection.SocketConnection' to the proxy server. * 'GI.Gio.Enums.SocketClientEventProxyNegotiated': /@client@/ has negotiated a connection to /@connectable@/ through a proxy server. /@connection@/ is the stream returned from 'GI.Gio.Interfaces.Proxy.proxyConnect', which may or may not be a 'GI.Gio.Objects.SocketConnection.SocketConnection'. * 'GI.Gio.Enums.SocketClientEventTlsHandshaking': /@client@/ is about to begin a TLS handshake. /@connection@/ is a 'GI.Gio.Interfaces.TlsClientConnection.TlsClientConnection'. * 'GI.Gio.Enums.SocketClientEventTlsHandshaked': /@client@/ has successfully completed the TLS handshake. /@connection@/ is a 'GI.Gio.Interfaces.TlsClientConnection.TlsClientConnection'. * 'GI.Gio.Enums.SocketClientEventComplete': /@client@/ has either successfully connected to /@connectable@/ (in which case /@connection@/ is the 'GI.Gio.Objects.SocketConnection.SocketConnection' that it will be returning to the caller) or has failed (in which case /@connection@/ is 'Nothing' and the client is about to return an error). Each event except 'GI.Gio.Enums.SocketClientEventComplete' may be emitted multiple times (or not at all) for a given connectable (in particular, if /@client@/ ends up attempting to connect to more than one address). However, if /@client@/ emits the 'GI.Gio.Objects.SocketClient.SocketClient'::@/event/@ signal at all for a given connectable, that it will always emit it with 'GI.Gio.Enums.SocketClientEventComplete' when it is done. Note that there may be additional 'GI.Gio.Enums.SocketClientEvent' values in the future; unrecognized /@event@/ values should be ignored. /Since: 2.32/ -} type SocketClientEventCallback = Gio.Enums.SocketClientEvent {- ^ /@event@/: the event that is occurring -} -> Gio.SocketConnectable.SocketConnectable {- ^ /@connectable@/: the 'GI.Gio.Interfaces.SocketConnectable.SocketConnectable' that /@event@/ is occurring on -} -> Maybe Gio.IOStream.IOStream {- ^ /@connection@/: the current representation of the connection -} -> IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `SocketClientEventCallback`@. noSocketClientEventCallback :: Maybe SocketClientEventCallback noSocketClientEventCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_SocketClientEventCallback = Ptr () -> -- object CUInt -> Ptr Gio.SocketConnectable.SocketConnectable -> Ptr Gio.IOStream.IOStream -> Ptr () -> -- user_data IO () -- | Generate a function pointer callable from C code, from a `C_SocketClientEventCallback`. foreign import ccall "wrapper" mk_SocketClientEventCallback :: C_SocketClientEventCallback -> IO (FunPtr C_SocketClientEventCallback) -- | Wrap the callback into a `GClosure`. genClosure_SocketClientEvent :: MonadIO m => SocketClientEventCallback -> m (GClosure C_SocketClientEventCallback) genClosure_SocketClientEvent cb = liftIO $ do let cb' = wrap_SocketClientEventCallback cb mk_SocketClientEventCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `SocketClientEventCallback` into a `C_SocketClientEventCallback`. wrap_SocketClientEventCallback :: SocketClientEventCallback -> C_SocketClientEventCallback wrap_SocketClientEventCallback _cb _ event connectable connection _ = do let event' = (toEnum . fromIntegral) event connectable' <- (newObject Gio.SocketConnectable.SocketConnectable) connectable maybeConnection <- if connection == nullPtr then return Nothing else do connection' <- (newObject Gio.IOStream.IOStream) connection return $ Just connection' _cb event' connectable' maybeConnection {- | Connect a signal handler for the “@event@” signal, to be run before the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' socketClient #event callback @ -} onSocketClientEvent :: (IsSocketClient a, MonadIO m) => a -> SocketClientEventCallback -> m SignalHandlerId onSocketClientEvent obj cb = liftIO $ do let cb' = wrap_SocketClientEventCallback cb cb'' <- mk_SocketClientEventCallback cb' connectSignalFunPtr obj "event" cb'' SignalConnectBefore {- | Connect a signal handler for the “@event@” signal, to be run after the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' socketClient #event callback @ -} afterSocketClientEvent :: (IsSocketClient a, MonadIO m) => a -> SocketClientEventCallback -> m SignalHandlerId afterSocketClientEvent obj cb = liftIO $ do let cb' = wrap_SocketClientEventCallback cb cb'' <- mk_SocketClientEventCallback cb' connectSignalFunPtr obj "event" cb'' SignalConnectAfter -- VVV Prop "enable-proxy" -- Type: TBasicType TBoolean -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct] -- Nullable: (Just False,Just False) {- | Get the value of the “@enable-proxy@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' socketClient #enableProxy @ -} getSocketClientEnableProxy :: (MonadIO m, IsSocketClient o) => o -> m Bool getSocketClientEnableProxy obj = liftIO $ B.Properties.getObjectPropertyBool obj "enable-proxy" {- | Set the value of the “@enable-proxy@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' socketClient [ #enableProxy 'Data.GI.Base.Attributes.:=' value ] @ -} setSocketClientEnableProxy :: (MonadIO m, IsSocketClient o) => o -> Bool -> m () setSocketClientEnableProxy obj val = liftIO $ B.Properties.setObjectPropertyBool obj "enable-proxy" val {- | Construct a `GValueConstruct` with valid value for the “@enable-proxy@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructSocketClientEnableProxy :: (IsSocketClient o) => Bool -> IO (GValueConstruct o) constructSocketClientEnableProxy val = B.Properties.constructObjectPropertyBool "enable-proxy" val #if ENABLE_OVERLOADING data SocketClientEnableProxyPropertyInfo instance AttrInfo SocketClientEnableProxyPropertyInfo where type AttrAllowedOps SocketClientEnableProxyPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint SocketClientEnableProxyPropertyInfo = (~) Bool type AttrBaseTypeConstraint SocketClientEnableProxyPropertyInfo = IsSocketClient type AttrGetType SocketClientEnableProxyPropertyInfo = Bool type AttrLabel SocketClientEnableProxyPropertyInfo = "enable-proxy" type AttrOrigin SocketClientEnableProxyPropertyInfo = SocketClient attrGet _ = getSocketClientEnableProxy attrSet _ = setSocketClientEnableProxy attrConstruct _ = constructSocketClientEnableProxy attrClear _ = undefined #endif -- VVV Prop "family" -- Type: TInterface (Name {namespace = "Gio", name = "SocketFamily"}) -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct] -- Nullable: (Just False,Just False) {- | Get the value of the “@family@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' socketClient #family @ -} getSocketClientFamily :: (MonadIO m, IsSocketClient o) => o -> m Gio.Enums.SocketFamily getSocketClientFamily obj = liftIO $ B.Properties.getObjectPropertyEnum obj "family" {- | Set the value of the “@family@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' socketClient [ #family 'Data.GI.Base.Attributes.:=' value ] @ -} setSocketClientFamily :: (MonadIO m, IsSocketClient o) => o -> Gio.Enums.SocketFamily -> m () setSocketClientFamily obj val = liftIO $ B.Properties.setObjectPropertyEnum obj "family" val {- | Construct a `GValueConstruct` with valid value for the “@family@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructSocketClientFamily :: (IsSocketClient o) => Gio.Enums.SocketFamily -> IO (GValueConstruct o) constructSocketClientFamily val = B.Properties.constructObjectPropertyEnum "family" val #if ENABLE_OVERLOADING data SocketClientFamilyPropertyInfo instance AttrInfo SocketClientFamilyPropertyInfo where type AttrAllowedOps SocketClientFamilyPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint SocketClientFamilyPropertyInfo = (~) Gio.Enums.SocketFamily type AttrBaseTypeConstraint SocketClientFamilyPropertyInfo = IsSocketClient type AttrGetType SocketClientFamilyPropertyInfo = Gio.Enums.SocketFamily type AttrLabel SocketClientFamilyPropertyInfo = "family" type AttrOrigin SocketClientFamilyPropertyInfo = SocketClient attrGet _ = getSocketClientFamily attrSet _ = setSocketClientFamily attrConstruct _ = constructSocketClientFamily attrClear _ = undefined #endif -- VVV Prop "local-address" -- Type: TInterface (Name {namespace = "Gio", name = "SocketAddress"}) -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct] -- Nullable: (Just False,Just True) {- | Get the value of the “@local-address@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' socketClient #localAddress @ -} getSocketClientLocalAddress :: (MonadIO m, IsSocketClient o) => o -> m Gio.SocketAddress.SocketAddress getSocketClientLocalAddress obj = liftIO $ checkUnexpectedNothing "getSocketClientLocalAddress" $ B.Properties.getObjectPropertyObject obj "local-address" Gio.SocketAddress.SocketAddress {- | Set the value of the “@local-address@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' socketClient [ #localAddress 'Data.GI.Base.Attributes.:=' value ] @ -} setSocketClientLocalAddress :: (MonadIO m, IsSocketClient o, Gio.SocketAddress.IsSocketAddress a) => o -> a -> m () setSocketClientLocalAddress obj val = liftIO $ B.Properties.setObjectPropertyObject obj "local-address" (Just val) {- | Construct a `GValueConstruct` with valid value for the “@local-address@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructSocketClientLocalAddress :: (IsSocketClient o, Gio.SocketAddress.IsSocketAddress a) => a -> IO (GValueConstruct o) constructSocketClientLocalAddress val = B.Properties.constructObjectPropertyObject "local-address" (Just val) {- | Set the value of the “@local-address@” property to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #localAddress @ -} clearSocketClientLocalAddress :: (MonadIO m, IsSocketClient o) => o -> m () clearSocketClientLocalAddress obj = liftIO $ B.Properties.setObjectPropertyObject obj "local-address" (Nothing :: Maybe Gio.SocketAddress.SocketAddress) #if ENABLE_OVERLOADING data SocketClientLocalAddressPropertyInfo instance AttrInfo SocketClientLocalAddressPropertyInfo where type AttrAllowedOps SocketClientLocalAddressPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint SocketClientLocalAddressPropertyInfo = Gio.SocketAddress.IsSocketAddress type AttrBaseTypeConstraint SocketClientLocalAddressPropertyInfo = IsSocketClient type AttrGetType SocketClientLocalAddressPropertyInfo = Gio.SocketAddress.SocketAddress type AttrLabel SocketClientLocalAddressPropertyInfo = "local-address" type AttrOrigin SocketClientLocalAddressPropertyInfo = SocketClient attrGet _ = getSocketClientLocalAddress attrSet _ = setSocketClientLocalAddress attrConstruct _ = constructSocketClientLocalAddress attrClear _ = clearSocketClientLocalAddress #endif -- VVV Prop "protocol" -- Type: TInterface (Name {namespace = "Gio", name = "SocketProtocol"}) -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct] -- Nullable: (Just False,Just False) {- | Get the value of the “@protocol@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' socketClient #protocol @ -} getSocketClientProtocol :: (MonadIO m, IsSocketClient o) => o -> m Gio.Enums.SocketProtocol getSocketClientProtocol obj = liftIO $ B.Properties.getObjectPropertyEnum obj "protocol" {- | Set the value of the “@protocol@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' socketClient [ #protocol 'Data.GI.Base.Attributes.:=' value ] @ -} setSocketClientProtocol :: (MonadIO m, IsSocketClient o) => o -> Gio.Enums.SocketProtocol -> m () setSocketClientProtocol obj val = liftIO $ B.Properties.setObjectPropertyEnum obj "protocol" val {- | Construct a `GValueConstruct` with valid value for the “@protocol@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructSocketClientProtocol :: (IsSocketClient o) => Gio.Enums.SocketProtocol -> IO (GValueConstruct o) constructSocketClientProtocol val = B.Properties.constructObjectPropertyEnum "protocol" val #if ENABLE_OVERLOADING data SocketClientProtocolPropertyInfo instance AttrInfo SocketClientProtocolPropertyInfo where type AttrAllowedOps SocketClientProtocolPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint SocketClientProtocolPropertyInfo = (~) Gio.Enums.SocketProtocol type AttrBaseTypeConstraint SocketClientProtocolPropertyInfo = IsSocketClient type AttrGetType SocketClientProtocolPropertyInfo = Gio.Enums.SocketProtocol type AttrLabel SocketClientProtocolPropertyInfo = "protocol" type AttrOrigin SocketClientProtocolPropertyInfo = SocketClient attrGet _ = getSocketClientProtocol attrSet _ = setSocketClientProtocol attrConstruct _ = constructSocketClientProtocol attrClear _ = undefined #endif -- VVV Prop "proxy-resolver" -- Type: TInterface (Name {namespace = "Gio", name = "ProxyResolver"}) -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct] -- Nullable: (Just False,Just True) {- | Get the value of the “@proxy-resolver@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' socketClient #proxyResolver @ -} getSocketClientProxyResolver :: (MonadIO m, IsSocketClient o) => o -> m Gio.ProxyResolver.ProxyResolver getSocketClientProxyResolver obj = liftIO $ checkUnexpectedNothing "getSocketClientProxyResolver" $ B.Properties.getObjectPropertyObject obj "proxy-resolver" Gio.ProxyResolver.ProxyResolver {- | Set the value of the “@proxy-resolver@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' socketClient [ #proxyResolver 'Data.GI.Base.Attributes.:=' value ] @ -} setSocketClientProxyResolver :: (MonadIO m, IsSocketClient o, Gio.ProxyResolver.IsProxyResolver a) => o -> a -> m () setSocketClientProxyResolver obj val = liftIO $ B.Properties.setObjectPropertyObject obj "proxy-resolver" (Just val) {- | Construct a `GValueConstruct` with valid value for the “@proxy-resolver@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructSocketClientProxyResolver :: (IsSocketClient o, Gio.ProxyResolver.IsProxyResolver a) => a -> IO (GValueConstruct o) constructSocketClientProxyResolver val = B.Properties.constructObjectPropertyObject "proxy-resolver" (Just val) {- | Set the value of the “@proxy-resolver@” property to `Nothing`. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.clear' #proxyResolver @ -} clearSocketClientProxyResolver :: (MonadIO m, IsSocketClient o) => o -> m () clearSocketClientProxyResolver obj = liftIO $ B.Properties.setObjectPropertyObject obj "proxy-resolver" (Nothing :: Maybe Gio.ProxyResolver.ProxyResolver) #if ENABLE_OVERLOADING data SocketClientProxyResolverPropertyInfo instance AttrInfo SocketClientProxyResolverPropertyInfo where type AttrAllowedOps SocketClientProxyResolverPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear] type AttrSetTypeConstraint SocketClientProxyResolverPropertyInfo = Gio.ProxyResolver.IsProxyResolver type AttrBaseTypeConstraint SocketClientProxyResolverPropertyInfo = IsSocketClient type AttrGetType SocketClientProxyResolverPropertyInfo = Gio.ProxyResolver.ProxyResolver type AttrLabel SocketClientProxyResolverPropertyInfo = "proxy-resolver" type AttrOrigin SocketClientProxyResolverPropertyInfo = SocketClient attrGet _ = getSocketClientProxyResolver attrSet _ = setSocketClientProxyResolver attrConstruct _ = constructSocketClientProxyResolver attrClear _ = clearSocketClientProxyResolver #endif -- VVV Prop "timeout" -- Type: TBasicType TUInt -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct] -- Nullable: (Just False,Just False) {- | Get the value of the “@timeout@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' socketClient #timeout @ -} getSocketClientTimeout :: (MonadIO m, IsSocketClient o) => o -> m Word32 getSocketClientTimeout obj = liftIO $ B.Properties.getObjectPropertyUInt32 obj "timeout" {- | Set the value of the “@timeout@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' socketClient [ #timeout 'Data.GI.Base.Attributes.:=' value ] @ -} setSocketClientTimeout :: (MonadIO m, IsSocketClient o) => o -> Word32 -> m () setSocketClientTimeout obj val = liftIO $ B.Properties.setObjectPropertyUInt32 obj "timeout" val {- | Construct a `GValueConstruct` with valid value for the “@timeout@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructSocketClientTimeout :: (IsSocketClient o) => Word32 -> IO (GValueConstruct o) constructSocketClientTimeout val = B.Properties.constructObjectPropertyUInt32 "timeout" val #if ENABLE_OVERLOADING data SocketClientTimeoutPropertyInfo instance AttrInfo SocketClientTimeoutPropertyInfo where type AttrAllowedOps SocketClientTimeoutPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint SocketClientTimeoutPropertyInfo = (~) Word32 type AttrBaseTypeConstraint SocketClientTimeoutPropertyInfo = IsSocketClient type AttrGetType SocketClientTimeoutPropertyInfo = Word32 type AttrLabel SocketClientTimeoutPropertyInfo = "timeout" type AttrOrigin SocketClientTimeoutPropertyInfo = SocketClient attrGet _ = getSocketClientTimeout attrSet _ = setSocketClientTimeout attrConstruct _ = constructSocketClientTimeout attrClear _ = undefined #endif -- VVV Prop "tls" -- Type: TBasicType TBoolean -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct] -- Nullable: (Just False,Just False) {- | Get the value of the “@tls@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' socketClient #tls @ -} getSocketClientTls :: (MonadIO m, IsSocketClient o) => o -> m Bool getSocketClientTls obj = liftIO $ B.Properties.getObjectPropertyBool obj "tls" {- | Set the value of the “@tls@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' socketClient [ #tls 'Data.GI.Base.Attributes.:=' value ] @ -} setSocketClientTls :: (MonadIO m, IsSocketClient o) => o -> Bool -> m () setSocketClientTls obj val = liftIO $ B.Properties.setObjectPropertyBool obj "tls" val {- | Construct a `GValueConstruct` with valid value for the “@tls@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructSocketClientTls :: (IsSocketClient o) => Bool -> IO (GValueConstruct o) constructSocketClientTls val = B.Properties.constructObjectPropertyBool "tls" val #if ENABLE_OVERLOADING data SocketClientTlsPropertyInfo instance AttrInfo SocketClientTlsPropertyInfo where type AttrAllowedOps SocketClientTlsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint SocketClientTlsPropertyInfo = (~) Bool type AttrBaseTypeConstraint SocketClientTlsPropertyInfo = IsSocketClient type AttrGetType SocketClientTlsPropertyInfo = Bool type AttrLabel SocketClientTlsPropertyInfo = "tls" type AttrOrigin SocketClientTlsPropertyInfo = SocketClient attrGet _ = getSocketClientTls attrSet _ = setSocketClientTls attrConstruct _ = constructSocketClientTls attrClear _ = undefined #endif -- VVV Prop "tls-validation-flags" -- Type: TInterface (Name {namespace = "Gio", name = "TlsCertificateFlags"}) -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct] -- Nullable: (Just False,Just False) {- | Get the value of the “@tls-validation-flags@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' socketClient #tlsValidationFlags @ -} getSocketClientTlsValidationFlags :: (MonadIO m, IsSocketClient o) => o -> m [Gio.Flags.TlsCertificateFlags] getSocketClientTlsValidationFlags obj = liftIO $ B.Properties.getObjectPropertyFlags obj "tls-validation-flags" {- | Set the value of the “@tls-validation-flags@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' socketClient [ #tlsValidationFlags 'Data.GI.Base.Attributes.:=' value ] @ -} setSocketClientTlsValidationFlags :: (MonadIO m, IsSocketClient o) => o -> [Gio.Flags.TlsCertificateFlags] -> m () setSocketClientTlsValidationFlags obj val = liftIO $ B.Properties.setObjectPropertyFlags obj "tls-validation-flags" val {- | Construct a `GValueConstruct` with valid value for the “@tls-validation-flags@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructSocketClientTlsValidationFlags :: (IsSocketClient o) => [Gio.Flags.TlsCertificateFlags] -> IO (GValueConstruct o) constructSocketClientTlsValidationFlags val = B.Properties.constructObjectPropertyFlags "tls-validation-flags" val #if ENABLE_OVERLOADING data SocketClientTlsValidationFlagsPropertyInfo instance AttrInfo SocketClientTlsValidationFlagsPropertyInfo where type AttrAllowedOps SocketClientTlsValidationFlagsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint SocketClientTlsValidationFlagsPropertyInfo = (~) [Gio.Flags.TlsCertificateFlags] type AttrBaseTypeConstraint SocketClientTlsValidationFlagsPropertyInfo = IsSocketClient type AttrGetType SocketClientTlsValidationFlagsPropertyInfo = [Gio.Flags.TlsCertificateFlags] type AttrLabel SocketClientTlsValidationFlagsPropertyInfo = "tls-validation-flags" type AttrOrigin SocketClientTlsValidationFlagsPropertyInfo = SocketClient attrGet _ = getSocketClientTlsValidationFlags attrSet _ = setSocketClientTlsValidationFlags attrConstruct _ = constructSocketClientTlsValidationFlags attrClear _ = undefined #endif -- VVV Prop "type" -- Type: TInterface (Name {namespace = "Gio", name = "SocketType"}) -- Flags: [PropertyReadable,PropertyWritable,PropertyConstruct] -- Nullable: (Nothing,Nothing) {- | Get the value of the “@type@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.get' socketClient #type @ -} getSocketClientType :: (MonadIO m, IsSocketClient o) => o -> m Gio.Enums.SocketType getSocketClientType obj = liftIO $ B.Properties.getObjectPropertyEnum obj "type" {- | Set the value of the “@type@” property. When is enabled, this is equivalent to @ 'Data.GI.Base.Attributes.set' socketClient [ #type 'Data.GI.Base.Attributes.:=' value ] @ -} setSocketClientType :: (MonadIO m, IsSocketClient o) => o -> Gio.Enums.SocketType -> m () setSocketClientType obj val = liftIO $ B.Properties.setObjectPropertyEnum obj "type" val {- | Construct a `GValueConstruct` with valid value for the “@type@” property. This is rarely needed directly, but it is used by `Data.GI.Base.Constructible.new`. -} constructSocketClientType :: (IsSocketClient o) => Gio.Enums.SocketType -> IO (GValueConstruct o) constructSocketClientType val = B.Properties.constructObjectPropertyEnum "type" val #if ENABLE_OVERLOADING data SocketClientTypePropertyInfo instance AttrInfo SocketClientTypePropertyInfo where type AttrAllowedOps SocketClientTypePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet] type AttrSetTypeConstraint SocketClientTypePropertyInfo = (~) Gio.Enums.SocketType type AttrBaseTypeConstraint SocketClientTypePropertyInfo = IsSocketClient type AttrGetType SocketClientTypePropertyInfo = Gio.Enums.SocketType type AttrLabel SocketClientTypePropertyInfo = "type" type AttrOrigin SocketClientTypePropertyInfo = SocketClient attrGet _ = getSocketClientType attrSet _ = setSocketClientType attrConstruct _ = constructSocketClientType attrClear _ = undefined #endif #if ENABLE_OVERLOADING instance O.HasAttributeList SocketClient type instance O.AttributeList SocketClient = SocketClientAttributeList type SocketClientAttributeList = ('[ '("enableProxy", SocketClientEnableProxyPropertyInfo), '("family", SocketClientFamilyPropertyInfo), '("localAddress", SocketClientLocalAddressPropertyInfo), '("protocol", SocketClientProtocolPropertyInfo), '("proxyResolver", SocketClientProxyResolverPropertyInfo), '("timeout", SocketClientTimeoutPropertyInfo), '("tls", SocketClientTlsPropertyInfo), '("tlsValidationFlags", SocketClientTlsValidationFlagsPropertyInfo), '("type", SocketClientTypePropertyInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING socketClientEnableProxy :: AttrLabelProxy "enableProxy" socketClientEnableProxy = AttrLabelProxy socketClientFamily :: AttrLabelProxy "family" socketClientFamily = AttrLabelProxy socketClientLocalAddress :: AttrLabelProxy "localAddress" socketClientLocalAddress = AttrLabelProxy socketClientProtocol :: AttrLabelProxy "protocol" socketClientProtocol = AttrLabelProxy socketClientProxyResolver :: AttrLabelProxy "proxyResolver" socketClientProxyResolver = AttrLabelProxy socketClientTimeout :: AttrLabelProxy "timeout" socketClientTimeout = AttrLabelProxy socketClientTls :: AttrLabelProxy "tls" socketClientTls = AttrLabelProxy socketClientTlsValidationFlags :: AttrLabelProxy "tlsValidationFlags" socketClientTlsValidationFlags = AttrLabelProxy socketClientType :: AttrLabelProxy "type" socketClientType = AttrLabelProxy #endif #if ENABLE_OVERLOADING data SocketClientEventSignalInfo instance SignalInfo SocketClientEventSignalInfo where type HaskellCallbackType SocketClientEventSignalInfo = SocketClientEventCallback connectSignal _ obj cb connectMode = do let cb' = wrap_SocketClientEventCallback cb cb'' <- mk_SocketClientEventCallback cb' connectSignalFunPtr obj "event" cb'' connectMode type instance O.SignalList SocketClient = SocketClientSignalList type SocketClientSignalList = ('[ '("event", SocketClientEventSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method SocketClient::new -- method type : Constructor -- Args : [] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketClient"})) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_new" g_socket_client_new :: IO (Ptr SocketClient) {- | Creates a new 'GI.Gio.Objects.SocketClient.SocketClient' with the default options. /Since: 2.22/ -} socketClientNew :: (B.CallStack.HasCallStack, MonadIO m) => m SocketClient {- ^ __Returns:__ a 'GI.Gio.Objects.SocketClient.SocketClient'. Free the returned object with 'GI.GObject.Objects.Object.objectUnref'. -} socketClientNew = liftIO $ do result <- g_socket_client_new checkUnexpectedReturnNULL "socketClientNew" result result' <- (wrapObject SocketClient) result return result' #if ENABLE_OVERLOADING #endif -- method SocketClient::add_application_proxy -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "The proxy protocol", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_add_application_proxy" g_socket_client_add_application_proxy :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CString -> -- protocol : TBasicType TUTF8 IO () {- | Enable proxy protocols to be handled by the application. When the indicated proxy protocol is returned by the 'GI.Gio.Interfaces.ProxyResolver.ProxyResolver', 'GI.Gio.Objects.SocketClient.SocketClient' will consider this protocol as supported but will not try to find a 'GI.Gio.Interfaces.Proxy.Proxy' instance to handle handshaking. The application must check for this case by calling 'GI.Gio.Objects.SocketConnection.socketConnectionGetRemoteAddress' on the returned 'GI.Gio.Objects.SocketConnection.SocketConnection', and seeing if it\'s a 'GI.Gio.Objects.ProxyAddress.ProxyAddress' of the appropriate type, to determine whether or not it needs to handle the proxy handshaking itself. This should be used for proxy protocols that are dialects of another protocol such as HTTP proxy. It also allows cohabitation of proxy protocols that are reused between protocols. A good example is HTTP. It can be used to proxy HTTP, FTP and Gopher and can also be use as generic socket proxy through the HTTP CONNECT method. When the proxy is detected as being an application proxy, TLS handshake will be skipped. This is required to let the application do the proxy specific handshake. -} socketClientAddApplicationProxy :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient' -} -> T.Text {- ^ /@protocol@/: The proxy protocol -} -> m () socketClientAddApplicationProxy client protocol = liftIO $ do client' <- unsafeManagedPtrCastPtr client protocol' <- textToCString protocol g_socket_client_add_application_proxy client' protocol' touchManagedPtr client freeMem protocol' return () #if ENABLE_OVERLOADING data SocketClientAddApplicationProxyMethodInfo instance (signature ~ (T.Text -> m ()), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientAddApplicationProxyMethodInfo a signature where overloadedMethod _ = socketClientAddApplicationProxy #endif -- method SocketClient::connect -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "connectable", argType = TInterface (Name {namespace = "Gio", name = "SocketConnectable"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketConnectable specifying the remote address.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "optional #GCancellable object, %NULL to ignore.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketConnection"})) -- throws : True -- Skip return : False foreign import ccall "g_socket_client_connect" g_socket_client_connect :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) Ptr Gio.SocketConnectable.SocketConnectable -> -- connectable : TInterface (Name {namespace = "Gio", name = "SocketConnectable"}) Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) Ptr (Ptr GError) -> -- error IO (Ptr Gio.SocketConnection.SocketConnection) {- | Tries to resolve the /@connectable@/ and make a network connection to it. Upon a successful connection, a new 'GI.Gio.Objects.SocketConnection.SocketConnection' is constructed and returned. The caller owns this new object and must drop their reference to it when finished with it. The type of the 'GI.Gio.Objects.SocketConnection.SocketConnection' object returned depends on the type of the underlying socket that is used. For instance, for a TCP\/IP connection it will be a 'GI.Gio.Objects.TcpConnection.TcpConnection'. The socket created will be the same family as the address that the /@connectable@/ resolves to, unless family is set with 'GI.Gio.Objects.SocketClient.socketClientSetFamily' or indirectly via 'GI.Gio.Objects.SocketClient.socketClientSetLocalAddress'. The socket type defaults to 'GI.Gio.Enums.SocketTypeStream' but can be set with 'GI.Gio.Objects.SocketClient.socketClientSetSocketType'. If a local address is specified with 'GI.Gio.Objects.SocketClient.socketClientSetLocalAddress' the socket will be bound to this address before connecting. /Since: 2.22/ -} socketClientConnect :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.SocketConnectable.IsSocketConnectable b, Gio.Cancellable.IsCancellable c) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> b {- ^ /@connectable@/: a 'GI.Gio.Interfaces.SocketConnectable.SocketConnectable' specifying the remote address. -} -> Maybe (c) {- ^ /@cancellable@/: optional 'GI.Gio.Objects.Cancellable.Cancellable' object, 'Nothing' to ignore. -} -> m Gio.SocketConnection.SocketConnection {- ^ __Returns:__ a 'GI.Gio.Objects.SocketConnection.SocketConnection' on success, 'Nothing' on error. /(Can throw 'Data.GI.Base.GError.GError')/ -} socketClientConnect client connectable cancellable = liftIO $ do client' <- unsafeManagedPtrCastPtr client connectable' <- unsafeManagedPtrCastPtr connectable maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' onException (do result <- propagateGError $ g_socket_client_connect client' connectable' maybeCancellable checkUnexpectedReturnNULL "socketClientConnect" result result' <- (wrapObject Gio.SocketConnection.SocketConnection) result touchManagedPtr client touchManagedPtr connectable whenJust cancellable touchManagedPtr return result' ) (do return () ) #if ENABLE_OVERLOADING data SocketClientConnectMethodInfo instance (signature ~ (b -> Maybe (c) -> m Gio.SocketConnection.SocketConnection), MonadIO m, IsSocketClient a, Gio.SocketConnectable.IsSocketConnectable b, Gio.Cancellable.IsCancellable c) => O.MethodInfo SocketClientConnectMethodInfo a signature where overloadedMethod _ = socketClientConnect #endif -- method SocketClient::connect_async -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "connectable", argType = TInterface (Name {namespace = "Gio", name = "SocketConnectable"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketConnectable specifying the remote address.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GAsyncReadyCallback", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data for the callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_connect_async" g_socket_client_connect_async :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) Ptr Gio.SocketConnectable.SocketConnectable -> -- connectable : TInterface (Name {namespace = "Gio", name = "SocketConnectable"}) Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}) Ptr () -> -- user_data : TBasicType TPtr IO () {- | This is the asynchronous version of 'GI.Gio.Objects.SocketClient.socketClientConnect'. When the operation is finished /@callback@/ will be called. You can then call 'GI.Gio.Objects.SocketClient.socketClientConnectFinish' to get the result of the operation. /Since: 2.22/ -} socketClientConnectAsync :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.SocketConnectable.IsSocketConnectable b, Gio.Cancellable.IsCancellable c) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient' -} -> b {- ^ /@connectable@/: a 'GI.Gio.Interfaces.SocketConnectable.SocketConnectable' specifying the remote address. -} -> Maybe (c) {- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -} -> Maybe (Gio.Callbacks.AsyncReadyCallback) {- ^ /@callback@/: a 'GI.Gio.Callbacks.AsyncReadyCallback' -} -> m () socketClientConnectAsync client connectable cancellable callback = liftIO $ do client' <- unsafeManagedPtrCastPtr client connectable' <- unsafeManagedPtrCastPtr connectable maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' maybeCallback <- case callback of Nothing -> return (castPtrToFunPtr nullPtr) Just jCallback -> do ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback)) jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback)) poke ptrcallback jCallback' return jCallback' let userData = nullPtr g_socket_client_connect_async client' connectable' maybeCancellable maybeCallback userData touchManagedPtr client touchManagedPtr connectable whenJust cancellable touchManagedPtr return () #if ENABLE_OVERLOADING data SocketClientConnectAsyncMethodInfo instance (signature ~ (b -> Maybe (c) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsSocketClient a, Gio.SocketConnectable.IsSocketConnectable b, Gio.Cancellable.IsCancellable c) => O.MethodInfo SocketClientConnectAsyncMethodInfo a signature where overloadedMethod _ = socketClientConnectAsync #endif -- method SocketClient::connect_finish -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GAsyncResult.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketConnection"})) -- throws : True -- Skip return : False foreign import ccall "g_socket_client_connect_finish" g_socket_client_connect_finish :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"}) Ptr (Ptr GError) -> -- error IO (Ptr Gio.SocketConnection.SocketConnection) {- | Finishes an async connect operation. See 'GI.Gio.Objects.SocketClient.socketClientConnectAsync' /Since: 2.22/ -} socketClientConnectFinish :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.AsyncResult.IsAsyncResult b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> b {- ^ /@result@/: a 'GI.Gio.Interfaces.AsyncResult.AsyncResult'. -} -> m Gio.SocketConnection.SocketConnection {- ^ __Returns:__ a 'GI.Gio.Objects.SocketConnection.SocketConnection' on success, 'Nothing' on error. /(Can throw 'Data.GI.Base.GError.GError')/ -} socketClientConnectFinish client result_ = liftIO $ do client' <- unsafeManagedPtrCastPtr client result_' <- unsafeManagedPtrCastPtr result_ onException (do result <- propagateGError $ g_socket_client_connect_finish client' result_' checkUnexpectedReturnNULL "socketClientConnectFinish" result result' <- (wrapObject Gio.SocketConnection.SocketConnection) result touchManagedPtr client touchManagedPtr result_ return result' ) (do return () ) #if ENABLE_OVERLOADING data SocketClientConnectFinishMethodInfo instance (signature ~ (b -> m Gio.SocketConnection.SocketConnection), MonadIO m, IsSocketClient a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo SocketClientConnectFinishMethodInfo a signature where overloadedMethod _ = socketClientConnectFinish #endif -- method SocketClient::connect_to_host -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "host_and_port", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the name and optionally port of the host to connect to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_port", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the default port to connect to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketConnection"})) -- throws : True -- Skip return : False foreign import ccall "g_socket_client_connect_to_host" g_socket_client_connect_to_host :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CString -> -- host_and_port : TBasicType TUTF8 Word16 -> -- default_port : TBasicType TUInt16 Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) Ptr (Ptr GError) -> -- error IO (Ptr Gio.SocketConnection.SocketConnection) {- | This is a helper function for 'GI.Gio.Objects.SocketClient.socketClientConnect'. Attempts to create a TCP connection to the named host. /@hostAndPort@/ may be in any of a number of recognized formats; an IPv6 address, an IPv4 address, or a domain name (in which case a DNS lookup is performed). Quoting with [] is supported for all address types. A port override may be specified in the usual way with a colon. Ports may be given as decimal numbers or symbolic names (in which case an \/etc\/services lookup is performed). If no port override is given in /@hostAndPort@/ then /@defaultPort@/ will be used as the port number to connect to. In general, /@hostAndPort@/ is expected to be provided by the user (allowing them to give the hostname, and a port override if necessary) and /@defaultPort@/ is expected to be provided by the application. In the case that an IP address is given, a single connection attempt is made. In the case that a name is given, multiple connection attempts may be made, in turn and according to the number of address records in DNS, until a connection succeeds. Upon a successful connection, a new 'GI.Gio.Objects.SocketConnection.SocketConnection' is constructed and returned. The caller owns this new object and must drop their reference to it when finished with it. In the event of any failure (DNS error, service not found, no hosts connectable) 'Nothing' is returned and /@error@/ (if non-'Nothing') is set accordingly. /Since: 2.22/ -} socketClientConnectToHost :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient' -} -> T.Text {- ^ /@hostAndPort@/: the name and optionally port of the host to connect to -} -> Word16 {- ^ /@defaultPort@/: the default port to connect to -} -> Maybe (b) {- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -} -> m Gio.SocketConnection.SocketConnection {- ^ __Returns:__ a 'GI.Gio.Objects.SocketConnection.SocketConnection' on success, 'Nothing' on error. /(Can throw 'Data.GI.Base.GError.GError')/ -} socketClientConnectToHost client hostAndPort defaultPort cancellable = liftIO $ do client' <- unsafeManagedPtrCastPtr client hostAndPort' <- textToCString hostAndPort maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' onException (do result <- propagateGError $ g_socket_client_connect_to_host client' hostAndPort' defaultPort maybeCancellable checkUnexpectedReturnNULL "socketClientConnectToHost" result result' <- (wrapObject Gio.SocketConnection.SocketConnection) result touchManagedPtr client whenJust cancellable touchManagedPtr freeMem hostAndPort' return result' ) (do freeMem hostAndPort' ) #if ENABLE_OVERLOADING data SocketClientConnectToHostMethodInfo instance (signature ~ (T.Text -> Word16 -> Maybe (b) -> m Gio.SocketConnection.SocketConnection), MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => O.MethodInfo SocketClientConnectToHostMethodInfo a signature where overloadedMethod _ = socketClientConnectToHost #endif -- method SocketClient::connect_to_host_async -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "host_and_port", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the name and optionally the port of the host to connect to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_port", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the default port to connect to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GAsyncReadyCallback", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data for the callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_connect_to_host_async" g_socket_client_connect_to_host_async :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CString -> -- host_and_port : TBasicType TUTF8 Word16 -> -- default_port : TBasicType TUInt16 Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}) Ptr () -> -- user_data : TBasicType TPtr IO () {- | This is the asynchronous version of 'GI.Gio.Objects.SocketClient.socketClientConnectToHost'. When the operation is finished /@callback@/ will be called. You can then call 'GI.Gio.Objects.SocketClient.socketClientConnectToHostFinish' to get the result of the operation. /Since: 2.22/ -} socketClientConnectToHostAsync :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient' -} -> T.Text {- ^ /@hostAndPort@/: the name and optionally the port of the host to connect to -} -> Word16 {- ^ /@defaultPort@/: the default port to connect to -} -> Maybe (b) {- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -} -> Maybe (Gio.Callbacks.AsyncReadyCallback) {- ^ /@callback@/: a 'GI.Gio.Callbacks.AsyncReadyCallback' -} -> m () socketClientConnectToHostAsync client hostAndPort defaultPort cancellable callback = liftIO $ do client' <- unsafeManagedPtrCastPtr client hostAndPort' <- textToCString hostAndPort maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' maybeCallback <- case callback of Nothing -> return (castPtrToFunPtr nullPtr) Just jCallback -> do ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback)) jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback)) poke ptrcallback jCallback' return jCallback' let userData = nullPtr g_socket_client_connect_to_host_async client' hostAndPort' defaultPort maybeCancellable maybeCallback userData touchManagedPtr client whenJust cancellable touchManagedPtr freeMem hostAndPort' return () #if ENABLE_OVERLOADING data SocketClientConnectToHostAsyncMethodInfo instance (signature ~ (T.Text -> Word16 -> Maybe (b) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => O.MethodInfo SocketClientConnectToHostAsyncMethodInfo a signature where overloadedMethod _ = socketClientConnectToHostAsync #endif -- method SocketClient::connect_to_host_finish -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GAsyncResult.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketConnection"})) -- throws : True -- Skip return : False foreign import ccall "g_socket_client_connect_to_host_finish" g_socket_client_connect_to_host_finish :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"}) Ptr (Ptr GError) -> -- error IO (Ptr Gio.SocketConnection.SocketConnection) {- | Finishes an async connect operation. See 'GI.Gio.Objects.SocketClient.socketClientConnectToHostAsync' /Since: 2.22/ -} socketClientConnectToHostFinish :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.AsyncResult.IsAsyncResult b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> b {- ^ /@result@/: a 'GI.Gio.Interfaces.AsyncResult.AsyncResult'. -} -> m Gio.SocketConnection.SocketConnection {- ^ __Returns:__ a 'GI.Gio.Objects.SocketConnection.SocketConnection' on success, 'Nothing' on error. /(Can throw 'Data.GI.Base.GError.GError')/ -} socketClientConnectToHostFinish client result_ = liftIO $ do client' <- unsafeManagedPtrCastPtr client result_' <- unsafeManagedPtrCastPtr result_ onException (do result <- propagateGError $ g_socket_client_connect_to_host_finish client' result_' checkUnexpectedReturnNULL "socketClientConnectToHostFinish" result result' <- (wrapObject Gio.SocketConnection.SocketConnection) result touchManagedPtr client touchManagedPtr result_ return result' ) (do return () ) #if ENABLE_OVERLOADING data SocketClientConnectToHostFinishMethodInfo instance (signature ~ (b -> m Gio.SocketConnection.SocketConnection), MonadIO m, IsSocketClient a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo SocketClientConnectToHostFinishMethodInfo a signature where overloadedMethod _ = socketClientConnectToHostFinish #endif -- method SocketClient::connect_to_service -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketConnection", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a domain name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "service", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the name of the service to connect to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketConnection"})) -- throws : True -- Skip return : False foreign import ccall "g_socket_client_connect_to_service" g_socket_client_connect_to_service :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CString -> -- domain : TBasicType TUTF8 CString -> -- service : TBasicType TUTF8 Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) Ptr (Ptr GError) -> -- error IO (Ptr Gio.SocketConnection.SocketConnection) {- | Attempts to create a TCP connection to a service. This call looks up the SRV record for /@service@/ at /@domain@/ for the \"tcp\" protocol. It then attempts to connect, in turn, to each of the hosts providing the service until either a connection succeeds or there are no hosts remaining. Upon a successful connection, a new 'GI.Gio.Objects.SocketConnection.SocketConnection' is constructed and returned. The caller owns this new object and must drop their reference to it when finished with it. In the event of any failure (DNS error, service not found, no hosts connectable) 'Nothing' is returned and /@error@/ (if non-'Nothing') is set accordingly. -} socketClientConnectToService :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketConnection.SocketConnection' -} -> T.Text {- ^ /@domain@/: a domain name -} -> T.Text {- ^ /@service@/: the name of the service to connect to -} -> Maybe (b) {- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -} -> m Gio.SocketConnection.SocketConnection {- ^ __Returns:__ a 'GI.Gio.Objects.SocketConnection.SocketConnection' if successful, or 'Nothing' on error /(Can throw 'Data.GI.Base.GError.GError')/ -} socketClientConnectToService client domain service cancellable = liftIO $ do client' <- unsafeManagedPtrCastPtr client domain' <- textToCString domain service' <- textToCString service maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' onException (do result <- propagateGError $ g_socket_client_connect_to_service client' domain' service' maybeCancellable checkUnexpectedReturnNULL "socketClientConnectToService" result result' <- (wrapObject Gio.SocketConnection.SocketConnection) result touchManagedPtr client whenJust cancellable touchManagedPtr freeMem domain' freeMem service' return result' ) (do freeMem domain' freeMem service' ) #if ENABLE_OVERLOADING data SocketClientConnectToServiceMethodInfo instance (signature ~ (T.Text -> T.Text -> Maybe (b) -> m Gio.SocketConnection.SocketConnection), MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => O.MethodInfo SocketClientConnectToServiceMethodInfo a signature where overloadedMethod _ = socketClientConnectToService #endif -- method SocketClient::connect_to_service_async -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a domain name", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "service", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the name of the service to connect to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GAsyncReadyCallback", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data for the callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_connect_to_service_async" g_socket_client_connect_to_service_async :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CString -> -- domain : TBasicType TUTF8 CString -> -- service : TBasicType TUTF8 Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}) Ptr () -> -- user_data : TBasicType TPtr IO () {- | This is the asynchronous version of 'GI.Gio.Objects.SocketClient.socketClientConnectToService'. /Since: 2.22/ -} socketClientConnectToServiceAsync :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient' -} -> T.Text {- ^ /@domain@/: a domain name -} -> T.Text {- ^ /@service@/: the name of the service to connect to -} -> Maybe (b) {- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -} -> Maybe (Gio.Callbacks.AsyncReadyCallback) {- ^ /@callback@/: a 'GI.Gio.Callbacks.AsyncReadyCallback' -} -> m () socketClientConnectToServiceAsync client domain service cancellable callback = liftIO $ do client' <- unsafeManagedPtrCastPtr client domain' <- textToCString domain service' <- textToCString service maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' maybeCallback <- case callback of Nothing -> return (castPtrToFunPtr nullPtr) Just jCallback -> do ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback)) jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback)) poke ptrcallback jCallback' return jCallback' let userData = nullPtr g_socket_client_connect_to_service_async client' domain' service' maybeCancellable maybeCallback userData touchManagedPtr client whenJust cancellable touchManagedPtr freeMem domain' freeMem service' return () #if ENABLE_OVERLOADING data SocketClientConnectToServiceAsyncMethodInfo instance (signature ~ (T.Text -> T.Text -> Maybe (b) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => O.MethodInfo SocketClientConnectToServiceAsyncMethodInfo a signature where overloadedMethod _ = socketClientConnectToServiceAsync #endif -- method SocketClient::connect_to_service_finish -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GAsyncResult.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketConnection"})) -- throws : True -- Skip return : False foreign import ccall "g_socket_client_connect_to_service_finish" g_socket_client_connect_to_service_finish :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"}) Ptr (Ptr GError) -> -- error IO (Ptr Gio.SocketConnection.SocketConnection) {- | Finishes an async connect operation. See 'GI.Gio.Objects.SocketClient.socketClientConnectToServiceAsync' /Since: 2.22/ -} socketClientConnectToServiceFinish :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.AsyncResult.IsAsyncResult b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> b {- ^ /@result@/: a 'GI.Gio.Interfaces.AsyncResult.AsyncResult'. -} -> m Gio.SocketConnection.SocketConnection {- ^ __Returns:__ a 'GI.Gio.Objects.SocketConnection.SocketConnection' on success, 'Nothing' on error. /(Can throw 'Data.GI.Base.GError.GError')/ -} socketClientConnectToServiceFinish client result_ = liftIO $ do client' <- unsafeManagedPtrCastPtr client result_' <- unsafeManagedPtrCastPtr result_ onException (do result <- propagateGError $ g_socket_client_connect_to_service_finish client' result_' checkUnexpectedReturnNULL "socketClientConnectToServiceFinish" result result' <- (wrapObject Gio.SocketConnection.SocketConnection) result touchManagedPtr client touchManagedPtr result_ return result' ) (do return () ) #if ENABLE_OVERLOADING data SocketClientConnectToServiceFinishMethodInfo instance (signature ~ (b -> m Gio.SocketConnection.SocketConnection), MonadIO m, IsSocketClient a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo SocketClientConnectToServiceFinishMethodInfo a signature where overloadedMethod _ = socketClientConnectToServiceFinish #endif -- method SocketClient::connect_to_uri -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "A network URI", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_port", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the default port to connect to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketConnection"})) -- throws : True -- Skip return : False foreign import ccall "g_socket_client_connect_to_uri" g_socket_client_connect_to_uri :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CString -> -- uri : TBasicType TUTF8 Word16 -> -- default_port : TBasicType TUInt16 Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) Ptr (Ptr GError) -> -- error IO (Ptr Gio.SocketConnection.SocketConnection) {- | This is a helper function for 'GI.Gio.Objects.SocketClient.socketClientConnect'. Attempts to create a TCP connection with a network URI. /@uri@/ may be any valid URI containing an \"authority\" (hostname\/port) component. If a port is not specified in the URI, /@defaultPort@/ will be used. TLS will be negotiated if 'GI.Gio.Objects.SocketClient.SocketClient':@/tls/@ is 'True'. ('GI.Gio.Objects.SocketClient.SocketClient' does not know to automatically assume TLS for certain URI schemes.) Using this rather than 'GI.Gio.Objects.SocketClient.socketClientConnect' or 'GI.Gio.Objects.SocketClient.socketClientConnectToHost' allows 'GI.Gio.Objects.SocketClient.SocketClient' to determine when to use application-specific proxy protocols. Upon a successful connection, a new 'GI.Gio.Objects.SocketConnection.SocketConnection' is constructed and returned. The caller owns this new object and must drop their reference to it when finished with it. In the event of any failure (DNS error, service not found, no hosts connectable) 'Nothing' is returned and /@error@/ (if non-'Nothing') is set accordingly. /Since: 2.26/ -} socketClientConnectToUri :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient' -} -> T.Text {- ^ /@uri@/: A network URI -} -> Word16 {- ^ /@defaultPort@/: the default port to connect to -} -> Maybe (b) {- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -} -> m Gio.SocketConnection.SocketConnection {- ^ __Returns:__ a 'GI.Gio.Objects.SocketConnection.SocketConnection' on success, 'Nothing' on error. /(Can throw 'Data.GI.Base.GError.GError')/ -} socketClientConnectToUri client uri defaultPort cancellable = liftIO $ do client' <- unsafeManagedPtrCastPtr client uri' <- textToCString uri maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' onException (do result <- propagateGError $ g_socket_client_connect_to_uri client' uri' defaultPort maybeCancellable checkUnexpectedReturnNULL "socketClientConnectToUri" result result' <- (wrapObject Gio.SocketConnection.SocketConnection) result touchManagedPtr client whenJust cancellable touchManagedPtr freeMem uri' return result' ) (do freeMem uri' ) #if ENABLE_OVERLOADING data SocketClientConnectToUriMethodInfo instance (signature ~ (T.Text -> Word16 -> Maybe (b) -> m Gio.SocketConnection.SocketConnection), MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => O.MethodInfo SocketClientConnectToUriMethodInfo a signature where overloadedMethod _ = socketClientConnectToUri #endif -- method SocketClient::connect_to_uri_async -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a network uri", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_port", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the default port to connect to", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface (Name {namespace = "Gio", name = "Cancellable"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GCancellable, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GAsyncReadyCallback", sinceVersion = Nothing}, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TPtr, direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "user data for the callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_connect_to_uri_async" g_socket_client_connect_to_uri_async :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CString -> -- uri : TBasicType TUTF8 Word16 -> -- default_port : TBasicType TUInt16 Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) FunPtr Gio.Callbacks.C_AsyncReadyCallback -> -- callback : TInterface (Name {namespace = "Gio", name = "AsyncReadyCallback"}) Ptr () -> -- user_data : TBasicType TPtr IO () {- | This is the asynchronous version of 'GI.Gio.Objects.SocketClient.socketClientConnectToUri'. When the operation is finished /@callback@/ will be called. You can then call 'GI.Gio.Objects.SocketClient.socketClientConnectToUriFinish' to get the result of the operation. /Since: 2.26/ -} socketClientConnectToUriAsync :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient' -} -> T.Text {- ^ /@uri@/: a network uri -} -> Word16 {- ^ /@defaultPort@/: the default port to connect to -} -> Maybe (b) {- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -} -> Maybe (Gio.Callbacks.AsyncReadyCallback) {- ^ /@callback@/: a 'GI.Gio.Callbacks.AsyncReadyCallback' -} -> m () socketClientConnectToUriAsync client uri defaultPort cancellable callback = liftIO $ do client' <- unsafeManagedPtrCastPtr client uri' <- textToCString uri maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' maybeCallback <- case callback of Nothing -> return (castPtrToFunPtr nullPtr) Just jCallback -> do ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.Callbacks.C_AsyncReadyCallback)) jCallback' <- Gio.Callbacks.mk_AsyncReadyCallback (Gio.Callbacks.wrap_AsyncReadyCallback (Just ptrcallback) (Gio.Callbacks.drop_closures_AsyncReadyCallback jCallback)) poke ptrcallback jCallback' return jCallback' let userData = nullPtr g_socket_client_connect_to_uri_async client' uri' defaultPort maybeCancellable maybeCallback userData touchManagedPtr client whenJust cancellable touchManagedPtr freeMem uri' return () #if ENABLE_OVERLOADING data SocketClientConnectToUriAsyncMethodInfo instance (signature ~ (T.Text -> Word16 -> Maybe (b) -> Maybe (Gio.Callbacks.AsyncReadyCallback) -> m ()), MonadIO m, IsSocketClient a, Gio.Cancellable.IsCancellable b) => O.MethodInfo SocketClientConnectToUriAsyncMethodInfo a signature where overloadedMethod _ = socketClientConnectToUriAsync #endif -- method SocketClient::connect_to_uri_finish -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TInterface (Name {namespace = "Gio", name = "AsyncResult"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GAsyncResult.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketConnection"})) -- throws : True -- Skip return : False foreign import ccall "g_socket_client_connect_to_uri_finish" g_socket_client_connect_to_uri_finish :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) Ptr Gio.AsyncResult.AsyncResult -> -- result : TInterface (Name {namespace = "Gio", name = "AsyncResult"}) Ptr (Ptr GError) -> -- error IO (Ptr Gio.SocketConnection.SocketConnection) {- | Finishes an async connect operation. See 'GI.Gio.Objects.SocketClient.socketClientConnectToUriAsync' /Since: 2.26/ -} socketClientConnectToUriFinish :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.AsyncResult.IsAsyncResult b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> b {- ^ /@result@/: a 'GI.Gio.Interfaces.AsyncResult.AsyncResult'. -} -> m Gio.SocketConnection.SocketConnection {- ^ __Returns:__ a 'GI.Gio.Objects.SocketConnection.SocketConnection' on success, 'Nothing' on error. /(Can throw 'Data.GI.Base.GError.GError')/ -} socketClientConnectToUriFinish client result_ = liftIO $ do client' <- unsafeManagedPtrCastPtr client result_' <- unsafeManagedPtrCastPtr result_ onException (do result <- propagateGError $ g_socket_client_connect_to_uri_finish client' result_' checkUnexpectedReturnNULL "socketClientConnectToUriFinish" result result' <- (wrapObject Gio.SocketConnection.SocketConnection) result touchManagedPtr client touchManagedPtr result_ return result' ) (do return () ) #if ENABLE_OVERLOADING data SocketClientConnectToUriFinishMethodInfo instance (signature ~ (b -> m Gio.SocketConnection.SocketConnection), MonadIO m, IsSocketClient a, Gio.AsyncResult.IsAsyncResult b) => O.MethodInfo SocketClientConnectToUriFinishMethodInfo a signature where overloadedMethod _ = socketClientConnectToUriFinish #endif -- method SocketClient::get_enable_proxy -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_get_enable_proxy" g_socket_client_get_enable_proxy :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) IO CInt {- | Gets the proxy enable state; see 'GI.Gio.Objects.SocketClient.socketClientSetEnableProxy' /Since: 2.26/ -} socketClientGetEnableProxy :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> m Bool {- ^ __Returns:__ whether proxying is enabled -} socketClientGetEnableProxy client = liftIO $ do client' <- unsafeManagedPtrCastPtr client result <- g_socket_client_get_enable_proxy client' let result' = (/= 0) result touchManagedPtr client return result' #if ENABLE_OVERLOADING data SocketClientGetEnableProxyMethodInfo instance (signature ~ (m Bool), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientGetEnableProxyMethodInfo a signature where overloadedMethod _ = socketClientGetEnableProxy #endif -- method SocketClient::get_family -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketFamily"})) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_get_family" g_socket_client_get_family :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) IO CUInt {- | Gets the socket family of the socket client. See 'GI.Gio.Objects.SocketClient.socketClientSetFamily' for details. /Since: 2.22/ -} socketClientGetFamily :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> m Gio.Enums.SocketFamily {- ^ __Returns:__ a 'GI.Gio.Enums.SocketFamily' -} socketClientGetFamily client = liftIO $ do client' <- unsafeManagedPtrCastPtr client result <- g_socket_client_get_family client' let result' = (toEnum . fromIntegral) result touchManagedPtr client return result' #if ENABLE_OVERLOADING data SocketClientGetFamilyMethodInfo instance (signature ~ (m Gio.Enums.SocketFamily), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientGetFamilyMethodInfo a signature where overloadedMethod _ = socketClientGetFamily #endif -- method SocketClient::get_local_address -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketAddress"})) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_get_local_address" g_socket_client_get_local_address :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) IO (Ptr Gio.SocketAddress.SocketAddress) {- | Gets the local address of the socket client. See 'GI.Gio.Objects.SocketClient.socketClientSetLocalAddress' for details. /Since: 2.22/ -} socketClientGetLocalAddress :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> m Gio.SocketAddress.SocketAddress {- ^ __Returns:__ a 'GI.Gio.Objects.SocketAddress.SocketAddress' or 'Nothing'. Do not free. -} socketClientGetLocalAddress client = liftIO $ do client' <- unsafeManagedPtrCastPtr client result <- g_socket_client_get_local_address client' checkUnexpectedReturnNULL "socketClientGetLocalAddress" result result' <- (newObject Gio.SocketAddress.SocketAddress) result touchManagedPtr client return result' #if ENABLE_OVERLOADING data SocketClientGetLocalAddressMethodInfo instance (signature ~ (m Gio.SocketAddress.SocketAddress), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientGetLocalAddressMethodInfo a signature where overloadedMethod _ = socketClientGetLocalAddress #endif -- method SocketClient::get_protocol -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketProtocol"})) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_get_protocol" g_socket_client_get_protocol :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) IO CInt {- | Gets the protocol name type of the socket client. See 'GI.Gio.Objects.SocketClient.socketClientSetProtocol' for details. /Since: 2.22/ -} socketClientGetProtocol :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient' -} -> m Gio.Enums.SocketProtocol {- ^ __Returns:__ a 'GI.Gio.Enums.SocketProtocol' -} socketClientGetProtocol client = liftIO $ do client' <- unsafeManagedPtrCastPtr client result <- g_socket_client_get_protocol client' let result' = (toEnum . fromIntegral) result touchManagedPtr client return result' #if ENABLE_OVERLOADING data SocketClientGetProtocolMethodInfo instance (signature ~ (m Gio.Enums.SocketProtocol), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientGetProtocolMethodInfo a signature where overloadedMethod _ = socketClientGetProtocol #endif -- method SocketClient::get_proxy_resolver -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "ProxyResolver"})) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_get_proxy_resolver" g_socket_client_get_proxy_resolver :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) IO (Ptr Gio.ProxyResolver.ProxyResolver) {- | Gets the 'GI.Gio.Interfaces.ProxyResolver.ProxyResolver' being used by /@client@/. Normally, this will be the resolver returned by 'GI.Gio.Functions.proxyResolverGetDefault', but you can override it with 'GI.Gio.Objects.SocketClient.socketClientSetProxyResolver'. /Since: 2.36/ -} socketClientGetProxyResolver :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> m Gio.ProxyResolver.ProxyResolver {- ^ __Returns:__ The 'GI.Gio.Interfaces.ProxyResolver.ProxyResolver' being used by /@client@/. -} socketClientGetProxyResolver client = liftIO $ do client' <- unsafeManagedPtrCastPtr client result <- g_socket_client_get_proxy_resolver client' checkUnexpectedReturnNULL "socketClientGetProxyResolver" result result' <- (newObject Gio.ProxyResolver.ProxyResolver) result touchManagedPtr client return result' #if ENABLE_OVERLOADING data SocketClientGetProxyResolverMethodInfo instance (signature ~ (m Gio.ProxyResolver.ProxyResolver), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientGetProxyResolverMethodInfo a signature where overloadedMethod _ = socketClientGetProxyResolver #endif -- method SocketClient::get_socket_type -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "SocketType"})) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_get_socket_type" g_socket_client_get_socket_type :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) IO CUInt {- | Gets the socket type of the socket client. See 'GI.Gio.Objects.SocketClient.socketClientSetSocketType' for details. /Since: 2.22/ -} socketClientGetSocketType :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> m Gio.Enums.SocketType {- ^ __Returns:__ a 'GI.Gio.Enums.SocketFamily' -} socketClientGetSocketType client = liftIO $ do client' <- unsafeManagedPtrCastPtr client result <- g_socket_client_get_socket_type client' let result' = (toEnum . fromIntegral) result touchManagedPtr client return result' #if ENABLE_OVERLOADING data SocketClientGetSocketTypeMethodInfo instance (signature ~ (m Gio.Enums.SocketType), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientGetSocketTypeMethodInfo a signature where overloadedMethod _ = socketClientGetSocketType #endif -- method SocketClient::get_timeout -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUInt) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_get_timeout" g_socket_client_get_timeout :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) IO Word32 {- | Gets the I\/O timeout time for sockets created by /@client@/. See 'GI.Gio.Objects.SocketClient.socketClientSetTimeout' for details. /Since: 2.26/ -} socketClientGetTimeout :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient' -} -> m Word32 {- ^ __Returns:__ the timeout in seconds -} socketClientGetTimeout client = liftIO $ do client' <- unsafeManagedPtrCastPtr client result <- g_socket_client_get_timeout client' touchManagedPtr client return result #if ENABLE_OVERLOADING data SocketClientGetTimeoutMethodInfo instance (signature ~ (m Word32), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientGetTimeoutMethodInfo a signature where overloadedMethod _ = socketClientGetTimeout #endif -- method SocketClient::get_tls -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_get_tls" g_socket_client_get_tls :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) IO CInt {- | Gets whether /@client@/ creates TLS connections. See 'GI.Gio.Objects.SocketClient.socketClientSetTls' for details. /Since: 2.28/ -} socketClientGetTls :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> m Bool {- ^ __Returns:__ whether /@client@/ uses TLS -} socketClientGetTls client = liftIO $ do client' <- unsafeManagedPtrCastPtr client result <- g_socket_client_get_tls client' let result' = (/= 0) result touchManagedPtr client return result' #if ENABLE_OVERLOADING data SocketClientGetTlsMethodInfo instance (signature ~ (m Bool), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientGetTlsMethodInfo a signature where overloadedMethod _ = socketClientGetTls #endif -- method SocketClient::get_tls_validation_flags -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gio", name = "TlsCertificateFlags"})) -- throws : False -- Skip return : False foreign import ccall "g_socket_client_get_tls_validation_flags" g_socket_client_get_tls_validation_flags :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) IO CUInt {- | Gets the TLS validation flags used creating TLS connections via /@client@/. /Since: 2.28/ -} socketClientGetTlsValidationFlags :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> m [Gio.Flags.TlsCertificateFlags] {- ^ __Returns:__ the TLS validation flags -} socketClientGetTlsValidationFlags client = liftIO $ do client' <- unsafeManagedPtrCastPtr client result <- g_socket_client_get_tls_validation_flags client' let result' = wordToGFlags result touchManagedPtr client return result' #if ENABLE_OVERLOADING data SocketClientGetTlsValidationFlagsMethodInfo instance (signature ~ (m [Gio.Flags.TlsCertificateFlags]), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientGetTlsValidationFlagsMethodInfo a signature where overloadedMethod _ = socketClientGetTlsValidationFlags #endif -- method SocketClient::set_enable_proxy -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether to enable proxies", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_set_enable_proxy" g_socket_client_set_enable_proxy :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CInt -> -- enable : TBasicType TBoolean IO () {- | Sets whether or not /@client@/ attempts to make connections via a proxy server. When enabled (the default), 'GI.Gio.Objects.SocketClient.SocketClient' will use a 'GI.Gio.Interfaces.ProxyResolver.ProxyResolver' to determine if a proxy protocol such as SOCKS is needed, and automatically do the necessary proxy negotiation. See also 'GI.Gio.Objects.SocketClient.socketClientSetProxyResolver'. /Since: 2.26/ -} socketClientSetEnableProxy :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> Bool {- ^ /@enable@/: whether to enable proxies -} -> m () socketClientSetEnableProxy client enable = liftIO $ do client' <- unsafeManagedPtrCastPtr client let enable' = (fromIntegral . fromEnum) enable g_socket_client_set_enable_proxy client' enable' touchManagedPtr client return () #if ENABLE_OVERLOADING data SocketClientSetEnableProxyMethodInfo instance (signature ~ (Bool -> m ()), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientSetEnableProxyMethodInfo a signature where overloadedMethod _ = socketClientSetEnableProxy #endif -- method SocketClient::set_family -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "family", argType = TInterface (Name {namespace = "Gio", name = "SocketFamily"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketFamily", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_set_family" g_socket_client_set_family :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CUInt -> -- family : TInterface (Name {namespace = "Gio", name = "SocketFamily"}) IO () {- | Sets the socket family of the socket client. If this is set to something other than 'GI.Gio.Enums.SocketFamilyInvalid' then the sockets created by this object will be of the specified family. This might be useful for instance if you want to force the local connection to be an ipv4 socket, even though the address might be an ipv6 mapped to ipv4 address. /Since: 2.22/ -} socketClientSetFamily :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> Gio.Enums.SocketFamily {- ^ /@family@/: a 'GI.Gio.Enums.SocketFamily' -} -> m () socketClientSetFamily client family = liftIO $ do client' <- unsafeManagedPtrCastPtr client let family' = (fromIntegral . fromEnum) family g_socket_client_set_family client' family' touchManagedPtr client return () #if ENABLE_OVERLOADING data SocketClientSetFamilyMethodInfo instance (signature ~ (Gio.Enums.SocketFamily -> m ()), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientSetFamilyMethodInfo a signature where overloadedMethod _ = socketClientSetFamily #endif -- method SocketClient::set_local_address -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "address", argType = TInterface (Name {namespace = "Gio", name = "SocketAddress"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GSocketAddress, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_set_local_address" g_socket_client_set_local_address :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) Ptr Gio.SocketAddress.SocketAddress -> -- address : TInterface (Name {namespace = "Gio", name = "SocketAddress"}) IO () {- | Sets the local address of the socket client. The sockets created by this object will bound to the specified address (if not 'Nothing') before connecting. This is useful if you want to ensure that the local side of the connection is on a specific port, or on a specific interface. /Since: 2.22/ -} socketClientSetLocalAddress :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.SocketAddress.IsSocketAddress b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> Maybe (b) {- ^ /@address@/: a 'GI.Gio.Objects.SocketAddress.SocketAddress', or 'Nothing' -} -> m () socketClientSetLocalAddress client address = liftIO $ do client' <- unsafeManagedPtrCastPtr client maybeAddress <- case address of Nothing -> return nullPtr Just jAddress -> do jAddress' <- unsafeManagedPtrCastPtr jAddress return jAddress' g_socket_client_set_local_address client' maybeAddress touchManagedPtr client whenJust address touchManagedPtr return () #if ENABLE_OVERLOADING data SocketClientSetLocalAddressMethodInfo instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsSocketClient a, Gio.SocketAddress.IsSocketAddress b) => O.MethodInfo SocketClientSetLocalAddressMethodInfo a signature where overloadedMethod _ = socketClientSetLocalAddress #endif -- method SocketClient::set_protocol -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocol", argType = TInterface (Name {namespace = "Gio", name = "SocketProtocol"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketProtocol", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_set_protocol" g_socket_client_set_protocol :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CInt -> -- protocol : TInterface (Name {namespace = "Gio", name = "SocketProtocol"}) IO () {- | Sets the protocol of the socket client. The sockets created by this object will use of the specified protocol. If /@protocol@/ is @/0/@ that means to use the default protocol for the socket family and type. /Since: 2.22/ -} socketClientSetProtocol :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> Gio.Enums.SocketProtocol {- ^ /@protocol@/: a 'GI.Gio.Enums.SocketProtocol' -} -> m () socketClientSetProtocol client protocol = liftIO $ do client' <- unsafeManagedPtrCastPtr client let protocol' = (fromIntegral . fromEnum) protocol g_socket_client_set_protocol client' protocol' touchManagedPtr client return () #if ENABLE_OVERLOADING data SocketClientSetProtocolMethodInfo instance (signature ~ (Gio.Enums.SocketProtocol -> m ()), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientSetProtocolMethodInfo a signature where overloadedMethod _ = socketClientSetProtocol #endif -- method SocketClient::set_proxy_resolver -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "proxy_resolver", argType = TInterface (Name {namespace = "Gio", name = "ProxyResolver"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "a #GProxyResolver, or %NULL for the\n default.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_set_proxy_resolver" g_socket_client_set_proxy_resolver :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) Ptr Gio.ProxyResolver.ProxyResolver -> -- proxy_resolver : TInterface (Name {namespace = "Gio", name = "ProxyResolver"}) IO () {- | Overrides the 'GI.Gio.Interfaces.ProxyResolver.ProxyResolver' used by /@client@/. You can call this if you want to use specific proxies, rather than using the system default proxy settings. Note that whether or not the proxy resolver is actually used depends on the setting of 'GI.Gio.Objects.SocketClient.SocketClient':@/enable-proxy/@, which is not changed by this function (but which is 'True' by default) /Since: 2.36/ -} socketClientSetProxyResolver :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a, Gio.ProxyResolver.IsProxyResolver b) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> Maybe (b) {- ^ /@proxyResolver@/: a 'GI.Gio.Interfaces.ProxyResolver.ProxyResolver', or 'Nothing' for the default. -} -> m () socketClientSetProxyResolver client proxyResolver = liftIO $ do client' <- unsafeManagedPtrCastPtr client maybeProxyResolver <- case proxyResolver of Nothing -> return nullPtr Just jProxyResolver -> do jProxyResolver' <- unsafeManagedPtrCastPtr jProxyResolver return jProxyResolver' g_socket_client_set_proxy_resolver client' maybeProxyResolver touchManagedPtr client whenJust proxyResolver touchManagedPtr return () #if ENABLE_OVERLOADING data SocketClientSetProxyResolverMethodInfo instance (signature ~ (Maybe (b) -> m ()), MonadIO m, IsSocketClient a, Gio.ProxyResolver.IsProxyResolver b) => O.MethodInfo SocketClientSetProxyResolverMethodInfo a signature where overloadedMethod _ = socketClientSetProxyResolver #endif -- method SocketClient::set_socket_type -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface (Name {namespace = "Gio", name = "SocketType"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketType", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_set_socket_type" g_socket_client_set_socket_type :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CUInt -> -- type : TInterface (Name {namespace = "Gio", name = "SocketType"}) IO () {- | Sets the socket type of the socket client. The sockets created by this object will be of the specified type. It doesn\'t make sense to specify a type of 'GI.Gio.Enums.SocketTypeDatagram', as GSocketClient is used for connection oriented services. /Since: 2.22/ -} socketClientSetSocketType :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> Gio.Enums.SocketType {- ^ /@type@/: a 'GI.Gio.Enums.SocketType' -} -> m () socketClientSetSocketType client type_ = liftIO $ do client' <- unsafeManagedPtrCastPtr client let type_' = (fromIntegral . fromEnum) type_ g_socket_client_set_socket_type client' type_' touchManagedPtr client return () #if ENABLE_OVERLOADING data SocketClientSetSocketTypeMethodInfo instance (signature ~ (Gio.Enums.SocketType -> m ()), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientSetSocketTypeMethodInfo a signature where overloadedMethod _ = socketClientSetSocketType #endif -- method SocketClient::set_timeout -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the timeout", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_set_timeout" g_socket_client_set_timeout :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) Word32 -> -- timeout : TBasicType TUInt IO () {- | Sets the I\/O timeout for sockets created by /@client@/. /@timeout@/ is a time in seconds, or 0 for no timeout (the default). The timeout value affects the initial connection attempt as well, so setting this may cause calls to 'GI.Gio.Objects.SocketClient.socketClientConnect', etc, to fail with 'GI.Gio.Enums.IOErrorEnumTimedOut'. /Since: 2.26/ -} socketClientSetTimeout :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> Word32 {- ^ /@timeout@/: the timeout -} -> m () socketClientSetTimeout client timeout = liftIO $ do client' <- unsafeManagedPtrCastPtr client g_socket_client_set_timeout client' timeout touchManagedPtr client return () #if ENABLE_OVERLOADING data SocketClientSetTimeoutMethodInfo instance (signature ~ (Word32 -> m ()), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientSetTimeoutMethodInfo a signature where overloadedMethod _ = socketClientSetTimeout #endif -- method SocketClient::set_tls -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tls", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "whether to use TLS", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_set_tls" g_socket_client_set_tls :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CInt -> -- tls : TBasicType TBoolean IO () {- | Sets whether /@client@/ creates TLS (aka SSL) connections. If /@tls@/ is 'True', /@client@/ will wrap its connections in a 'GI.Gio.Interfaces.TlsClientConnection.TlsClientConnection' and perform a TLS handshake when connecting. Note that since 'GI.Gio.Objects.SocketClient.SocketClient' must return a 'GI.Gio.Objects.SocketConnection.SocketConnection', but 'GI.Gio.Interfaces.TlsClientConnection.TlsClientConnection' is not a 'GI.Gio.Objects.SocketConnection.SocketConnection', this actually wraps the resulting 'GI.Gio.Interfaces.TlsClientConnection.TlsClientConnection' in a 'GI.Gio.Objects.TcpWrapperConnection.TcpWrapperConnection' when returning it. You can use 'GI.Gio.Objects.TcpWrapperConnection.tcpWrapperConnectionGetBaseIoStream' on the return value to extract the 'GI.Gio.Interfaces.TlsClientConnection.TlsClientConnection'. If you need to modify the behavior of the TLS handshake (eg, by setting a client-side certificate to use, or connecting to the 'GI.Gio.Objects.TlsConnection.TlsConnection'::@/accept-certificate/@ signal), you can connect to /@client@/\'s 'GI.Gio.Objects.SocketClient.SocketClient'::@/event/@ signal and wait for it to be emitted with 'GI.Gio.Enums.SocketClientEventTlsHandshaking', which will give you a chance to see the 'GI.Gio.Interfaces.TlsClientConnection.TlsClientConnection' before the handshake starts. /Since: 2.28/ -} socketClientSetTls :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> Bool {- ^ /@tls@/: whether to use TLS -} -> m () socketClientSetTls client tls = liftIO $ do client' <- unsafeManagedPtrCastPtr client let tls' = (fromIntegral . fromEnum) tls g_socket_client_set_tls client' tls' touchManagedPtr client return () #if ENABLE_OVERLOADING data SocketClientSetTlsMethodInfo instance (signature ~ (Bool -> m ()), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientSetTlsMethodInfo a signature where overloadedMethod _ = socketClientSetTls #endif -- method SocketClient::set_tls_validation_flags -- method type : OrdinaryMethod -- Args : [Arg {argCName = "client", argType = TInterface (Name {namespace = "Gio", name = "SocketClient"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GSocketClient.", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface (Name {namespace = "Gio", name = "TlsCertificateFlags"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the validation flags", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "g_socket_client_set_tls_validation_flags" g_socket_client_set_tls_validation_flags :: Ptr SocketClient -> -- client : TInterface (Name {namespace = "Gio", name = "SocketClient"}) CUInt -> -- flags : TInterface (Name {namespace = "Gio", name = "TlsCertificateFlags"}) IO () {- | Sets the TLS validation flags used when creating TLS connections via /@client@/. The default value is 'GI.Gio.Flags.TlsCertificateFlagsValidateAll'. /Since: 2.28/ -} socketClientSetTlsValidationFlags :: (B.CallStack.HasCallStack, MonadIO m, IsSocketClient a) => a {- ^ /@client@/: a 'GI.Gio.Objects.SocketClient.SocketClient'. -} -> [Gio.Flags.TlsCertificateFlags] {- ^ /@flags@/: the validation flags -} -> m () socketClientSetTlsValidationFlags client flags = liftIO $ do client' <- unsafeManagedPtrCastPtr client let flags' = gflagsToWord flags g_socket_client_set_tls_validation_flags client' flags' touchManagedPtr client return () #if ENABLE_OVERLOADING data SocketClientSetTlsValidationFlagsMethodInfo instance (signature ~ ([Gio.Flags.TlsCertificateFlags] -> m ()), MonadIO m, IsSocketClient a) => O.MethodInfo SocketClientSetTlsValidationFlagsMethodInfo a signature where overloadedMethod _ = socketClientSetTlsValidationFlags #endif