{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- /No description available in the introspection data./

#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif

module GI.WebKit2.Objects.URISchemeRequest
    ( 

-- * Exported types
    URISchemeRequest(..)                    ,
    IsURISchemeRequest                      ,
    toURISchemeRequest                      ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [finish]("GI.WebKit2.Objects.URISchemeRequest#g:method:finish"), [finishError]("GI.WebKit2.Objects.URISchemeRequest#g:method:finishError"), [forceFloating]("GI.GObject.Objects.Object#g:method:forceFloating"), [freezeNotify]("GI.GObject.Objects.Object#g:method:freezeNotify"), [getv]("GI.GObject.Objects.Object#g:method:getv"), [isFloating]("GI.GObject.Objects.Object#g:method:isFloating"), [notify]("GI.GObject.Objects.Object#g:method:notify"), [notifyByPspec]("GI.GObject.Objects.Object#g:method:notifyByPspec"), [ref]("GI.GObject.Objects.Object#g:method:ref"), [refSink]("GI.GObject.Objects.Object#g:method:refSink"), [runDispose]("GI.GObject.Objects.Object#g:method:runDispose"), [stealData]("GI.GObject.Objects.Object#g:method:stealData"), [stealQdata]("GI.GObject.Objects.Object#g:method:stealQdata"), [thawNotify]("GI.GObject.Objects.Object#g:method:thawNotify"), [unref]("GI.GObject.Objects.Object#g:method:unref"), [watchClosure]("GI.GObject.Objects.Object#g:method:watchClosure").
-- 
-- ==== Getters
-- [getData]("GI.GObject.Objects.Object#g:method:getData"), [getPath]("GI.WebKit2.Objects.URISchemeRequest#g:method:getPath"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getScheme]("GI.WebKit2.Objects.URISchemeRequest#g:method:getScheme"), [getUri]("GI.WebKit2.Objects.URISchemeRequest#g:method:getUri"), [getWebView]("GI.WebKit2.Objects.URISchemeRequest#g:method:getWebView").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty").

#if defined(ENABLE_OVERLOADING)
    ResolveURISchemeRequestMethod           ,
#endif

-- ** finish #method:finish#

#if defined(ENABLE_OVERLOADING)
    URISchemeRequestFinishMethodInfo        ,
#endif
    uRISchemeRequestFinish                  ,


-- ** finishError #method:finishError#

#if defined(ENABLE_OVERLOADING)
    URISchemeRequestFinishErrorMethodInfo   ,
#endif
    uRISchemeRequestFinishError             ,


-- ** getPath #method:getPath#

#if defined(ENABLE_OVERLOADING)
    URISchemeRequestGetPathMethodInfo       ,
#endif
    uRISchemeRequestGetPath                 ,


-- ** getScheme #method:getScheme#

#if defined(ENABLE_OVERLOADING)
    URISchemeRequestGetSchemeMethodInfo     ,
#endif
    uRISchemeRequestGetScheme               ,


-- ** getUri #method:getUri#

#if defined(ENABLE_OVERLOADING)
    URISchemeRequestGetUriMethodInfo        ,
#endif
    uRISchemeRequestGetUri                  ,


-- ** getWebView #method:getWebView#

#if defined(ENABLE_OVERLOADING)
    URISchemeRequestGetWebViewMethodInfo    ,
#endif
    uRISchemeRequestGetWebView              ,




    ) where

import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P

import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GValue as B.GValue
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.GI.Base.Properties as B.Properties
import qualified Data.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R

import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Gio.Objects.InputStream as Gio.InputStream
import {-# SOURCE #-} qualified GI.WebKit2.Objects.WebView as WebKit2.WebView

-- | Memory-managed wrapper type.
newtype URISchemeRequest = URISchemeRequest (SP.ManagedPtr URISchemeRequest)
    deriving (URISchemeRequest -> URISchemeRequest -> Bool
(URISchemeRequest -> URISchemeRequest -> Bool)
-> (URISchemeRequest -> URISchemeRequest -> Bool)
-> Eq URISchemeRequest
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: URISchemeRequest -> URISchemeRequest -> Bool
$c/= :: URISchemeRequest -> URISchemeRequest -> Bool
== :: URISchemeRequest -> URISchemeRequest -> Bool
$c== :: URISchemeRequest -> URISchemeRequest -> Bool
Eq)

instance SP.ManagedPtrNewtype URISchemeRequest where
    toManagedPtr :: URISchemeRequest -> ManagedPtr URISchemeRequest
toManagedPtr (URISchemeRequest ManagedPtr URISchemeRequest
p) = ManagedPtr URISchemeRequest
p

foreign import ccall "webkit_uri_scheme_request_get_type"
    c_webkit_uri_scheme_request_get_type :: IO B.Types.GType

instance B.Types.TypedObject URISchemeRequest where
    glibType :: IO GType
glibType = IO GType
c_webkit_uri_scheme_request_get_type

instance B.Types.GObject URISchemeRequest

-- | Type class for types which can be safely cast to `URISchemeRequest`, for instance with `toURISchemeRequest`.
class (SP.GObject o, O.IsDescendantOf URISchemeRequest o) => IsURISchemeRequest o
instance (SP.GObject o, O.IsDescendantOf URISchemeRequest o) => IsURISchemeRequest o

instance O.HasParentTypes URISchemeRequest
type instance O.ParentTypes URISchemeRequest = '[GObject.Object.Object]

-- | Cast to `URISchemeRequest`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`.
toURISchemeRequest :: (MIO.MonadIO m, IsURISchemeRequest o) => o -> m URISchemeRequest
toURISchemeRequest :: forall (m :: * -> *) o.
(MonadIO m, IsURISchemeRequest o) =>
o -> m URISchemeRequest
toURISchemeRequest = IO URISchemeRequest -> m URISchemeRequest
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO URISchemeRequest -> m URISchemeRequest)
-> (o -> IO URISchemeRequest) -> o -> m URISchemeRequest
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr URISchemeRequest -> URISchemeRequest)
-> o -> IO URISchemeRequest
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr URISchemeRequest -> URISchemeRequest
URISchemeRequest

-- | Convert 'URISchemeRequest' to and from 'Data.GI.Base.GValue.GValue'. See 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue (Maybe URISchemeRequest) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_uri_scheme_request_get_type
    gvalueSet_ :: Ptr GValue -> Maybe URISchemeRequest -> IO ()
gvalueSet_ Ptr GValue
gv Maybe URISchemeRequest
P.Nothing = Ptr GValue -> Ptr URISchemeRequest -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr URISchemeRequest
forall a. Ptr a
FP.nullPtr :: FP.Ptr URISchemeRequest)
    gvalueSet_ Ptr GValue
gv (P.Just URISchemeRequest
obj) = URISchemeRequest -> (Ptr URISchemeRequest -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr URISchemeRequest
obj (Ptr GValue -> Ptr URISchemeRequest -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe URISchemeRequest)
gvalueGet_ Ptr GValue
gv = do
        Ptr URISchemeRequest
ptr <- Ptr GValue -> IO (Ptr URISchemeRequest)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr URISchemeRequest)
        if Ptr URISchemeRequest
ptr Ptr URISchemeRequest -> Ptr URISchemeRequest -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr URISchemeRequest
forall a. Ptr a
FP.nullPtr
        then URISchemeRequest -> Maybe URISchemeRequest
forall a. a -> Maybe a
P.Just (URISchemeRequest -> Maybe URISchemeRequest)
-> IO URISchemeRequest -> IO (Maybe URISchemeRequest)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr URISchemeRequest -> URISchemeRequest)
-> Ptr URISchemeRequest -> IO URISchemeRequest
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr URISchemeRequest -> URISchemeRequest
URISchemeRequest Ptr URISchemeRequest
ptr
        else Maybe URISchemeRequest -> IO (Maybe URISchemeRequest)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe URISchemeRequest
forall a. Maybe a
P.Nothing
        
    

#if defined(ENABLE_OVERLOADING)
type family ResolveURISchemeRequestMethod (t :: Symbol) (o :: *) :: * where
    ResolveURISchemeRequestMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveURISchemeRequestMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveURISchemeRequestMethod "finish" o = URISchemeRequestFinishMethodInfo
    ResolveURISchemeRequestMethod "finishError" o = URISchemeRequestFinishErrorMethodInfo
    ResolveURISchemeRequestMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveURISchemeRequestMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveURISchemeRequestMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveURISchemeRequestMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveURISchemeRequestMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveURISchemeRequestMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveURISchemeRequestMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveURISchemeRequestMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveURISchemeRequestMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveURISchemeRequestMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveURISchemeRequestMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveURISchemeRequestMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveURISchemeRequestMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveURISchemeRequestMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveURISchemeRequestMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveURISchemeRequestMethod "getPath" o = URISchemeRequestGetPathMethodInfo
    ResolveURISchemeRequestMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveURISchemeRequestMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveURISchemeRequestMethod "getScheme" o = URISchemeRequestGetSchemeMethodInfo
    ResolveURISchemeRequestMethod "getUri" o = URISchemeRequestGetUriMethodInfo
    ResolveURISchemeRequestMethod "getWebView" o = URISchemeRequestGetWebViewMethodInfo
    ResolveURISchemeRequestMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveURISchemeRequestMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveURISchemeRequestMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveURISchemeRequestMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveURISchemeRequestMethod t URISchemeRequest, O.OverloadedMethod info URISchemeRequest p) => OL.IsLabel t (URISchemeRequest -> p) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.overloadedMethod @info
#else
    fromLabel _ = O.overloadedMethod @info
#endif

#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveURISchemeRequestMethod t URISchemeRequest, O.OverloadedMethod info URISchemeRequest p, R.HasField t URISchemeRequest p) => R.HasField t URISchemeRequest p where
    getField = O.overloadedMethod @info

#endif

instance (info ~ ResolveURISchemeRequestMethod t URISchemeRequest, O.OverloadedMethodInfo info URISchemeRequest) => OL.IsLabel t (O.MethodProxy info URISchemeRequest) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif

#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList URISchemeRequest
type instance O.AttributeList URISchemeRequest = URISchemeRequestAttributeList
type URISchemeRequestAttributeList = ('[ ] :: [(Symbol, *)])
#endif

#if defined(ENABLE_OVERLOADING)
#endif

#if defined(ENABLE_OVERLOADING)
type instance O.SignalList URISchemeRequest = URISchemeRequestSignalList
type URISchemeRequestSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

#endif

-- method URISchemeRequest::finish
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "request"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2" , name = "URISchemeRequest" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitURISchemeRequest"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "stream"
--           , argType =
--               TInterface Name { namespace = "Gio" , name = "InputStream" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "a #GInputStream to read the contents of the request"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "stream_length"
--           , argType = TBasicType TInt64
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the length of the stream or -1 if not known"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "content_type"
--           , argType = TBasicType TUTF8
--           , direction = DirectionIn
--           , mayBeNull = True
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "the content type of the stream or %NULL if not known"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_uri_scheme_request_finish" webkit_uri_scheme_request_finish :: 
    Ptr URISchemeRequest ->                 -- request : TInterface (Name {namespace = "WebKit2", name = "URISchemeRequest"})
    Ptr Gio.InputStream.InputStream ->      -- stream : TInterface (Name {namespace = "Gio", name = "InputStream"})
    Int64 ->                                -- stream_length : TBasicType TInt64
    CString ->                              -- content_type : TBasicType TUTF8
    IO ()

-- | Finish a t'GI.WebKit2.Objects.URISchemeRequest.URISchemeRequest' by setting the contents of the request and its mime type.
uRISchemeRequestFinish ::
    (B.CallStack.HasCallStack, MonadIO m, IsURISchemeRequest a, Gio.InputStream.IsInputStream b) =>
    a
    -- ^ /@request@/: a t'GI.WebKit2.Objects.URISchemeRequest.URISchemeRequest'
    -> b
    -- ^ /@stream@/: a t'GI.Gio.Objects.InputStream.InputStream' to read the contents of the request
    -> Int64
    -- ^ /@streamLength@/: the length of the stream or -1 if not known
    -> Maybe (T.Text)
    -- ^ /@contentType@/: the content type of the stream or 'P.Nothing' if not known
    -> m ()
uRISchemeRequestFinish :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsURISchemeRequest a, IsInputStream b) =>
a -> b -> Int64 -> Maybe Text -> m ()
uRISchemeRequestFinish a
request b
stream Int64
streamLength Maybe Text
contentType = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr URISchemeRequest
request' <- a -> IO (Ptr URISchemeRequest)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
request
    Ptr InputStream
stream' <- b -> IO (Ptr InputStream)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
stream
    Ptr CChar
maybeContentType <- case Maybe Text
contentType of
        Maybe Text
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
nullPtr
        Just Text
jContentType -> do
            Ptr CChar
jContentType' <- Text -> IO (Ptr CChar)
textToCString Text
jContentType
            Ptr CChar -> IO (Ptr CChar)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
jContentType'
    Ptr URISchemeRequest
-> Ptr InputStream -> Int64 -> Ptr CChar -> IO ()
webkit_uri_scheme_request_finish Ptr URISchemeRequest
request' Ptr InputStream
stream' Int64
streamLength Ptr CChar
maybeContentType
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
request
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
stream
    Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
maybeContentType
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data URISchemeRequestFinishMethodInfo
instance (signature ~ (b -> Int64 -> Maybe (T.Text) -> m ()), MonadIO m, IsURISchemeRequest a, Gio.InputStream.IsInputStream b) => O.OverloadedMethod URISchemeRequestFinishMethodInfo a signature where
    overloadedMethod = uRISchemeRequestFinish

instance O.OverloadedMethodInfo URISchemeRequestFinishMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.WebKit2.Objects.URISchemeRequest.uRISchemeRequestFinish",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.27/docs/GI-WebKit2-Objects-URISchemeRequest.html#v:uRISchemeRequestFinish"
        }


#endif

-- method URISchemeRequest::finish_error
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "request"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2" , name = "URISchemeRequest" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitURISchemeRequest"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "error"
--           , argType = TError
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText =
--                     Just "a #GError that will be passed to the #WebKitWebView"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_uri_scheme_request_finish_error" webkit_uri_scheme_request_finish_error :: 
    Ptr URISchemeRequest ->                 -- request : TInterface (Name {namespace = "WebKit2", name = "URISchemeRequest"})
    Ptr GError ->                           -- error : TError
    IO ()

-- | Finish a t'GI.WebKit2.Objects.URISchemeRequest.URISchemeRequest' with a t'GError'.
-- 
-- /Since: 2.2/
uRISchemeRequestFinishError ::
    (B.CallStack.HasCallStack, MonadIO m, IsURISchemeRequest a) =>
    a
    -- ^ /@request@/: a t'GI.WebKit2.Objects.URISchemeRequest.URISchemeRequest'
    -> GError
    -- ^ /@error@/: a t'GError' that will be passed to the t'GI.WebKit2.Objects.WebView.WebView'
    -> m ()
uRISchemeRequestFinishError :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsURISchemeRequest a) =>
a -> GError -> m ()
uRISchemeRequestFinishError a
request GError
error_ = IO () -> m ()
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr URISchemeRequest
request' <- a -> IO (Ptr URISchemeRequest)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
request
    Ptr GError
error_' <- GError -> IO (Ptr GError)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr GError
error_
    Ptr URISchemeRequest -> Ptr GError -> IO ()
webkit_uri_scheme_request_finish_error Ptr URISchemeRequest
request' Ptr GError
error_'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
request
    GError -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr GError
error_
    () -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data URISchemeRequestFinishErrorMethodInfo
instance (signature ~ (GError -> m ()), MonadIO m, IsURISchemeRequest a) => O.OverloadedMethod URISchemeRequestFinishErrorMethodInfo a signature where
    overloadedMethod = uRISchemeRequestFinishError

instance O.OverloadedMethodInfo URISchemeRequestFinishErrorMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.WebKit2.Objects.URISchemeRequest.uRISchemeRequestFinishError",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.27/docs/GI-WebKit2-Objects-URISchemeRequest.html#v:uRISchemeRequestFinishError"
        }


#endif

-- method URISchemeRequest::get_path
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "request"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2" , name = "URISchemeRequest" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitURISchemeRequest"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_uri_scheme_request_get_path" webkit_uri_scheme_request_get_path :: 
    Ptr URISchemeRequest ->                 -- request : TInterface (Name {namespace = "WebKit2", name = "URISchemeRequest"})
    IO CString

-- | Get the URI path of /@request@/
uRISchemeRequestGetPath ::
    (B.CallStack.HasCallStack, MonadIO m, IsURISchemeRequest a) =>
    a
    -- ^ /@request@/: a t'GI.WebKit2.Objects.URISchemeRequest.URISchemeRequest'
    -> m T.Text
    -- ^ __Returns:__ the URI path of /@request@/
uRISchemeRequestGetPath :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsURISchemeRequest a) =>
a -> m Text
uRISchemeRequestGetPath a
request = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr URISchemeRequest
request' <- a -> IO (Ptr URISchemeRequest)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
request
    Ptr CChar
result <- Ptr URISchemeRequest -> IO (Ptr CChar)
webkit_uri_scheme_request_get_path Ptr URISchemeRequest
request'
    Text -> Ptr CChar -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"uRISchemeRequestGetPath" Ptr CChar
result
    Text
result' <- HasCallStack => Ptr CChar -> IO Text
Ptr CChar -> IO Text
cstringToText Ptr CChar
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
request
    Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data URISchemeRequestGetPathMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsURISchemeRequest a) => O.OverloadedMethod URISchemeRequestGetPathMethodInfo a signature where
    overloadedMethod = uRISchemeRequestGetPath

instance O.OverloadedMethodInfo URISchemeRequestGetPathMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.WebKit2.Objects.URISchemeRequest.uRISchemeRequestGetPath",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.27/docs/GI-WebKit2-Objects-URISchemeRequest.html#v:uRISchemeRequestGetPath"
        }


#endif

-- method URISchemeRequest::get_scheme
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "request"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2" , name = "URISchemeRequest" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitURISchemeRequest"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_uri_scheme_request_get_scheme" webkit_uri_scheme_request_get_scheme :: 
    Ptr URISchemeRequest ->                 -- request : TInterface (Name {namespace = "WebKit2", name = "URISchemeRequest"})
    IO CString

-- | Get the URI scheme of /@request@/
uRISchemeRequestGetScheme ::
    (B.CallStack.HasCallStack, MonadIO m, IsURISchemeRequest a) =>
    a
    -- ^ /@request@/: a t'GI.WebKit2.Objects.URISchemeRequest.URISchemeRequest'
    -> m T.Text
    -- ^ __Returns:__ the URI scheme of /@request@/
uRISchemeRequestGetScheme :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsURISchemeRequest a) =>
a -> m Text
uRISchemeRequestGetScheme a
request = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr URISchemeRequest
request' <- a -> IO (Ptr URISchemeRequest)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
request
    Ptr CChar
result <- Ptr URISchemeRequest -> IO (Ptr CChar)
webkit_uri_scheme_request_get_scheme Ptr URISchemeRequest
request'
    Text -> Ptr CChar -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"uRISchemeRequestGetScheme" Ptr CChar
result
    Text
result' <- HasCallStack => Ptr CChar -> IO Text
Ptr CChar -> IO Text
cstringToText Ptr CChar
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
request
    Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data URISchemeRequestGetSchemeMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsURISchemeRequest a) => O.OverloadedMethod URISchemeRequestGetSchemeMethodInfo a signature where
    overloadedMethod = uRISchemeRequestGetScheme

instance O.OverloadedMethodInfo URISchemeRequestGetSchemeMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.WebKit2.Objects.URISchemeRequest.uRISchemeRequestGetScheme",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.27/docs/GI-WebKit2-Objects-URISchemeRequest.html#v:uRISchemeRequestGetScheme"
        }


#endif

-- method URISchemeRequest::get_uri
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "request"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2" , name = "URISchemeRequest" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitURISchemeRequest"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_uri_scheme_request_get_uri" webkit_uri_scheme_request_get_uri :: 
    Ptr URISchemeRequest ->                 -- request : TInterface (Name {namespace = "WebKit2", name = "URISchemeRequest"})
    IO CString

-- | Get the URI of /@request@/
uRISchemeRequestGetUri ::
    (B.CallStack.HasCallStack, MonadIO m, IsURISchemeRequest a) =>
    a
    -- ^ /@request@/: a t'GI.WebKit2.Objects.URISchemeRequest.URISchemeRequest'
    -> m T.Text
    -- ^ __Returns:__ the full URI of /@request@/
uRISchemeRequestGetUri :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsURISchemeRequest a) =>
a -> m Text
uRISchemeRequestGetUri a
request = IO Text -> m Text
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr URISchemeRequest
request' <- a -> IO (Ptr URISchemeRequest)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
request
    Ptr CChar
result <- Ptr URISchemeRequest -> IO (Ptr CChar)
webkit_uri_scheme_request_get_uri Ptr URISchemeRequest
request'
    Text -> Ptr CChar -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"uRISchemeRequestGetUri" Ptr CChar
result
    Text
result' <- HasCallStack => Ptr CChar -> IO Text
Ptr CChar -> IO Text
cstringToText Ptr CChar
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
request
    Text -> IO Text
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data URISchemeRequestGetUriMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsURISchemeRequest a) => O.OverloadedMethod URISchemeRequestGetUriMethodInfo a signature where
    overloadedMethod = uRISchemeRequestGetUri

instance O.OverloadedMethodInfo URISchemeRequestGetUriMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.WebKit2.Objects.URISchemeRequest.uRISchemeRequestGetUri",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.27/docs/GI-WebKit2-Objects-URISchemeRequest.html#v:uRISchemeRequestGetUri"
        }


#endif

-- method URISchemeRequest::get_web_view
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "request"
--           , argType =
--               TInterface
--                 Name { namespace = "WebKit2" , name = "URISchemeRequest" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "a #WebKitURISchemeRequest"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just (TInterface Name { namespace = "WebKit2" , name = "WebView" })
-- throws : False
-- Skip return : False

foreign import ccall "webkit_uri_scheme_request_get_web_view" webkit_uri_scheme_request_get_web_view :: 
    Ptr URISchemeRequest ->                 -- request : TInterface (Name {namespace = "WebKit2", name = "URISchemeRequest"})
    IO (Ptr WebKit2.WebView.WebView)

-- | Get the t'GI.WebKit2.Objects.WebView.WebView' that initiated the request.
uRISchemeRequestGetWebView ::
    (B.CallStack.HasCallStack, MonadIO m, IsURISchemeRequest a) =>
    a
    -- ^ /@request@/: a t'GI.WebKit2.Objects.URISchemeRequest.URISchemeRequest'
    -> m WebKit2.WebView.WebView
    -- ^ __Returns:__ the t'GI.WebKit2.Objects.WebView.WebView' that initiated /@request@/.
uRISchemeRequestGetWebView :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsURISchemeRequest a) =>
a -> m WebView
uRISchemeRequestGetWebView a
request = IO WebView -> m WebView
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO WebView -> m WebView) -> IO WebView -> m WebView
forall a b. (a -> b) -> a -> b
$ do
    Ptr URISchemeRequest
request' <- a -> IO (Ptr URISchemeRequest)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
request
    Ptr WebView
result <- Ptr URISchemeRequest -> IO (Ptr WebView)
webkit_uri_scheme_request_get_web_view Ptr URISchemeRequest
request'
    Text -> Ptr WebView -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"uRISchemeRequestGetWebView" Ptr WebView
result
    WebView
result' <- ((ManagedPtr WebView -> WebView) -> Ptr WebView -> IO WebView
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr WebView -> WebView
WebKit2.WebView.WebView) Ptr WebView
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
request
    WebView -> IO WebView
forall (m :: * -> *) a. Monad m => a -> m a
return WebView
result'

#if defined(ENABLE_OVERLOADING)
data URISchemeRequestGetWebViewMethodInfo
instance (signature ~ (m WebKit2.WebView.WebView), MonadIO m, IsURISchemeRequest a) => O.OverloadedMethod URISchemeRequestGetWebViewMethodInfo a signature where
    overloadedMethod = uRISchemeRequestGetWebView

instance O.OverloadedMethodInfo URISchemeRequestGetWebViewMethodInfo a where
    overloadedMethodInfo = O.MethodInfo {
        O.overloadedMethodName = "GI.WebKit2.Objects.URISchemeRequest.uRISchemeRequestGetWebView",
        O.overloadedMethodURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.27/docs/GI-WebKit2-Objects-URISchemeRequest.html#v:uRISchemeRequestGetWebView"
        }


#endif