{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) /No description available in the introspection data./ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Soup.Interfaces.ProxyURIResolver ( -- * Exported types ProxyURIResolver(..) , noProxyURIResolver , IsProxyURIResolver , toProxyURIResolver , -- * Methods -- ** getProxyUriAsync #method:getProxyUriAsync# #if ENABLE_OVERLOADING ProxyURIResolverGetProxyUriAsyncMethodInfo, #endif proxyURIResolverGetProxyUriAsync , -- ** getProxyUriSync #method:getProxyUriSync# #if ENABLE_OVERLOADING ProxyURIResolverGetProxyUriSyncMethodInfo, #endif proxyURIResolverGetProxyUriSync , ) 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.GLib.Structs.MainContext as GLib.MainContext import qualified GI.GObject.Objects.Object as GObject.Object import qualified GI.Gio.Objects.Cancellable as Gio.Cancellable import qualified GI.Soup.Callbacks as Soup.Callbacks import {-# SOURCE #-} qualified GI.Soup.Interfaces.SessionFeature as Soup.SessionFeature import {-# SOURCE #-} qualified GI.Soup.Structs.URI as Soup.URI -- interface ProxyURIResolver -- | Memory-managed wrapper type. newtype ProxyURIResolver = ProxyURIResolver (ManagedPtr ProxyURIResolver) -- | A convenience alias for `Nothing` :: `Maybe` `ProxyURIResolver`. noProxyURIResolver :: Maybe ProxyURIResolver noProxyURIResolver = Nothing #if ENABLE_OVERLOADING type instance O.SignalList ProxyURIResolver = ProxyURIResolverSignalList type ProxyURIResolverSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif foreign import ccall "soup_proxy_uri_resolver_get_type" c_soup_proxy_uri_resolver_get_type :: IO GType instance GObject ProxyURIResolver where gobjectType = c_soup_proxy_uri_resolver_get_type -- | Type class for types which can be safely cast to `ProxyURIResolver`, for instance with `toProxyURIResolver`. class (GObject o, O.IsDescendantOf ProxyURIResolver o) => IsProxyURIResolver o instance (GObject o, O.IsDescendantOf ProxyURIResolver o) => IsProxyURIResolver o instance O.HasParentTypes ProxyURIResolver type instance O.ParentTypes ProxyURIResolver = '[Soup.SessionFeature.SessionFeature, GObject.Object.Object] -- | Cast to `ProxyURIResolver`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toProxyURIResolver :: (MonadIO m, IsProxyURIResolver o) => o -> m ProxyURIResolver toProxyURIResolver = liftIO . unsafeCastTo ProxyURIResolver #if ENABLE_OVERLOADING instance O.HasAttributeList ProxyURIResolver type instance O.AttributeList ProxyURIResolver = ProxyURIResolverAttributeList type ProxyURIResolverAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type family ResolveProxyURIResolverMethod (t :: Symbol) (o :: *) :: * where ResolveProxyURIResolverMethod "addFeature" o = Soup.SessionFeature.SessionFeatureAddFeatureMethodInfo ResolveProxyURIResolverMethod "attach" o = Soup.SessionFeature.SessionFeatureAttachMethodInfo ResolveProxyURIResolverMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveProxyURIResolverMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveProxyURIResolverMethod "detach" o = Soup.SessionFeature.SessionFeatureDetachMethodInfo ResolveProxyURIResolverMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveProxyURIResolverMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveProxyURIResolverMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveProxyURIResolverMethod "hasFeature" o = Soup.SessionFeature.SessionFeatureHasFeatureMethodInfo ResolveProxyURIResolverMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveProxyURIResolverMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveProxyURIResolverMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveProxyURIResolverMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveProxyURIResolverMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveProxyURIResolverMethod "removeFeature" o = Soup.SessionFeature.SessionFeatureRemoveFeatureMethodInfo ResolveProxyURIResolverMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveProxyURIResolverMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveProxyURIResolverMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveProxyURIResolverMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveProxyURIResolverMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveProxyURIResolverMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveProxyURIResolverMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveProxyURIResolverMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveProxyURIResolverMethod "getProxyUriAsync" o = ProxyURIResolverGetProxyUriAsyncMethodInfo ResolveProxyURIResolverMethod "getProxyUriSync" o = ProxyURIResolverGetProxyUriSyncMethodInfo ResolveProxyURIResolverMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveProxyURIResolverMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveProxyURIResolverMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveProxyURIResolverMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveProxyURIResolverMethod t ProxyURIResolver, O.MethodInfo info ProxyURIResolver p) => OL.IsLabel t (ProxyURIResolver -> 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 -- method ProxyURIResolver::get_proxy_uri_async -- method type : OrdinaryMethod -- Args : [Arg {argCName = "proxy_uri_resolver", argType = TInterface (Name {namespace = "Soup", name = "ProxyURIResolver"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #SoupProxyURIResolver", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface (Name {namespace = "Soup", name = "URI"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #SoupURI you want a proxy for", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "async_context", argType = TInterface (Name {namespace = "GLib", name = "MainContext"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "the #GMainContext to invoke @callback in", 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 = "Soup", name = "ProxyURIResolverCallback"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "callback to invoke with the proxy address", 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 "data for @callback", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "soup_proxy_uri_resolver_get_proxy_uri_async" soup_proxy_uri_resolver_get_proxy_uri_async :: Ptr ProxyURIResolver -> -- proxy_uri_resolver : TInterface (Name {namespace = "Soup", name = "ProxyURIResolver"}) Ptr Soup.URI.URI -> -- uri : TInterface (Name {namespace = "Soup", name = "URI"}) Ptr GLib.MainContext.MainContext -> -- async_context : TInterface (Name {namespace = "GLib", name = "MainContext"}) Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) FunPtr Soup.Callbacks.C_ProxyURIResolverCallback -> -- callback : TInterface (Name {namespace = "Soup", name = "ProxyURIResolverCallback"}) Ptr () -> -- user_data : TBasicType TPtr IO () {-# DEPRECATED proxyURIResolverGetProxyUriAsync ["'GI.Soup.Interfaces.ProxyURIResolver.ProxyURIResolver' is deprecated in favor of","'GI.Gio.Interfaces.ProxyResolver.ProxyResolver'"] #-} {- | Asynchronously determines a proxy URI to use for /@msg@/ and calls /@callback@/. /Since: 2.26.3/ -} proxyURIResolverGetProxyUriAsync :: (B.CallStack.HasCallStack, MonadIO m, IsProxyURIResolver a, Gio.Cancellable.IsCancellable b) => a {- ^ /@proxyUriResolver@/: the 'GI.Soup.Interfaces.ProxyURIResolver.ProxyURIResolver' -} -> Soup.URI.URI {- ^ /@uri@/: the 'GI.Soup.Structs.URI.URI' you want a proxy for -} -> Maybe (GLib.MainContext.MainContext) {- ^ /@asyncContext@/: the 'GI.GLib.Structs.MainContext.MainContext' to invoke /@callback@/ in -} -> Maybe (b) {- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -} -> Soup.Callbacks.ProxyURIResolverCallback {- ^ /@callback@/: callback to invoke with the proxy address -} -> m () proxyURIResolverGetProxyUriAsync proxyUriResolver uri asyncContext cancellable callback = liftIO $ do proxyUriResolver' <- unsafeManagedPtrCastPtr proxyUriResolver uri' <- unsafeManagedPtrGetPtr uri maybeAsyncContext <- case asyncContext of Nothing -> return nullPtr Just jAsyncContext -> do jAsyncContext' <- unsafeManagedPtrGetPtr jAsyncContext return jAsyncContext' maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' ptrcallback <- callocMem :: IO (Ptr (FunPtr Soup.Callbacks.C_ProxyURIResolverCallback)) callback' <- Soup.Callbacks.mk_ProxyURIResolverCallback (Soup.Callbacks.wrap_ProxyURIResolverCallback (Just ptrcallback) (Soup.Callbacks.drop_closures_ProxyURIResolverCallback callback)) poke ptrcallback callback' let userData = nullPtr soup_proxy_uri_resolver_get_proxy_uri_async proxyUriResolver' uri' maybeAsyncContext maybeCancellable callback' userData touchManagedPtr proxyUriResolver touchManagedPtr uri whenJust asyncContext touchManagedPtr whenJust cancellable touchManagedPtr return () #if ENABLE_OVERLOADING data ProxyURIResolverGetProxyUriAsyncMethodInfo instance (signature ~ (Soup.URI.URI -> Maybe (GLib.MainContext.MainContext) -> Maybe (b) -> Soup.Callbacks.ProxyURIResolverCallback -> m ()), MonadIO m, IsProxyURIResolver a, Gio.Cancellable.IsCancellable b) => O.MethodInfo ProxyURIResolverGetProxyUriAsyncMethodInfo a signature where overloadedMethod _ = proxyURIResolverGetProxyUriAsync #endif -- method ProxyURIResolver::get_proxy_uri_sync -- method type : OrdinaryMethod -- Args : [Arg {argCName = "proxy_uri_resolver", argType = TInterface (Name {namespace = "Soup", name = "ProxyURIResolver"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #SoupProxyURIResolver", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TInterface (Name {namespace = "Soup", name = "URI"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the #SoupURI you want a proxy for", 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 = "proxy_uri", argType = TInterface (Name {namespace = "Soup", name = "URI"}), direction = DirectionOut, mayBeNull = False, argDoc = Documentation {rawDocText = Just "on return, will contain the proxy URI", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}] -- Lengths : [] -- returnType : Just (TBasicType TUInt) -- throws : False -- Skip return : False foreign import ccall "soup_proxy_uri_resolver_get_proxy_uri_sync" soup_proxy_uri_resolver_get_proxy_uri_sync :: Ptr ProxyURIResolver -> -- proxy_uri_resolver : TInterface (Name {namespace = "Soup", name = "ProxyURIResolver"}) Ptr Soup.URI.URI -> -- uri : TInterface (Name {namespace = "Soup", name = "URI"}) Ptr Gio.Cancellable.Cancellable -> -- cancellable : TInterface (Name {namespace = "Gio", name = "Cancellable"}) Ptr (Ptr Soup.URI.URI) -> -- proxy_uri : TInterface (Name {namespace = "Soup", name = "URI"}) IO Word32 {-# DEPRECATED proxyURIResolverGetProxyUriSync ["'GI.Soup.Interfaces.ProxyURIResolver.ProxyURIResolver' is deprecated in favor of","'GI.Gio.Interfaces.ProxyResolver.ProxyResolver'"] #-} {- | Synchronously determines a proxy URI to use for /@uri@/. If /@uri@/ should be sent via proxy, */@proxyUri@/ will be set to the URI of the proxy, else it will be set to 'Nothing'. /Since: 2.26.3/ -} proxyURIResolverGetProxyUriSync :: (B.CallStack.HasCallStack, MonadIO m, IsProxyURIResolver a, Gio.Cancellable.IsCancellable b) => a {- ^ /@proxyUriResolver@/: the 'GI.Soup.Interfaces.ProxyURIResolver.ProxyURIResolver' -} -> Soup.URI.URI {- ^ /@uri@/: the 'GI.Soup.Structs.URI.URI' you want a proxy for -} -> Maybe (b) {- ^ /@cancellable@/: a 'GI.Gio.Objects.Cancellable.Cancellable', or 'Nothing' -} -> m ((Word32, Soup.URI.URI)) {- ^ __Returns:__ 'GI.Soup.Enums.StatusOk' if successful, or a transport-level error. -} proxyURIResolverGetProxyUriSync proxyUriResolver uri cancellable = liftIO $ do proxyUriResolver' <- unsafeManagedPtrCastPtr proxyUriResolver uri' <- unsafeManagedPtrGetPtr uri maybeCancellable <- case cancellable of Nothing -> return nullPtr Just jCancellable -> do jCancellable' <- unsafeManagedPtrCastPtr jCancellable return jCancellable' proxyUri <- allocMem :: IO (Ptr (Ptr Soup.URI.URI)) result <- soup_proxy_uri_resolver_get_proxy_uri_sync proxyUriResolver' uri' maybeCancellable proxyUri proxyUri' <- peek proxyUri proxyUri'' <- (wrapBoxed Soup.URI.URI) proxyUri' touchManagedPtr proxyUriResolver touchManagedPtr uri whenJust cancellable touchManagedPtr freeMem proxyUri return (result, proxyUri'') #if ENABLE_OVERLOADING data ProxyURIResolverGetProxyUriSyncMethodInfo instance (signature ~ (Soup.URI.URI -> Maybe (b) -> m ((Word32, Soup.URI.URI))), MonadIO m, IsProxyURIResolver a, Gio.Cancellable.IsCancellable b) => O.MethodInfo ProxyURIResolverGetProxyUriSyncMethodInfo a signature where overloadedMethod _ = proxyURIResolverGetProxyUriSync #endif