{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.WebKit2.Structs.NetworkProxySettings
(
NetworkProxySettings(..) ,
noNetworkProxySettings ,
#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.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 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
newtype NetworkProxySettings = NetworkProxySettings (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)
foreign import ccall "webkit_network_proxy_settings_get_type" c_webkit_network_proxy_settings_get_type ::
IO GType
instance BoxedObject NetworkProxySettings where
boxedType :: NetworkProxySettings -> IO GType
boxedType _ = IO GType
c_webkit_network_proxy_settings_get_type
instance B.GValue.IsGValue NetworkProxySettings where
toGValue :: NetworkProxySettings -> IO GValue
toGValue o :: NetworkProxySettings
o = do
GType
gtype <- IO GType
c_webkit_network_proxy_settings_get_type
NetworkProxySettings
-> (Ptr NetworkProxySettings -> IO GValue) -> IO GValue
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr NetworkProxySettings
o (GType
-> (GValue -> Ptr NetworkProxySettings -> IO ())
-> Ptr NetworkProxySettings
-> IO GValue
forall a. GType -> (GValue -> a -> IO ()) -> a -> IO GValue
B.GValue.buildGValue GType
gtype GValue -> Ptr NetworkProxySettings -> IO ()
forall a. GValue -> Ptr a -> IO ()
B.GValue.set_boxed)
fromGValue :: GValue -> IO NetworkProxySettings
fromGValue gv :: GValue
gv = do
Ptr NetworkProxySettings
ptr <- GValue -> IO (Ptr NetworkProxySettings)
forall b. GValue -> IO (Ptr b)
B.GValue.get_boxed GValue
gv :: IO (Ptr NetworkProxySettings)
(ManagedPtr NetworkProxySettings -> NetworkProxySettings)
-> Ptr NetworkProxySettings -> IO NetworkProxySettings
forall a.
(HasCallStack, BoxedObject a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.newBoxed ManagedPtr NetworkProxySettings -> NetworkProxySettings
NetworkProxySettings Ptr NetworkProxySettings
ptr
noNetworkProxySettings :: Maybe NetworkProxySettings
noNetworkProxySettings :: Maybe NetworkProxySettings
noNetworkProxySettings = Maybe NetworkProxySettings
forall a. Maybe a
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 :: Maybe Text -> Maybe [Text] -> m NetworkProxySettings
networkProxySettingsNew defaultProxyUri :: Maybe Text
defaultProxyUri ignoreHosts :: 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
Nothing -> Ptr CChar -> IO (Ptr CChar)
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr CChar
forall a. Ptr a
nullPtr
Just jDefaultProxyUri :: 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
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 jIgnoreHosts :: [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 "networkProxySettingsNew" Ptr NetworkProxySettings
result
NetworkProxySettings
result' <- ((ManagedPtr NetworkProxySettings -> NetworkProxySettings)
-> Ptr NetworkProxySettings -> IO NetworkProxySettings
forall a.
(HasCallStack, BoxedObject 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 :: NetworkProxySettings -> Text -> Text -> m ()
networkProxySettingsAddProxyForScheme proxySettings :: NetworkProxySettings
proxySettings scheme :: Text
scheme proxyUri :: 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.MethodInfo NetworkProxySettingsAddProxyForSchemeMethodInfo NetworkProxySettings signature where
overloadedMethod = 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 :: NetworkProxySettings -> m NetworkProxySettings
networkProxySettingsCopy proxySettings :: 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 "networkProxySettingsCopy" Ptr NetworkProxySettings
result
NetworkProxySettings
result' <- ((ManagedPtr NetworkProxySettings -> NetworkProxySettings)
-> Ptr NetworkProxySettings -> IO NetworkProxySettings
forall a.
(HasCallStack, BoxedObject 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.MethodInfo NetworkProxySettingsCopyMethodInfo NetworkProxySettings signature where
overloadedMethod = 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 :: NetworkProxySettings -> m ()
networkProxySettingsFree proxySettings :: 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.MethodInfo NetworkProxySettingsFreeMethodInfo NetworkProxySettings signature where
overloadedMethod = 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.MethodInfo 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
#endif