{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.WebKit2.Structs.NetworkProxySettings
(
NetworkProxySettings(..) ,
#if defined(ENABLE_OVERLOADING)
ResolveNetworkProxySettingsMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
NetworkProxySettingsAddProxyForSchemeMethodInfo,
#endif
networkProxySettingsAddProxyForScheme ,
#if defined(ENABLE_OVERLOADING)
NetworkProxySettingsCopyMethodInfo ,
#endif
networkProxySettingsCopy ,
#if defined(ENABLE_OVERLOADING)
NetworkProxySettingsFreeMethodInfo ,
#endif
networkProxySettingsFree ,
networkProxySettingsNew ,
) 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.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GHC.OverloadedLabels as OL
import qualified GHC.Records as R
newtype NetworkProxySettings = NetworkProxySettings (SP.ManagedPtr NetworkProxySettings)
deriving (NetworkProxySettings -> NetworkProxySettings -> Bool
(NetworkProxySettings -> NetworkProxySettings -> Bool)
-> (NetworkProxySettings -> NetworkProxySettings -> Bool)
-> Eq NetworkProxySettings
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: NetworkProxySettings -> NetworkProxySettings -> Bool
$c/= :: NetworkProxySettings -> NetworkProxySettings -> Bool
== :: NetworkProxySettings -> NetworkProxySettings -> Bool
$c== :: NetworkProxySettings -> NetworkProxySettings -> Bool
Eq)
instance SP.ManagedPtrNewtype NetworkProxySettings where
toManagedPtr :: NetworkProxySettings -> ManagedPtr NetworkProxySettings
toManagedPtr (NetworkProxySettings ManagedPtr NetworkProxySettings
p) = ManagedPtr NetworkProxySettings
p
foreign import ccall "webkit_network_proxy_settings_get_type" c_webkit_network_proxy_settings_get_type ::
IO GType
type instance O.ParentTypes NetworkProxySettings = '[]
instance O.HasParentTypes NetworkProxySettings
instance B.Types.TypedObject NetworkProxySettings where
glibType :: IO GType
glibType = IO GType
c_webkit_network_proxy_settings_get_type
instance B.Types.GBoxed NetworkProxySettings
instance B.GValue.IsGValue (Maybe NetworkProxySettings) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_webkit_network_proxy_settings_get_type
gvalueSet_ :: Ptr GValue -> Maybe NetworkProxySettings -> IO ()
gvalueSet_ Ptr GValue
gv Maybe NetworkProxySettings
P.Nothing = Ptr GValue -> Ptr NetworkProxySettings -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv (Ptr NetworkProxySettings
forall a. Ptr a
FP.nullPtr :: FP.Ptr NetworkProxySettings)
gvalueSet_ Ptr GValue
gv (P.Just NetworkProxySettings
obj) = NetworkProxySettings
-> (Ptr NetworkProxySettings -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr NetworkProxySettings
obj (Ptr GValue -> Ptr NetworkProxySettings -> IO ()
forall a. Ptr GValue -> Ptr a -> IO ()
B.GValue.set_boxed Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe NetworkProxySettings)
gvalueGet_ Ptr GValue
gv = do
Ptr NetworkProxySettings
ptr <- Ptr GValue -> IO (Ptr NetworkProxySettings)
forall b. Ptr GValue -> IO (Ptr b)
B.GValue.get_boxed Ptr GValue
gv :: IO (Ptr NetworkProxySettings)
if Ptr NetworkProxySettings
ptr Ptr NetworkProxySettings -> Ptr NetworkProxySettings -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr NetworkProxySettings
forall a. Ptr a
FP.nullPtr
then NetworkProxySettings -> Maybe NetworkProxySettings
forall a. a -> Maybe a
P.Just (NetworkProxySettings -> Maybe NetworkProxySettings)
-> IO NetworkProxySettings -> IO (Maybe NetworkProxySettings)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr NetworkProxySettings -> NetworkProxySettings)
-> Ptr NetworkProxySettings -> IO NetworkProxySettings
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr NetworkProxySettings -> NetworkProxySettings
NetworkProxySettings Ptr NetworkProxySettings
ptr
else Maybe NetworkProxySettings -> IO (Maybe NetworkProxySettings)
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe NetworkProxySettings
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList NetworkProxySettings
type instance O.AttributeList NetworkProxySettings = NetworkProxySettingsAttributeList
type NetworkProxySettingsAttributeList = ('[ ] :: [(Symbol, *)])
#endif
foreign import ccall "webkit_network_proxy_settings_new" webkit_network_proxy_settings_new ::
CString ->
Ptr CString ->
IO (Ptr NetworkProxySettings)
networkProxySettingsNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Maybe (T.Text)
-> Maybe ([T.Text])
-> m NetworkProxySettings
networkProxySettingsNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe Text -> Maybe [Text] -> m NetworkProxySettings
networkProxySettingsNew Maybe Text
defaultProxyUri Maybe [Text]
ignoreHosts = IO NetworkProxySettings -> m NetworkProxySettings
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO NetworkProxySettings -> m NetworkProxySettings)
-> IO NetworkProxySettings -> m NetworkProxySettings
forall a b. (a -> b) -> a -> b
$ do
Ptr CChar
maybeDefaultProxyUri <- case Maybe Text
defaultProxyUri 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
jDefaultProxyUri -> do
Ptr CChar
jDefaultProxyUri' <- Text -> IO (Ptr CChar)
textToCString Text
jDefaultProxyUri
Ptr CChar -> IO (Ptr CChar)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
jDefaultProxyUri'
Ptr (Ptr CChar)
maybeIgnoreHosts <- case Maybe [Text]
ignoreHosts of
Maybe [Text]
Nothing -> Ptr (Ptr CChar) -> IO (Ptr (Ptr CChar))
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr (Ptr CChar)
forall a. Ptr a
nullPtr
Just [Text]
jIgnoreHosts -> do
Ptr (Ptr CChar)
jIgnoreHosts' <- [Text] -> IO (Ptr (Ptr CChar))
packZeroTerminatedUTF8CArray [Text]
jIgnoreHosts
Ptr (Ptr CChar) -> IO (Ptr (Ptr CChar))
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr (Ptr CChar)
jIgnoreHosts'
Ptr NetworkProxySettings
result <- Ptr CChar -> Ptr (Ptr CChar) -> IO (Ptr NetworkProxySettings)
webkit_network_proxy_settings_new Ptr CChar
maybeDefaultProxyUri Ptr (Ptr CChar)
maybeIgnoreHosts
Text -> Ptr NetworkProxySettings -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"networkProxySettingsNew" Ptr NetworkProxySettings
result
NetworkProxySettings
result' <- ((ManagedPtr NetworkProxySettings -> NetworkProxySettings)
-> Ptr NetworkProxySettings -> IO NetworkProxySettings
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr NetworkProxySettings -> NetworkProxySettings
NetworkProxySettings) Ptr NetworkProxySettings
result
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
maybeDefaultProxyUri
(Ptr CChar -> IO ()) -> Ptr (Ptr CChar) -> IO ()
forall a b. (Ptr a -> IO b) -> Ptr (Ptr a) -> IO ()
mapZeroTerminatedCArray Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr CChar)
maybeIgnoreHosts
Ptr (Ptr CChar) -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr (Ptr CChar)
maybeIgnoreHosts
NetworkProxySettings -> IO NetworkProxySettings
forall (m :: * -> *) a. Monad m => a -> m a
return NetworkProxySettings
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "webkit_network_proxy_settings_add_proxy_for_scheme" webkit_network_proxy_settings_add_proxy_for_scheme ::
Ptr NetworkProxySettings ->
CString ->
CString ->
IO ()
networkProxySettingsAddProxyForScheme ::
(B.CallStack.HasCallStack, MonadIO m) =>
NetworkProxySettings
-> T.Text
-> T.Text
-> m ()
networkProxySettingsAddProxyForScheme :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
NetworkProxySettings -> Text -> Text -> m ()
networkProxySettingsAddProxyForScheme NetworkProxySettings
proxySettings Text
scheme Text
proxyUri = 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 NetworkProxySettings
proxySettings' <- NetworkProxySettings -> IO (Ptr NetworkProxySettings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr NetworkProxySettings
proxySettings
Ptr CChar
scheme' <- Text -> IO (Ptr CChar)
textToCString Text
scheme
Ptr CChar
proxyUri' <- Text -> IO (Ptr CChar)
textToCString Text
proxyUri
Ptr NetworkProxySettings -> Ptr CChar -> Ptr CChar -> IO ()
webkit_network_proxy_settings_add_proxy_for_scheme Ptr NetworkProxySettings
proxySettings' Ptr CChar
scheme' Ptr CChar
proxyUri'
NetworkProxySettings -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr NetworkProxySettings
proxySettings
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
scheme'
Ptr CChar -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CChar
proxyUri'
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data NetworkProxySettingsAddProxyForSchemeMethodInfo
instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => O.OverloadedMethod NetworkProxySettingsAddProxyForSchemeMethodInfo NetworkProxySettings signature where
overloadedMethod = networkProxySettingsAddProxyForScheme
instance O.OverloadedMethodInfo NetworkProxySettingsAddProxyForSchemeMethodInfo NetworkProxySettings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Structs.NetworkProxySettings.networkProxySettingsAddProxyForScheme",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Structs-NetworkProxySettings.html#v:networkProxySettingsAddProxyForScheme"
})
#endif
foreign import ccall "webkit_network_proxy_settings_copy" webkit_network_proxy_settings_copy ::
Ptr NetworkProxySettings ->
IO (Ptr NetworkProxySettings)
networkProxySettingsCopy ::
(B.CallStack.HasCallStack, MonadIO m) =>
NetworkProxySettings
-> m NetworkProxySettings
networkProxySettingsCopy :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
NetworkProxySettings -> m NetworkProxySettings
networkProxySettingsCopy NetworkProxySettings
proxySettings = IO NetworkProxySettings -> m NetworkProxySettings
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO NetworkProxySettings -> m NetworkProxySettings)
-> IO NetworkProxySettings -> m NetworkProxySettings
forall a b. (a -> b) -> a -> b
$ do
Ptr NetworkProxySettings
proxySettings' <- NetworkProxySettings -> IO (Ptr NetworkProxySettings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr NetworkProxySettings
proxySettings
Ptr NetworkProxySettings
result <- Ptr NetworkProxySettings -> IO (Ptr NetworkProxySettings)
webkit_network_proxy_settings_copy Ptr NetworkProxySettings
proxySettings'
Text -> Ptr NetworkProxySettings -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"networkProxySettingsCopy" Ptr NetworkProxySettings
result
NetworkProxySettings
result' <- ((ManagedPtr NetworkProxySettings -> NetworkProxySettings)
-> Ptr NetworkProxySettings -> IO NetworkProxySettings
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr NetworkProxySettings -> NetworkProxySettings
NetworkProxySettings) Ptr NetworkProxySettings
result
NetworkProxySettings -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr NetworkProxySettings
proxySettings
NetworkProxySettings -> IO NetworkProxySettings
forall (m :: * -> *) a. Monad m => a -> m a
return NetworkProxySettings
result'
#if defined(ENABLE_OVERLOADING)
data NetworkProxySettingsCopyMethodInfo
instance (signature ~ (m NetworkProxySettings), MonadIO m) => O.OverloadedMethod NetworkProxySettingsCopyMethodInfo NetworkProxySettings signature where
overloadedMethod = networkProxySettingsCopy
instance O.OverloadedMethodInfo NetworkProxySettingsCopyMethodInfo NetworkProxySettings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Structs.NetworkProxySettings.networkProxySettingsCopy",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Structs-NetworkProxySettings.html#v:networkProxySettingsCopy"
})
#endif
foreign import ccall "webkit_network_proxy_settings_free" webkit_network_proxy_settings_free ::
Ptr NetworkProxySettings ->
IO ()
networkProxySettingsFree ::
(B.CallStack.HasCallStack, MonadIO m) =>
NetworkProxySettings
-> m ()
networkProxySettingsFree :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
NetworkProxySettings -> m ()
networkProxySettingsFree NetworkProxySettings
proxySettings = 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 NetworkProxySettings
proxySettings' <- NetworkProxySettings -> IO (Ptr NetworkProxySettings)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr NetworkProxySettings
proxySettings
Ptr NetworkProxySettings -> IO ()
webkit_network_proxy_settings_free Ptr NetworkProxySettings
proxySettings'
NetworkProxySettings -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr NetworkProxySettings
proxySettings
() -> IO ()
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data NetworkProxySettingsFreeMethodInfo
instance (signature ~ (m ()), MonadIO m) => O.OverloadedMethod NetworkProxySettingsFreeMethodInfo NetworkProxySettings signature where
overloadedMethod = networkProxySettingsFree
instance O.OverloadedMethodInfo NetworkProxySettingsFreeMethodInfo NetworkProxySettings where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.WebKit2.Structs.NetworkProxySettings.networkProxySettingsFree",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-webkit2-4.0.28/docs/GI-WebKit2-Structs-NetworkProxySettings.html#v:networkProxySettingsFree"
})
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveNetworkProxySettingsMethod (t :: Symbol) (o :: *) :: * where
ResolveNetworkProxySettingsMethod "addProxyForScheme" o = NetworkProxySettingsAddProxyForSchemeMethodInfo
ResolveNetworkProxySettingsMethod "copy" o = NetworkProxySettingsCopyMethodInfo
ResolveNetworkProxySettingsMethod "free" o = NetworkProxySettingsFreeMethodInfo
ResolveNetworkProxySettingsMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveNetworkProxySettingsMethod t NetworkProxySettings, O.OverloadedMethod info NetworkProxySettings p) => OL.IsLabel t (NetworkProxySettings -> 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 ~ ResolveNetworkProxySettingsMethod t NetworkProxySettings, O.OverloadedMethod info NetworkProxySettings p, R.HasField t NetworkProxySettings p) => R.HasField t NetworkProxySettings p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveNetworkProxySettingsMethod t NetworkProxySettings, O.OverloadedMethodInfo info NetworkProxySettings) => OL.IsLabel t (O.MethodProxy info NetworkProxySettings) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif