gi-soup-0.2.52.13: GI/Soup/Objects/Address.hs
{- |
Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}
module GI.Soup.Objects.Address
(
-- * Exported types
Address(..) ,
AddressK ,
toAddress ,
noAddress ,
-- * Methods
-- ** addressEqualByIp
AddressEqualByIpMethodInfo ,
addressEqualByIp ,
-- ** addressEqualByName
AddressEqualByNameMethodInfo ,
addressEqualByName ,
-- ** addressGetGsockaddr
AddressGetGsockaddrMethodInfo ,
addressGetGsockaddr ,
-- ** addressGetName
AddressGetNameMethodInfo ,
addressGetName ,
-- ** addressGetPhysical
AddressGetPhysicalMethodInfo ,
addressGetPhysical ,
-- ** addressGetPort
AddressGetPortMethodInfo ,
addressGetPort ,
-- ** addressHashByIp
AddressHashByIpMethodInfo ,
addressHashByIp ,
-- ** addressHashByName
AddressHashByNameMethodInfo ,
addressHashByName ,
-- ** addressIsResolved
AddressIsResolvedMethodInfo ,
addressIsResolved ,
-- ** addressNew
addressNew ,
-- ** addressNewAny
addressNewAny ,
-- ** addressNewFromSockaddr
addressNewFromSockaddr ,
-- ** addressResolveAsync
AddressResolveAsyncMethodInfo ,
addressResolveAsync ,
-- ** addressResolveSync
AddressResolveSyncMethodInfo ,
addressResolveSync ,
-- * Properties
-- ** Family
AddressFamilyPropertyInfo ,
constructAddressFamily ,
getAddressFamily ,
-- ** Name
AddressNamePropertyInfo ,
constructAddressName ,
getAddressName ,
-- ** Physical
AddressPhysicalPropertyInfo ,
getAddressPhysical ,
-- ** Port
AddressPortPropertyInfo ,
constructAddressPort ,
getAddressPort ,
-- ** Protocol
AddressProtocolPropertyInfo ,
constructAddressProtocol ,
getAddressProtocol ,
-- ** Sockaddr
AddressSockaddrPropertyInfo ,
constructAddressSockaddr ,
getAddressSockaddr ,
) where
import Prelude ()
import Data.GI.Base.ShortPrelude
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import GI.Soup.Types
import GI.Soup.Callbacks
import qualified GI.GLib as GLib
import qualified GI.GObject as GObject
import qualified GI.Gio as Gio
newtype Address = Address (ForeignPtr Address)
foreign import ccall "soup_address_get_type"
c_soup_address_get_type :: IO GType
type instance ParentTypes Address = AddressParentTypes
type AddressParentTypes = '[GObject.Object, Gio.SocketConnectable]
instance GObject Address where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_soup_address_get_type
class GObject o => AddressK o
instance (GObject o, IsDescendantOf Address o) => AddressK o
toAddress :: AddressK o => o -> IO Address
toAddress = unsafeCastTo Address
noAddress :: Maybe Address
noAddress = Nothing
type family ResolveAddressMethod (t :: Symbol) (o :: *) :: * where
ResolveAddressMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
ResolveAddressMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
ResolveAddressMethod "enumerate" o = Gio.SocketConnectableEnumerateMethodInfo
ResolveAddressMethod "equalByIp" o = AddressEqualByIpMethodInfo
ResolveAddressMethod "equalByName" o = AddressEqualByNameMethodInfo
ResolveAddressMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
ResolveAddressMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
ResolveAddressMethod "hashByIp" o = AddressHashByIpMethodInfo
ResolveAddressMethod "hashByName" o = AddressHashByNameMethodInfo
ResolveAddressMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
ResolveAddressMethod "isResolved" o = AddressIsResolvedMethodInfo
ResolveAddressMethod "notify" o = GObject.ObjectNotifyMethodInfo
ResolveAddressMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
ResolveAddressMethod "proxyEnumerate" o = Gio.SocketConnectableProxyEnumerateMethodInfo
ResolveAddressMethod "ref" o = GObject.ObjectRefMethodInfo
ResolveAddressMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
ResolveAddressMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
ResolveAddressMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
ResolveAddressMethod "resolveAsync" o = AddressResolveAsyncMethodInfo
ResolveAddressMethod "resolveSync" o = AddressResolveSyncMethodInfo
ResolveAddressMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
ResolveAddressMethod "stealData" o = GObject.ObjectStealDataMethodInfo
ResolveAddressMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
ResolveAddressMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
ResolveAddressMethod "unref" o = GObject.ObjectUnrefMethodInfo
ResolveAddressMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
ResolveAddressMethod "getData" o = GObject.ObjectGetDataMethodInfo
ResolveAddressMethod "getGsockaddr" o = AddressGetGsockaddrMethodInfo
ResolveAddressMethod "getName" o = AddressGetNameMethodInfo
ResolveAddressMethod "getPhysical" o = AddressGetPhysicalMethodInfo
ResolveAddressMethod "getPort" o = AddressGetPortMethodInfo
ResolveAddressMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
ResolveAddressMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
ResolveAddressMethod "setData" o = GObject.ObjectSetDataMethodInfo
ResolveAddressMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
ResolveAddressMethod l o = MethodResolutionFailed l o
instance (info ~ ResolveAddressMethod t Address, MethodInfo info Address p) => IsLabelProxy t (Address -> p) where
fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveAddressMethod t Address, MethodInfo info Address p) => IsLabel t (Address -> p) where
fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif
-- VVV Prop "family"
-- Type: TInterface "Soup" "AddressFamily"
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getAddressFamily :: (MonadIO m, AddressK o) => o -> m AddressFamily
getAddressFamily obj = liftIO $ getObjectPropertyEnum obj "family"
constructAddressFamily :: AddressFamily -> IO ([Char], GValue)
constructAddressFamily val = constructObjectPropertyEnum "family" val
data AddressFamilyPropertyInfo
instance AttrInfo AddressFamilyPropertyInfo where
type AttrAllowedOps AddressFamilyPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint AddressFamilyPropertyInfo = (~) AddressFamily
type AttrBaseTypeConstraint AddressFamilyPropertyInfo = AddressK
type AttrGetType AddressFamilyPropertyInfo = AddressFamily
type AttrLabel AddressFamilyPropertyInfo = "family"
attrGet _ = getAddressFamily
attrSet _ = undefined
attrConstruct _ = constructAddressFamily
-- VVV Prop "name"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getAddressName :: (MonadIO m, AddressK o) => o -> m T.Text
getAddressName obj = liftIO $ getObjectPropertyString obj "name"
constructAddressName :: T.Text -> IO ([Char], GValue)
constructAddressName val = constructObjectPropertyString "name" val
data AddressNamePropertyInfo
instance AttrInfo AddressNamePropertyInfo where
type AttrAllowedOps AddressNamePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint AddressNamePropertyInfo = (~) T.Text
type AttrBaseTypeConstraint AddressNamePropertyInfo = AddressK
type AttrGetType AddressNamePropertyInfo = T.Text
type AttrLabel AddressNamePropertyInfo = "name"
attrGet _ = getAddressName
attrSet _ = undefined
attrConstruct _ = constructAddressName
-- VVV Prop "physical"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable]
getAddressPhysical :: (MonadIO m, AddressK o) => o -> m T.Text
getAddressPhysical obj = liftIO $ getObjectPropertyString obj "physical"
data AddressPhysicalPropertyInfo
instance AttrInfo AddressPhysicalPropertyInfo where
type AttrAllowedOps AddressPhysicalPropertyInfo = '[ 'AttrGet]
type AttrSetTypeConstraint AddressPhysicalPropertyInfo = (~) ()
type AttrBaseTypeConstraint AddressPhysicalPropertyInfo = AddressK
type AttrGetType AddressPhysicalPropertyInfo = T.Text
type AttrLabel AddressPhysicalPropertyInfo = "physical"
attrGet _ = getAddressPhysical
attrSet _ = undefined
attrConstruct _ = undefined
-- VVV Prop "port"
-- Type: TBasicType TInt32
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getAddressPort :: (MonadIO m, AddressK o) => o -> m Int32
getAddressPort obj = liftIO $ getObjectPropertyCInt obj "port"
constructAddressPort :: Int32 -> IO ([Char], GValue)
constructAddressPort val = constructObjectPropertyCInt "port" val
data AddressPortPropertyInfo
instance AttrInfo AddressPortPropertyInfo where
type AttrAllowedOps AddressPortPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint AddressPortPropertyInfo = (~) Int32
type AttrBaseTypeConstraint AddressPortPropertyInfo = AddressK
type AttrGetType AddressPortPropertyInfo = Int32
type AttrLabel AddressPortPropertyInfo = "port"
attrGet _ = getAddressPort
attrSet _ = undefined
attrConstruct _ = constructAddressPort
-- VVV Prop "protocol"
-- Type: TBasicType TUTF8
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getAddressProtocol :: (MonadIO m, AddressK o) => o -> m T.Text
getAddressProtocol obj = liftIO $ getObjectPropertyString obj "protocol"
constructAddressProtocol :: T.Text -> IO ([Char], GValue)
constructAddressProtocol val = constructObjectPropertyString "protocol" val
data AddressProtocolPropertyInfo
instance AttrInfo AddressProtocolPropertyInfo where
type AttrAllowedOps AddressProtocolPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint AddressProtocolPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint AddressProtocolPropertyInfo = AddressK
type AttrGetType AddressProtocolPropertyInfo = T.Text
type AttrLabel AddressProtocolPropertyInfo = "protocol"
attrGet _ = getAddressProtocol
attrSet _ = undefined
attrConstruct _ = constructAddressProtocol
-- VVV Prop "sockaddr"
-- Type: TBasicType TVoid
-- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
getAddressSockaddr :: (MonadIO m, AddressK o) => o -> m (Ptr ())
getAddressSockaddr obj = liftIO $ getObjectPropertyPtr obj "sockaddr"
constructAddressSockaddr :: (Ptr ()) -> IO ([Char], GValue)
constructAddressSockaddr val = constructObjectPropertyPtr "sockaddr" val
data AddressSockaddrPropertyInfo
instance AttrInfo AddressSockaddrPropertyInfo where
type AttrAllowedOps AddressSockaddrPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint AddressSockaddrPropertyInfo = (~) (Ptr ())
type AttrBaseTypeConstraint AddressSockaddrPropertyInfo = AddressK
type AttrGetType AddressSockaddrPropertyInfo = (Ptr ())
type AttrLabel AddressSockaddrPropertyInfo = "sockaddr"
attrGet _ = getAddressSockaddr
attrSet _ = undefined
attrConstruct _ = constructAddressSockaddr
type instance AttributeList Address = AddressAttributeList
type AddressAttributeList = ('[ '("family", AddressFamilyPropertyInfo), '("name", AddressNamePropertyInfo), '("physical", AddressPhysicalPropertyInfo), '("port", AddressPortPropertyInfo), '("protocol", AddressProtocolPropertyInfo), '("sockaddr", AddressSockaddrPropertyInfo)] :: [(Symbol, *)])
type instance SignalList Address = AddressSignalList
type AddressSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
-- method Address::new
-- method type : Constructor
-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Soup" "Address"
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_new" soup_address_new ::
CString -> -- name : TBasicType TUTF8
Word32 -> -- port : TBasicType TUInt32
IO (Ptr Address)
addressNew ::
(MonadIO m) =>
T.Text -- name
-> Word32 -- port
-> m Address -- result
addressNew name port = liftIO $ do
name' <- textToCString name
result <- soup_address_new name' port
checkUnexpectedReturnNULL "soup_address_new" result
result' <- (wrapObject Address) result
freeMem name'
return result'
-- method Address::new_any
-- method type : Constructor
-- Args : [Arg {argCName = "family", argType = TInterface "Soup" "AddressFamily", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "port", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Soup" "Address"
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_new_any" soup_address_new_any ::
CUInt -> -- family : TInterface "Soup" "AddressFamily"
Word32 -> -- port : TBasicType TUInt32
IO (Ptr Address)
addressNewAny ::
(MonadIO m) =>
AddressFamily -- family
-> Word32 -- port
-> m Address -- result
addressNewAny family port = liftIO $ do
let family' = (fromIntegral . fromEnum) family
result <- soup_address_new_any family' port
checkUnexpectedReturnNULL "soup_address_new_any" result
result' <- (wrapObject Address) result
return result'
-- method Address::new_from_sockaddr
-- method type : Constructor
-- Args : [Arg {argCName = "sa", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Soup" "Address"
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_new_from_sockaddr" soup_address_new_from_sockaddr ::
Ptr () -> -- sa : TBasicType TVoid
Int32 -> -- len : TBasicType TInt32
IO (Ptr Address)
addressNewFromSockaddr ::
(MonadIO m) =>
Ptr () -- sa
-> Int32 -- len
-> m Address -- result
addressNewFromSockaddr sa len = liftIO $ do
result <- soup_address_new_from_sockaddr sa len
checkUnexpectedReturnNULL "soup_address_new_from_sockaddr" result
result' <- (wrapObject Address) result
return result'
-- method Address::equal_by_ip
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "addr2", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_equal_by_ip" soup_address_equal_by_ip ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
Ptr Address -> -- addr2 : TInterface "Soup" "Address"
IO CInt
addressEqualByIp ::
(MonadIO m, AddressK a, AddressK b) =>
a -- _obj
-> b -- addr2
-> m Bool -- result
addressEqualByIp _obj addr2 = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let addr2' = unsafeManagedPtrCastPtr addr2
result <- soup_address_equal_by_ip _obj' addr2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr addr2
return result'
data AddressEqualByIpMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, AddressK a, AddressK b) => MethodInfo AddressEqualByIpMethodInfo a signature where
overloadedMethod _ = addressEqualByIp
-- method Address::equal_by_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "addr2", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_equal_by_name" soup_address_equal_by_name ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
Ptr Address -> -- addr2 : TInterface "Soup" "Address"
IO CInt
addressEqualByName ::
(MonadIO m, AddressK a, AddressK b) =>
a -- _obj
-> b -- addr2
-> m Bool -- result
addressEqualByName _obj addr2 = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let addr2' = unsafeManagedPtrCastPtr addr2
result <- soup_address_equal_by_name _obj' addr2'
let result' = (/= 0) result
touchManagedPtr _obj
touchManagedPtr addr2
return result'
data AddressEqualByNameMethodInfo
instance (signature ~ (b -> m Bool), MonadIO m, AddressK a, AddressK b) => MethodInfo AddressEqualByNameMethodInfo a signature where
overloadedMethod _ = addressEqualByName
-- method Address::get_gsockaddr
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TInterface "Gio" "SocketAddress"
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_get_gsockaddr" soup_address_get_gsockaddr ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
IO (Ptr Gio.SocketAddress)
addressGetGsockaddr ::
(MonadIO m, AddressK a) =>
a -- _obj
-> m Gio.SocketAddress -- result
addressGetGsockaddr _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_address_get_gsockaddr _obj'
checkUnexpectedReturnNULL "soup_address_get_gsockaddr" result
result' <- (wrapObject Gio.SocketAddress) result
touchManagedPtr _obj
return result'
data AddressGetGsockaddrMethodInfo
instance (signature ~ (m Gio.SocketAddress), MonadIO m, AddressK a) => MethodInfo AddressGetGsockaddrMethodInfo a signature where
overloadedMethod _ = addressGetGsockaddr
-- method Address::get_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_get_name" soup_address_get_name ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
IO CString
addressGetName ::
(MonadIO m, AddressK a) =>
a -- _obj
-> m T.Text -- result
addressGetName _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_address_get_name _obj'
checkUnexpectedReturnNULL "soup_address_get_name" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data AddressGetNameMethodInfo
instance (signature ~ (m T.Text), MonadIO m, AddressK a) => MethodInfo AddressGetNameMethodInfo a signature where
overloadedMethod _ = addressGetName
-- method Address::get_physical
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_get_physical" soup_address_get_physical ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
IO CString
addressGetPhysical ::
(MonadIO m, AddressK a) =>
a -- _obj
-> m T.Text -- result
addressGetPhysical _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_address_get_physical _obj'
checkUnexpectedReturnNULL "soup_address_get_physical" result
result' <- cstringToText result
touchManagedPtr _obj
return result'
data AddressGetPhysicalMethodInfo
instance (signature ~ (m T.Text), MonadIO m, AddressK a) => MethodInfo AddressGetPhysicalMethodInfo a signature where
overloadedMethod _ = addressGetPhysical
-- method Address::get_port
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_get_port" soup_address_get_port ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
IO Word32
addressGetPort ::
(MonadIO m, AddressK a) =>
a -- _obj
-> m Word32 -- result
addressGetPort _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_address_get_port _obj'
touchManagedPtr _obj
return result
data AddressGetPortMethodInfo
instance (signature ~ (m Word32), MonadIO m, AddressK a) => MethodInfo AddressGetPortMethodInfo a signature where
overloadedMethod _ = addressGetPort
-- method Address::hash_by_ip
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_hash_by_ip" soup_address_hash_by_ip ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
IO Word32
addressHashByIp ::
(MonadIO m, AddressK a) =>
a -- _obj
-> m Word32 -- result
addressHashByIp _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_address_hash_by_ip _obj'
touchManagedPtr _obj
return result
data AddressHashByIpMethodInfo
instance (signature ~ (m Word32), MonadIO m, AddressK a) => MethodInfo AddressHashByIpMethodInfo a signature where
overloadedMethod _ = addressHashByIp
-- method Address::hash_by_name
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_hash_by_name" soup_address_hash_by_name ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
IO Word32
addressHashByName ::
(MonadIO m, AddressK a) =>
a -- _obj
-> m Word32 -- result
addressHashByName _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_address_hash_by_name _obj'
touchManagedPtr _obj
return result
data AddressHashByNameMethodInfo
instance (signature ~ (m Word32), MonadIO m, AddressK a) => MethodInfo AddressHashByNameMethodInfo a signature where
overloadedMethod _ = addressHashByName
-- method Address::is_resolved
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_is_resolved" soup_address_is_resolved ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
IO CInt
addressIsResolved ::
(MonadIO m, AddressK a) =>
a -- _obj
-> m Bool -- result
addressIsResolved _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_address_is_resolved _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
data AddressIsResolvedMethodInfo
instance (signature ~ (m Bool), MonadIO m, AddressK a) => MethodInfo AddressIsResolvedMethodInfo a signature where
overloadedMethod _ = addressIsResolved
-- method Address::resolve_async
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "async_context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback", argType = TInterface "Soup" "AddressCallback", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = 4, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_resolve_async" soup_address_resolve_async ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
Ptr GLib.MainContext -> -- async_context : TInterface "GLib" "MainContext"
Ptr Gio.Cancellable -> -- cancellable : TInterface "Gio" "Cancellable"
FunPtr AddressCallbackC -> -- callback : TInterface "Soup" "AddressCallback"
Ptr () -> -- user_data : TBasicType TVoid
IO ()
addressResolveAsync ::
(MonadIO m, AddressK a, Gio.CancellableK b) =>
a -- _obj
-> Maybe (GLib.MainContext) -- asyncContext
-> Maybe (b) -- cancellable
-> AddressCallback -- callback
-> m () -- result
addressResolveAsync _obj asyncContext cancellable callback = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeAsyncContext <- case asyncContext of
Nothing -> return nullPtr
Just jAsyncContext -> do
let jAsyncContext' = unsafeManagedPtrGetPtr jAsyncContext
return jAsyncContext'
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
let jCancellable' = unsafeManagedPtrCastPtr jCancellable
return jCancellable'
ptrcallback <- callocMem :: IO (Ptr (FunPtr AddressCallbackC))
callback' <- mkAddressCallback (addressCallbackWrapper (Just ptrcallback) callback)
poke ptrcallback callback'
let userData = nullPtr
soup_address_resolve_async _obj' maybeAsyncContext maybeCancellable callback' userData
touchManagedPtr _obj
whenJust asyncContext touchManagedPtr
whenJust cancellable touchManagedPtr
return ()
data AddressResolveAsyncMethodInfo
instance (signature ~ (Maybe (GLib.MainContext) -> Maybe (b) -> AddressCallback -> m ()), MonadIO m, AddressK a, Gio.CancellableK b) => MethodInfo AddressResolveAsyncMethodInfo a signature where
overloadedMethod _ = addressResolveAsync
-- method Address::resolve_sync
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "_obj", argType = TInterface "Soup" "Address", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False
foreign import ccall "soup_address_resolve_sync" soup_address_resolve_sync ::
Ptr Address -> -- _obj : TInterface "Soup" "Address"
Ptr Gio.Cancellable -> -- cancellable : TInterface "Gio" "Cancellable"
IO Word32
addressResolveSync ::
(MonadIO m, AddressK a, Gio.CancellableK b) =>
a -- _obj
-> Maybe (b) -- cancellable
-> m Word32 -- result
addressResolveSync _obj cancellable = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybeCancellable <- case cancellable of
Nothing -> return nullPtr
Just jCancellable -> do
let jCancellable' = unsafeManagedPtrCastPtr jCancellable
return jCancellable'
result <- soup_address_resolve_sync _obj' maybeCancellable
touchManagedPtr _obj
whenJust cancellable touchManagedPtr
return result
data AddressResolveSyncMethodInfo
instance (signature ~ (Maybe (b) -> m Word32), MonadIO m, AddressK a, Gio.CancellableK b) => MethodInfo AddressResolveSyncMethodInfo a signature where
overloadedMethod _ = addressResolveSync