{-# 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
-- ** Overloaded methods #method:Overloaded methods#

#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.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 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

-- | Convert 'URISchemeRequest' to and from 'Data.GI.Base.GValue.GValue' with 'Data.GI.Base.GValue.toGValue' and 'Data.GI.Base.GValue.fromGValue'.
instance B.GValue.IsGValue URISchemeRequest where
    toGValue :: URISchemeRequest -> IO GValue
toGValue URISchemeRequest
o = do
        GType
gtype <- IO GType
c_webkit_uri_scheme_request_get_type
        URISchemeRequest
-> (Ptr URISchemeRequest -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr URISchemeRequest
o (GType
-> (GValue -> Ptr URISchemeRequest -> IO ())
-> Ptr URISchemeRequest
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr URISchemeRequest -> IO ()
forall a. GObject a => GValue -> Ptr a -> IO ()
B.GValue.set_object)
        
    fromGValue :: GValue -> IO URISchemeRequest
fromGValue GValue
gv = do
        Ptr URISchemeRequest
ptr <- GValue -> IO (Ptr URISchemeRequest)
forall b. GObject b => GValue -> IO (Ptr b)
B.GValue.get_object GValue
gv :: IO (Ptr URISchemeRequest)
        (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
        
    

-- | 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 :: (MonadIO m, IsURISchemeRequest o) => o -> m URISchemeRequest
toURISchemeRequest :: o -> m URISchemeRequest
toURISchemeRequest = IO URISchemeRequest -> m URISchemeRequest
forall (m :: * -> *) a. MonadIO m => IO a -> m a
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'
unsafeCastTo ManagedPtr URISchemeRequest -> URISchemeRequest
URISchemeRequest

#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.MethodInfo 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

#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 :: 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.MethodInfo URISchemeRequestFinishMethodInfo a signature where
    overloadedMethod = 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 :: 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.MethodInfo URISchemeRequestFinishErrorMethodInfo a signature where
    overloadedMethod = 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 :: 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.MethodInfo URISchemeRequestGetPathMethodInfo a signature where
    overloadedMethod = 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 :: 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.MethodInfo URISchemeRequestGetSchemeMethodInfo a signature where
    overloadedMethod = 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 :: 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.MethodInfo URISchemeRequestGetUriMethodInfo a signature where
    overloadedMethod = 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 :: 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.MethodInfo URISchemeRequestGetWebViewMethodInfo a signature where
    overloadedMethod = uRISchemeRequestGetWebView

#endif